驚雷?雷火引擎要重新定義Webshell檢測的新紀元

一直以來,Web應用程序是攻擊者利用安全漏洞進行攻擊的最常見目標之一。在成功滲透進Web站點後,攻擊者會放置Webshell以維持對目標長久的訪問權限。儘管Webshell在實踐中普遍存在,並且嚴重威脅Web安全,但業內目前還未能出現太多有效的Webshell檢測工具,真正做到100%識別查殺更加是難上加難。

2019年10月,國家互聯網應急響應中心發佈的《2019年中國互聯網網絡安全報告》指出,僅2019年上半年,監測發現境內外約1.4萬個IP地址對我國境內約2.6萬個網站植入後門,同比2018年上半年增長了1.2倍。

2020年4月,青藤雲安全攜手中國產業互聯網發展聯盟(IDAC)、騰訊標準、騰訊安全,共同發佈《2019中國主機安全服務報告》。報告顯示,2019年,全國企業用戶服務器病毒木馬感染事件超百萬起。其中Webshell惡意程序感染事件為近80萬起,佔總數的73.27%;Windows惡意程序感染事件佔18.05%;Linux惡意程序感染事件佔8.68%。 針對Webshell的檢測和防禦對抗能力,是Web網絡安全行業長期以來最值得關注的問題。

驚雷?雷火引擎要重新定義Webshell檢測的新紀元

圖:主機感染病毒木馬的情況

說到Webshell,那麼什麼是Webshell?

Webshell是網站入侵的腳本攻擊工具,黑客通過入侵網站上傳webshell後獲得服務器的執行操作權限,比如執行系統命令、竊取用戶數據、刪除web頁面、修改主頁等違規操作。

根據上面的定義不難發現,Webshell本身與正常的網頁腳本在本質上沒有什麼不同,都是一段可以動態運行的腳本代碼,但由於其可以執行許多高危的操作對企業內網防護與業務安全的保障工作產生了巨大的挑戰,其危害不可言喻。

目前,Webshell的檢測方法主要可以分為三大類:

1.靜態檢測

靜態檢測是指對腳本文件中所使用的關鍵詞、高危函數、文件修改的時間、文件權限、文件的所有者以及和其它文件的關聯性等多個維度的特徵進行檢測。例如利用正則表達式,以及後期出現的熵值分析、相似度匹配等方法來判斷文件代碼中是否包含惡意的shell代碼。

靜態檢測方法部署簡單,但是隻能查找已知的Webshell,對未知特徵或者混淆加密的shell很容易被繞過,漏報率與誤報率之間平衡點難以衡量、人工依賴度大等缺點也是需要考慮。近幾年出現的一個概念­——抽象語法樹分析,即將腳本文件以樹狀的形式表現編程語言的語法結構,樹上每一個節點都表示源代碼中的一個結構。藉助抽象語法樹找到腳本的所有可能執行的路徑。抽象語法樹分析法對傳統靜態檢測的缺陷有一定的補充作用。

2.動態檢測

動態檢測通過Webshell運行時使用的系統命令或者基於網絡流量及狀態的異常來判斷動作的威脅程度。常見的兩種動態監測方式分別是在沙箱內試運行、代碼運行過程中HOOK系統高危進程調用和流量特徵包來判別是否是惡意webshell。

目前,動態檢測的方法在Webshell檢測領域未能廣泛推廣,雖然基於沙箱技術的行為特徵分析對於混淆或者加密的webshell可以有效監測,但是由於可控輸入的存在,黑客可以控制代碼執行的路徑,從而通過可控輸入繞過沙箱的執行路徑,使得沙箱只適用於執行路徑一定的Webshell,對於執行路徑較多的Webshell,則非常容易被繞過,所以沙箱檢測webshell的場景顯得有點兒侷限。

3.基於AI的檢測方法

利用AI來檢測Webshell只有兩種方式,一種是用傳統的機器學習(ML),基於樸素貝葉斯的方式做統計分析,還有一種是過去幾年很火的深度學習,來自動或半自動地提煉樣本特徵,進而實現特徵匹配與結果判定。

基於AI的Webshell檢測方法本質上也是從現有的樣本里面提煉特徵,可以看成是用人工智能或者機器學習取代了人,來進行提煉操作,本質上還是在提煉特徵,因為Webshell的多樣性和可以無限變形,所以這種特徵提取出來之後,對未知的Webshell的檢測能力同樣效果不會很理想。

以上三種檢測方法是業界對Webshell檢測的幾種方式,但是由於shell的可變程度很高,加解密利用難度基本為零,所以黑客只需要把能夠檢測出來的樣本略做更改,就能夠繞開檢測,就會讓檢測工具誤判認為這是正常的文件。所以,目前來說依靠以上三種檢測方式的檢測工具的有效性還有待提高,不否認能夠檢測到一部分的Webshell,但是做不到真正意義上的對抗,是弱對抗的檢測。

這就是整個行業的現狀,Webshell通過特徵修剪和流量加密經過反覆測試、調整,最終還是可以繞過上述檢測方式,經不起對抗。

大家都知道,只依靠一種檢測方法是很難對現在混淆多變的Webshell文件進行全面檢測的。在真實的環境中進行部署檢測系統時需要多種傳統檢測方法的加持,來達到互補和增強檢測結果可行度的目的。

雷火檢測引擎使用了一種全新的思路——反混淆等價迴歸,即將黑客精心構建的經過加解密、隱藏惡意函數、或者經過動態拼接的shell樣本,運用人的思維推演出該樣本的本質目的,再判斷這一行為是否為合規。但是需要強調的是整個推演和判斷的過程是不需要人為干預的。下面簡單列出了經過反混淆等價迴歸前後的Webshell變化。

混淆webshell:

反混淆等價迴歸後的webshell:

事實上,為了實現反混淆等價迴歸的整個流程,整個引擎融入了三大核心技術:

1.做抽象語法樹解析

將腳本文件用樹狀的形式表示編程語言的語法結構,樹上的每個節點都表示源代碼中的一種結構。借鑑抽象語法樹遍歷出腳本所有可能執行的路徑。

2.AI推理

藉助數據表及、代碼推理等多種技術,從遍歷的眾多執行路徑中找出最佳執行路徑。即當這段代碼能夠做非常複雜的執行操作的時候,AI要把所有的代碼可能性全部推演出來,找到最有可能是惡意行為的那些分支,然後對整段代碼做減法,裁減掉認為跟惡意行為無關的代碼,剩下的就是惡意代碼。

3.虛擬運算

虛擬運算是將腳本模擬真實黃經中去運行得到結果,並對此過程中融入AI推理,從腳本中找到最佳執行路徑,將其有效等價還原。

通過對Webshell現狀的整體分析,我們發現Webshell不知不覺為人們帶來了很多危害,一旦黑客拿到了網站的WebShell,網站將不再有秘密可言,比如下載文件、修改文件、刪除文件等,將變得非常容易。《雷火引擎》的推出為有效檢測Webshell提供了新思路。另外為了進一步提升與完備引擎的檢測能力,青藤SRC重磅推出“雷火齊鳴 最燃公測-暨青藤首屆線上公開挑戰賽”,歡迎安全界有識之士參與挑戰(報名指引:https://thunderfire.qingteng.cn/)。


分享到:


相關文章: