◆趙運弢 徐春雨 薄 波 劉書林
?
基于流量的WebShell行為分析與檢測方法
◆趙運弢 徐春雨 薄 波 劉書林
(沈陽理工大學(xué)信息科學(xué)與工程學(xué)院 遼寧 110159)
WebShell是一種基于Web服務(wù)的后門程序。攻擊者通過WebShell 獲得Web服務(wù)的管理權(quán)限,從而達到對Web應(yīng)用的滲透和控制。由于WebShell和普通Web頁面特征幾乎一致,所以可逃避傳統(tǒng)防火墻和殺毒軟件的檢測。而且隨著各種用于反檢測特征混淆隱藏技術(shù)應(yīng)用到WebShell上,使得傳統(tǒng)基于特征碼匹配的檢測方式很難及時檢測出新的變種。本文將討論在網(wǎng)絡(luò)流量上實現(xiàn)WebShell的分析與檢測,通過對流量的“可視化”還原,借鑒行業(yè)里一些成熟的工具和方法,主要討論在WebShell被上傳到服務(wù)器上以及WebShell被訪問這兩個過程中網(wǎng)絡(luò)流量中的payload特征來實現(xiàn)WebShell檢測。
WebShell;Web服務(wù);payload特征
隨著信息化的不斷發(fā)展,信息系統(tǒng)不僅僅需要承載傳統(tǒng)新聞發(fā)布、內(nèi)容展示等功能,同時還承擔(dān)了信息查詢、訂單處理、事務(wù)管理等業(yè)務(wù),而這其中往往會涉及一些需要保密的信息。因此竊密型web應(yīng)用腳本后門應(yīng)運而生,其以竊密為主要目的,獲取系統(tǒng)保密信息,危害極大。
webshell是web入侵的腳本攻擊工具。webshell就是一個asp或php木馬后門,攻擊者在入侵了一個網(wǎng)站后,常常在將這些 asp或php木馬后門文件放置在網(wǎng)站服務(wù)器的web目錄中,與正常的網(wǎng)頁文件混在一起。然后攻擊者就可以用web的方式,通過asp或php木馬后門控制網(wǎng)站服務(wù)器,該類后門往往不具備文件操作、命令執(zhí)行等常見木馬功能,多數(shù)只具備查詢數(shù)據(jù)庫功能,可直接調(diào)用系統(tǒng)自身的存儲過程來連接數(shù)據(jù)庫,與系統(tǒng)契合度高。
WebShell根據(jù)腳本可以分為PHP腳本木馬,ASP腳本木馬,也有基于.NET的腳本木馬和JSP腳本木馬。隨著目前python語言的盛行,也有很多用python腳本寫的動態(tài)網(wǎng)頁,當(dāng)然也有與之相關(guān)的WebShell。
根據(jù)功能可分為大馬與小馬,小馬通常指站長助手、一句話木馬等, 小馬體積小、容易隱藏、隱蔽性強,最重要在于與圖片結(jié)合一起上傳之后可以利用nginx或者IIS6的解析漏洞來運行,不過功能少,一般只有上傳等功能。而大馬體積比較大一般50K以上。功能也多,一般都包括提權(quán)命令、磁盤管理、數(shù)據(jù)庫連接借口,執(zhí)行命令甚至有些以具備自帶提權(quán)功能和壓縮,解壓縮網(wǎng)站程序的功能。大馬隱蔽性不好,而大多代碼如不加密的話很多殺毒廠商開始追殺此類程序。
從安全防護的能力看,檢測是第一位的能力,WebShell的檢測主要有以下幾種方式:
(1)檢測是否包含WebShell特征,例如常用的各種函數(shù)。
(2)檢測是否加密(混淆處理)來判斷是否為WebShell。
(3)文件hash檢測,創(chuàng)建WebShell樣本hashing庫,進行對比分析可疑文件。
(4)對文件的創(chuàng)建時間、修改時間、文件權(quán)限等進行檢測,以確認是否為WebShell。
(5)沙箱技術(shù),根據(jù)動態(tài)語言沙箱運行時的行為特征進行判斷。
(1)方便部署,通過流量鏡像直接分析原始信息。
(2)基于payload的行為分析,不僅對已知WebShell進行檢測,還能識別出未知的、偽裝性強的WebShell。
(3)對WebShell的訪問特征(IP/UA/Cookie)、payload特征、path特征、時間特征等進行關(guān)聯(lián)分析,以時間為索引,還原攻擊事件。
(1)支持常見的多種日志格式。
(2)對網(wǎng)站的訪問行為進行建模,可有效識別WebShell的上傳等行為。
(3)對日志進行綜合分析,回溯整個攻擊過程。
由于業(yè)務(wù)系統(tǒng)更新頻繁,Web腳本文件相關(guān)的屬性經(jīng)常發(fā)生變化,基于文件的檢測,很多時候獲取樣本的部署成本比較高,同時僅僅靠樣本無法看到整個攻擊過程?;谌罩镜臋z測方法,一方面,由于業(yè)務(wù)功能較多且復(fù)雜,部分功能可能很少會被用到,其日志訪問可能會命中某些檢測規(guī)則從而造成更多的誤報,另一方面,大量的日志記錄處理起來會對服務(wù)器性能產(chǎn)生負擔(dān)、而且由于日志量巨大檢測過程消耗時間長,檢測速度較慢。WebShell后門往往會模擬正常的數(shù)據(jù)庫操作、不具有較為明顯靜態(tài)特殊屬性、被訪問的次數(shù)比較少無法形成較為明顯的訪問特征,通過日志分析也很難發(fā)現(xiàn)??傮w來說還是基于“流量”的看到的信息最多,也能更充分地還原整個攻擊過程。
WebShell運行后,B/S數(shù)據(jù)通過HTTP交互,HTTP請求/響應(yīng)中可以找到蛛絲馬跡,這是動態(tài)特征檢測。我們知道WebShell工作在Web服務(wù)器上,其通信協(xié)議是HTTP協(xié)議?;趐ayload的行為分析,不僅對已知WebShell進行檢測,還能識別出未知的、偽裝性強的WebShell。
我們知道正常情況下網(wǎng)站在需要的情況下通常會允許上傳一些“無交互”的文件,但是不會允許上傳以腳本形式存在的文件,如:PHP、JSP、ASP等,而WebShell就是以這種腳本形式存在,并且能夠被服務(wù)器解析。雖然在上傳過程中不會出現(xiàn)攻擊payload,但是要向服務(wù)器上傳文件或者產(chǎn)生交互,所以也會產(chǎn)生一些和上傳相關(guān)的Payload。
這種方式通過POST直接上傳一個WebShell文件,或者經(jīng)過簡單的變形然后上傳到服務(wù)器上,形式如:
10.166.178.226 - - [12/Jul/2016:10:17:32 +0800] "POST /websectest/vulnerabilities/upload/ HTTP/1.1" 200 5584
如圖1,這條日志中能夠發(fā)現(xiàn)如下關(guān)鍵特:POST upload 200 5584通過這幾個關(guān)鍵特征就能夠確定hello.php是一個疑似Webshell文件。
圖1 上傳Webshell的特征
WebShell是被制作用來控制服務(wù)器或者竊取機密信息的。要實現(xiàn)這些能力,攻擊者就必須向WebShell發(fā)送一些控制指令從而操作WebShell,在控制指令中通常包含特征明顯的攻擊payload,如圖2所示。
圖2 WebWShell控制過程中的特征
上圖是用菜刀控制Webshell發(fā)送指令,可以看出“菜刀”使用了base64的方式加密了發(fā)送給“菜刀馬”Webshell的指令。通過分析我們能看住其中的兩個關(guān)鍵參數(shù)z1和z2:
代碼片段如下:
%3D&z1=L2Jpbi9zaA%3D%3D&z2=Y2QgIi92YXIvd3d3L2h0bWwvIjtuZXRzdGF0IC1hbiB8IGdyZXAgRVNUQUJMSVNIRUQ7ZWNobyBbU107cHdkO2VjaG8gW0Vd
很容易解密出結(jié)果:
顯然通過解密之后特征就尤為明顯了,通過檢測和提取這種具有攻擊傾向的payload之后可以被用來進行Webshell的深度分析。
本文對Webshell的原理和分類進行了較詳細的敘述,并簡單介紹了傳統(tǒng)和現(xiàn)有的一些檢測方法。針對傳統(tǒng)檢測方法的缺陷和不足,重點分析了基于流量的WebShell行為檢測方法。重點分析WebShell運行后,通過HTTP交互、HTTP請求/響應(yīng)中找出動態(tài)特征?;趐ayload的行為分析,不僅對已知WebShell進行檢測,還能識別出未知的、偽裝性強的WebShell。本文主要提供一種基于網(wǎng)絡(luò)行為分析和檢測WebShell的思路,基于上述思路而形成的流量分析引擎可以被嵌入到現(xiàn)有的網(wǎng)關(guān)型設(shè)備或云上,并實現(xiàn)Webshell的深度分析和檢測。
[1]CNCERT.2014年我國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全態(tài)勢報告,2015.
[2]石劉洋,方勇.基于Web日志的Webshell檢測方法研究[J].信息安全研究, 2016.
[3]康志輝.基于PHP擴展的webshell檢測研究[J].科技傳播, 2015.
[4]朱魏魏,胡勇.基于NN-SVM的Webshell檢測方法[J].通信與信息技術(shù), 2015.
[5]胡建康,徐霞等.基于決策樹的Webshell檢測方法[J].網(wǎng)絡(luò)新媒體技術(shù), 2012.
[6]齊建軍.竊密型WebShell檢測方法[J].計算機與網(wǎng)絡(luò), 2015.
[7]Xu Mingkun, Chen Xi, Hu Yan. Design of software to Search ASP Web Shell. Procedia Engineering,2012.
[8]Yung-Tsung Hou, Yimeng Chang, Tsuhan Chen. Malicious web content detection by machine learning. Expert Systems with Applications,2010.
[9]S.A. Parah,J.A. Sheikh.A secure and robust information hiding technique for covert communication. International Journal of Electronics,2015.
[10]András K?vári,Erik Pruyt.A Model-Based Exploration and Policy Analysis Related to Prostitution and Human Trafficking. International Journal of System Dynamics Applications (IJSDA),2014.
[11]Z. Kwecka. Application Layer Covert Channel Analysis and Detection [D]. Napier University,2006.