01加密惡意流量檢測
1.1 背景
有大量的惡意腳本、勒索病毒、代理、挖礦、遠控工具等采用加密手段來躲避安全防護和檢測。通常的安全產品對無法識別、無法檢測的流量會放行。其中WebShell是攻擊網站的一種惡意腳本,識別出WebShell文件或通信流量可以有效地阻止黑客進一步的攻擊行為。目前WebShell的檢測方法主要分為三大類:靜態檢測、動態檢測和日志檢測。
本文主要基于流量來實現WebShell連接工具的檢測。目前基于流量的檢測仍然面臨一些問題。現存的一些WebShell連接工具,比如冰蝎、哥斯拉、蟻劍等,都使用了混淆或加密機制,通過加密通信流量的方式來繞過傳統安全設備,逃避檢測。
1.2 AntSword 編碼方法

1.2.1 AntSword-default編碼
先來看一下默認編碼模式流量。
默認狀態下的流量還是比較友好的,存在很多函數可以進行特征定位,在經過大量的數據包分析后,確定了特征如下:
特征1:在1處使用正則進行匹配這處的函數格式;
特征2:在2處對于函數先后順序進行匹配。
1.2.2 AntSword-base64編碼
Base64:是一種基于64個可打印字符來表示二進制數據的表示方法。
下面先來看一下數據包:
Base64編碼下從數據包中可以發現使用了eval,base64_decode等敏感函數,在經過大量的數據包分析后,定位特征如下:
特征1:在1處使用正則進行匹配這處的函數格式;
特征2:取2處的兩個14位字符進行對比判斷是否相同。
1.2.3 AntSword-chr編碼
CHR: ASCII 值返回字符。ASCII 值可被指定為十進制值、八進制值或十六進制值。八進制值被定義為帶前置 0,十六進制值被定義為帶前置 0x。
下面先來看一下數據包:

Chr編碼下從數據包中可以發現存在大小寫混雜的eVAl函數,同時需要配合匹配編碼的格式與長度結合進行檢測。
特征1:使用正則匹配1處,eVal函數括號中cHr(*).ChR(*),對ChR(*)數量定義閾值配合檢測。
1.2.4 AntSword-chr16編碼
CHR16: ASCII 值返回字符。ASCII 值可被指定為十進制值、八進制值或十六進制值。八進制值被定義為帶前置 0,十六進制值被定義為帶前置 0x。
下面先來看一下數據包:
Chr16編碼下從數據包中可以發現也存在大小寫混雜的eVAl函數,與Chr編碼類似,也需要配合匹配編碼的格式與長度結合進行檢測。
特征1:使用正則匹配1處,eVal函數括號中cHr(0x*).ChR(0x*),對ChR(0x*)數量定義閾值配合檢測。
1.2.5 AntSword-rot13編碼
ROT13:編碼是把每一個字母在字母表中向前移動 13 個字母得到。數字和非字母字符保持不變。
下面先來看一下數據包:
ROT13編碼下從數據包中可以發現存在eval,str_rot13等敏感函數名稱,在經過大量數據包分析后,確定了特征如下:
特征1:在1處使用正則進行匹配這處的函數格式;
特征2:取2處的14位字符進行對比,判斷是否相同。
02總結
在實戰測試中,通過上述幾點,對加密型 webshell 的流量進行分析,總結相關弱特征和強特征,多種特征結合,可以準確識別這類 webshell 的通訊過程,及時處置和發現失陷主機。但上述基于字符串特征檢測的方案,需要安全運營人員逐一分析樣本,會消耗較大的人力,并且難以檢測變種的惡意外連流量。
隨著攻防技術之間的不斷博弈,惡意軟件也越來越隱匿。目前使用加密通信的惡意軟件家族超過200種,使用加密通信的惡意軟件占比超過40%,使用加密通信的惡意軟件幾乎覆蓋了所有常見類型。后續我們可能遇到的場景更多是HTTPS,AES,XOR等加密類型。對于這種加密類型,更好的解決方案是使用機器學習或者深度學習對流量特征進行識別。
隨著人工智能技術的發展,通過大量的測試驗證,人工智能用于加密流量安全檢測將是一種新技術手段。作為安全運營人員,唯有不斷探索和研究新的特征和方法,才能更好的應對網絡流量中日益復雜的攻擊。
聲明:
1.本文檔由天融信安全團隊發布,未經授權禁止第三方轉載及轉投。
2.本文檔所提到的技術內容及資訊僅供參考,有關內容可能會隨時更新,天融信不另行通知。
3.本文檔中提到的信息為正常公開的信息,若因本文檔或其所提到的任何信息引起了他人直接或間接的資料流失、利益損失,天融信及其員工不承擔任何責任。
- 關鍵詞標簽:
- 天融信 威脅分析與響應 惡意流量檢測