預(yù)熱:有圖可知,7和8很明顯不是很合群。節(jié)點8的出度和入度均為0,屬于孤立節(jié)點,是webshell的可能性比較大。節(jié)點5和節(jié)點7的出度入度都為1,但是節(jié)點7屬于自回路,是webshell的可能性比較大。
1.webshell 的訪問特征(主要特征)
(1)少量的IP對其發(fā)起訪問
(2)總的訪問次數(shù)少
(3)網(wǎng)頁文件的訪問頻率
訪問頻率指的是一個網(wǎng)頁文件在單位時間內(nèi)的訪問次數(shù),通常正常的網(wǎng)站頁面由于向訪客提供服務(wù)因此受眾較廣,所以訪問頻率相對較高。而Webshell是由攻擊者植入,通常只有攻擊者清楚訪問路徑,因此訪問頻率相對較低。值得注意的是,網(wǎng)站開始運營時就會存在一定數(shù)量的正常頁面,而Webshell通常在一段時間后才會出現(xiàn),因此統(tǒng)計和計算頁面訪問頻率的時候,針對某一頁面,要采用該頁面第一次被訪問到最后一次被訪問的時間段作為統(tǒng)計區(qū)間,然后計算單位時間內(nèi)的訪問次數(shù),得到訪問頻率。需要說明的是,單憑訪問頻率特征,只能找出異常文件,無法確定一定是Webshell,一些正常頁面的訪問頻率也會較低,比如后臺管理頁面或者網(wǎng)站建設(shè)初期技術(shù)人員留下的測試頁面訪問頻率也較低。這里用f(A) 表示計算后的網(wǎng)站頁面A的訪問頻率,Tfirst(A)表示網(wǎng)站頁面A首次被訪問的時間,Tend(A) 表示網(wǎng)站頁面A最后一次被訪問的時間,COUNTFE(A)表示網(wǎng)站頁面A在時間Tfirst(A)到Tend(A)期間的被訪問次數(shù)。因此,網(wǎng)站頁面A的訪問頻率計算如下:
時間單位可根據(jù)需要選擇小時、天、星期、月等
結(jié)論:
a.在目錄深度一致,和起始時間段較長的情況下(以大于30天為判斷依據(jù)),正常網(wǎng)頁文件的訪問頻率明顯高于Webshell文件。
b.目錄深度較高的正常網(wǎng)頁文件,/bbs/zW7/index.asp在三級目錄下,訪問頻率也會較低,因此判斷是否為Webshell文件時,要把訪問頻率和目錄深度結(jié)合起來進行考慮。
c.單從Webshell文件的訪問頻率來看,有的數(shù)據(jù)特征呈現(xiàn)訪問頻率較高,仔細分析日志發(fā)現(xiàn),該類Webshell往往是被攻擊者當做一次性后門使用,起始階段只有1天,而且訪客單一,且有時攻擊者會對自己上傳的Webshell文件進行自動化的利用和掃描,導(dǎo)致較短時間內(nèi)出現(xiàn)大量訪問行為,呈現(xiàn)高頻訪問特征,如bg.asp;.jpg。在這種情況下,僅憑借訪問頻率難以判斷。經(jīng)過分析和思考,為了準確判斷此類Webshell,需要再結(jié)合文件的起始時間段和單位時間的獨立訪客數(shù)進行綜合判斷,當某個網(wǎng)頁文件的呈現(xiàn)起始時間段較短,單位時間獨立訪客數(shù)較少的特征時,可首先判定為異常文件,再結(jié)合訪問頻率進行分析。這樣便能有效解決誤報問題。
(4) 該頁面屬于孤立頁面
其中孤立頁面這個特征已產(chǎn)生誤報,比如正常的掃描器行為,常見漏洞掃描,PoC掃描,Webshell掃描(日志中經(jīng)??梢钥吹匠R妛ebshell路徑加一句話payload的掃描),這是最主要的干擾數(shù)據(jù),需要剔除。對于這種情況建議加白名單。
2.webshell的path、文本特征(輔助特征)
除了weshell特有的訪問特征,我們也可以用path、文本特征來輔助提取,我們來看一批真實的webshell:
發(fā)現(xiàn)不同手段植入的webshell路徑各有特征,例如上傳的webshell,如果上傳組件有保護措施的會進行文件名重寫(示例中的32位的十六進制的名字),并在路徑中還有日期特征,這類webshell還極易出現(xiàn)在靜態(tài)資源目錄(圖片,樣式、配置)下。但是把訪問頻率和path深度結(jié)合起來進行考慮。
3.webshell的時間特征(輔助特征)
將新增的頁面視為異常頁面,但這種方案的缺陷非常明顯
(1) 會漏掉已存在頁面寫馬的情況
(2) 會誤判正常的站點更新
于是將該特征當做輔助特征,用來還原webshell植入的過程,如果接入了例如WAF這種防御產(chǎn)品,還可以探究是不是繞過了防御
4.webshell Payload特征(輔助特征)
WAF、IDS等基于流量的安全檢測防御工具,會把網(wǎng)絡(luò)通信中的payload特征(特別是攻擊特征)當成主要的檢測手段