孫文賀 王 健 劉吉強(qiáng)
北京交通大學(xué)智能交通數(shù)據(jù)安全與隱私保護(hù)技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室 北京 100044
隨著信息技術(shù)的飛速發(fā)展,計(jì)算機(jī)、互聯(lián)網(wǎng)應(yīng)用已經(jīng)深入到人們生活的各個(gè)方面,計(jì)算機(jī)互聯(lián)網(wǎng)用戶不斷增加。根據(jù)中國國家互聯(lián)網(wǎng)應(yīng)急中心(CNCERT)的報(bào)告顯示,截至 2017年12月份,我國的計(jì)算機(jī)互聯(lián)網(wǎng)用戶已經(jīng)達(dá)到7.72億[1]。但我國的網(wǎng)絡(luò)安全形式不容樂觀。據(jù)CNCERT抽樣監(jiān)測(cè),2017年我國境內(nèi)感染計(jì)算機(jī)惡意程序的主機(jī)數(shù)量約1256萬臺(tái),而位于境外的約3.2萬個(gè)計(jì)算機(jī)惡意程序控制服務(wù)器控制了我國境內(nèi)約1101萬臺(tái)主機(jī)。惡意程序中的蠕蟲病毒、木馬病毒、僵尸病毒以及最近出現(xiàn)的勒索病毒大多是利用網(wǎng)絡(luò)進(jìn)行傳輸,其最終的攻擊目標(biāo)都是終端(即主機(jī))。惡意程序或黑客等攻擊主機(jī)的目的主要包括以下的幾個(gè)方面:竊取機(jī)密文件;控制主機(jī)、充當(dāng)跳板;勒索財(cái)物;破壞基礎(chǔ)設(shè)施等。
面對(duì)攻擊,出現(xiàn)了多種安全防護(hù)技術(shù),例如防火墻、NIDS(Network Intrusion Detection System)、HIDS(Host-based Intrusion Detection System)、防病毒軟件等。
傳統(tǒng)的防護(hù)技術(shù)在檢測(cè)和防護(hù)方面具有一定的效果,但是也存在一些明顯的局限性:缺乏解釋能力,不能說明攻擊發(fā)生時(shí),攻擊在主機(jī)產(chǎn)生了哪些具體行為以及這些行為對(duì)主機(jī)帶來的影響;缺乏攻擊意圖分析能力,不能描述攻擊的意圖和最終攻擊目標(biāo)實(shí)現(xiàn)程度等。
本文從攻擊行為的角度,分析從攻擊開始到攻擊完成的整個(gè)過程中目標(biāo)主機(jī)上產(chǎn)生的一系列操作行為。首先收集系統(tǒng)產(chǎn)生的操作,分析關(guān)鍵操作,生成攻擊行為圖;然后從時(shí)序的角度分析關(guān)鍵操作,并且統(tǒng)計(jì)不同行為的占比;最終對(duì)不同類型的攻擊提取其攻擊行為特征,實(shí)現(xiàn)對(duì)攻擊意圖的識(shí)別。
針對(duì)主機(jī)的異常檢測(cè)技術(shù),已經(jīng)存在許多工作。Creech G[2]等使用不連續(xù)的系統(tǒng)調(diào)用模式,實(shí)現(xiàn)了基于主機(jī)的異常入侵檢測(cè),將語義結(jié)構(gòu)應(yīng)用于內(nèi)核級(jí)系統(tǒng)調(diào)用,以反映隱藏在高級(jí)編程語言中的內(nèi)在活動(dòng)。Subba B[3]等將系統(tǒng)調(diào)用軌跡轉(zhuǎn)換為n-gram矢量模型,然后使用降維方法來減小輸入特征向量的大小,進(jìn)而采用多種基于機(jī)器學(xué)習(xí)的分類器模型來識(shí)別入侵過程。林果園[4]系統(tǒng)分析了入侵檢測(cè)、行為特征選擇、軟件異常檢測(cè)、異常用戶行為檢測(cè)等方面,實(shí)現(xiàn)了基于主機(jī)層面的入侵檢測(cè)?;谥鳈C(jī)行為的研究方法主要分為以下幾個(gè)類別。
Windows操作系統(tǒng)的注冊(cè)表中存放計(jì)算機(jī)系統(tǒng)、軟件等配置參數(shù),以及權(quán)限管理信息等重要數(shù)據(jù)。因此很多惡意程序往往把注冊(cè)表作為首選的攻擊目標(biāo)。大多數(shù)的病毒、木馬會(huì)修改注冊(cè)表以啟動(dòng)自身服務(wù),或者關(guān)閉系統(tǒng)的安全防護(hù),亦或是提升自身的操作權(quán)限。因此,可以通過對(duì)注冊(cè)表及其鍵值使用行為的分析,發(fā)現(xiàn)入侵行為。
Apap F[5]等提取注冊(cè)表的五個(gè)字段作為注冊(cè)表信息的特征,收集惡意樣本數(shù)據(jù),使用C-SVM進(jìn)行惡意檢測(cè)。
進(jìn)程是一個(gè)計(jì)算機(jī)系統(tǒng)中程序運(yùn)行的活體,是真正發(fā)揮作用的實(shí)體,任何攻擊或入侵都是通過相應(yīng)進(jìn)程的行為而實(shí)現(xiàn)的。因此針對(duì)進(jìn)程異常行為的檢測(cè)有很重要的作用。攻擊通常會(huì)產(chǎn)生一些子進(jìn)程,或者創(chuàng)建一些與系統(tǒng)進(jìn)程同名的假冒進(jìn)程以躲避查殺。而且有的攻擊會(huì)注入其他的進(jìn)程或者修改其他進(jìn)程的信息。
Moon D[6]等提出了一種基于主機(jī)進(jìn)程行為信息的惡意軟件檢測(cè)方法,從良性程序中劃分惡意軟件的特征,并在虛擬機(jī)環(huán)境中收集特征參數(shù)。當(dāng)可執(zhí)行程序在主機(jī)上運(yùn)行時(shí),根據(jù)所收集的進(jìn)程特征參數(shù)數(shù)據(jù)來重構(gòu)每個(gè)特征參數(shù)的發(fā)生頻率,以此來檢測(cè)惡意軟件的存在。
文件是計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中重要的資源,絕大多數(shù)信息都是以文件的形式存在物理介質(zhì)上。一般黑客或者木馬程序要竊取重要數(shù)據(jù),往往要通過物理介質(zhì)訪問相應(yīng)文件。絕大多數(shù)的攻擊都會(huì)產(chǎn)生對(duì)文件的操作,比如創(chuàng)建文件、寫文件、刪除文件、修改文件。大多數(shù)的木馬病毒會(huì)調(diào)用cmd.exe程序執(zhí)行腳本語言來啟動(dòng)惡意程序。有的竊密木馬會(huì)將文件改名,秘密傳輸?shù)娇刂贫恕?/p>
李飛兵[7]通過分析文件操作API,將文件操作劃分為以時(shí)間流和數(shù)據(jù)流為特征的高級(jí)文件行為,在此背景下分析幕后黑客對(duì)文件操作的習(xí)慣和規(guī)律。
攻擊時(shí)網(wǎng)絡(luò)傳輸行為是指在攻擊期間主機(jī)與遠(yuǎn)程控制主機(jī)產(chǎn)生的各種行為。比如攻擊開始后突然開始大量訪問某個(gè)網(wǎng)站,并傳輸本機(jī)的主機(jī)信息或者本機(jī)的文件。
張永斌[8]等提出持續(xù)性分析算法,判斷主機(jī)與外部特定目標(biāo)的通信行為是否具有周期性或連續(xù)性,提取出可疑的網(wǎng)絡(luò)行為,判斷主機(jī)是否感染惡意軟件。
羅亞麗[9]等設(shè)置截點(diǎn)將注冊(cè)表、文件、進(jìn)程、網(wǎng)絡(luò)通信行為系統(tǒng)調(diào)用進(jìn)行攔截,將攔截到的API函數(shù)值作為特征,使用貝葉斯算法對(duì)當(dāng)前系統(tǒng)狀態(tài)進(jìn)行異常檢測(cè)。
除了上述研究,也有以攻擊的生命周期層面為背景提出的入侵檢測(cè)。例如,李春光[10]等提出了一種結(jié)合系統(tǒng)調(diào)用和過濾器驅(qū)動(dòng)技術(shù)的HIPS,將整個(gè)攻擊生命周期分為5個(gè)階段:探測(cè)、滲透、駐留、傳播、破壞。每個(gè)階段又定義了不同的操作。最終能對(duì)攻擊性流量和入侵活動(dòng)進(jìn)行攔截。
以上研究雖然能取得不錯(cuò)的檢測(cè)效果,但是不能全面刻畫主機(jī)的行為。我們將對(duì)文件、進(jìn)程、注冊(cè)表和網(wǎng)絡(luò)的操作綜合分析,提出面向主機(jī)攻擊行為的分析方法。
分析攻擊對(duì)一個(gè)主機(jī)產(chǎn)生哪些具體的操作時(shí),首先要提取攻擊在主機(jī)產(chǎn)生的操作數(shù)據(jù),定義主要的操作類型;然后對(duì)數(shù)據(jù)進(jìn)行自動(dòng)分析、檢測(cè)關(guān)鍵特征、生成調(diào)用圖以及統(tǒng)計(jì)分析操作數(shù)。圖1為本文提出的分析主機(jī)攻擊行為的總體流程圖。
圖1 分析主機(jī)攻擊行為流程圖
為了表示系統(tǒng)中觀察到的事件,本文使用PerfView和Process Monitor兩個(gè)工具采集數(shù)據(jù)。每個(gè)事件由時(shí)間戳、進(jìn)程標(biāo)識(shí)符(可執(zhí)行文件名和pid)、操作類型、標(biāo)識(shí)操作對(duì)象的路徑、操作結(jié)果(成功/失敗)和包含附加信息的詳細(xì)信息組成。使用Process Monitor對(duì)操作行為進(jìn)行定義,其中具體的操作類型如表1所示。
為了進(jìn)行分析,本文給出的可疑行為定義如下。
1)把針對(duì)主機(jī)文件且能產(chǎn)生危害的操作分為:創(chuàng)建可執(zhí)行文件(f1),修改重要系統(tǒng)文件(f2),刪除系統(tǒng)重要文件(f3)。
表1 操作行為的具體定義
2)把針對(duì)注冊(cè)表且可能產(chǎn)生危害的操作分為:實(shí)現(xiàn)服務(wù)自啟動(dòng)(r1),降低系統(tǒng)安全性(r2),取得系統(tǒng)最大權(quán)限(r3)。
3)把針對(duì)進(jìn)程且可能產(chǎn)生危害的操作分為:創(chuàng)建系統(tǒng)已有進(jìn)程(p1),注入其他進(jìn)程(p2),創(chuàng)建惡意子進(jìn)程(p3),創(chuàng)建tor服務(wù)(p4)。
4)把針對(duì)網(wǎng)絡(luò)且可能產(chǎn)生危害的操作分為:定期向某個(gè)窗口發(fā)送信息(t1),傳輸主機(jī)信息(t2),某一端口的異常通信(t3)。
5)除了上述所提及的操作之外,不同的攻擊產(chǎn)生不同的具體操作??梢詣澐譃橐韵滤姆N。
a)勒索蠕蟲病毒可能產(chǎn)生的具有識(shí)別性的操作:產(chǎn)生密鑰信息(l1),加密文件(l2)。
b)竊密木馬病毒產(chǎn)生的有識(shí)別性的操作:記錄用戶名和密碼(w1),記錄鍵盤操作(w2)。
c)下載木馬病毒產(chǎn)生的有識(shí)別性的操作:上傳,下載大量文件(x1),產(chǎn)生遠(yuǎn)程控制命令(x2)。
d)代理木馬病毒產(chǎn)生的有識(shí)別性的操作:開啟http代理(d1),開啟socket代理(d2)。
因此,可以把攻擊表示為一個(gè)五元組:{F<f1,f2,f3>,R<r1,r2,r3>,P<p1,p2,p3,p4>,T<t1,t2,t3>,<l1,l2,w1,w 2,x1,x2,d1,d2>}。
本文中定義,如果以上五元組的前四個(gè)部分每個(gè)部分的匹配度超過50%(經(jīng)過統(tǒng)計(jì)分析得到的經(jīng)驗(yàn)值),就可以認(rèn)為此時(shí)系統(tǒng)處于被攻擊階段。匹配度為樣本產(chǎn)生的操作占五元組中事先定義的操作行為的比率。當(dāng)檢測(cè)到樣本數(shù)據(jù)有五元組中定義的子行為發(fā)生時(shí),記為1,否則,記為0。比如,某一樣本針對(duì)文件,產(chǎn)生了f1和f2兩個(gè)操作,即有F{1,1,0},則此時(shí)針對(duì)文件的可疑行為的匹配度為:2/3≈67%。并且各個(gè)元組之間的權(quán)重相同。五元組的第五部分,如果匹配到具體操作事件,就歸為相應(yīng)的某個(gè)類型的攻擊。
為了進(jìn)一步分析不同攻擊的特征,本文統(tǒng)計(jì)攻擊產(chǎn)生的具體操作,包括對(duì)文件、進(jìn)程、注冊(cè)表、網(wǎng)絡(luò)的操作。分別統(tǒng)計(jì)以上各種具體操作的次數(shù),分析哪種子操作占有較高的比率,這樣可以知道攻擊的主要行為操作類型。進(jìn)而增加樣本特征,提高檢測(cè)效率。
Fleck D[11]等為分析哪些攻擊是由用戶觸發(fā)的,哪些攻擊是自身啟動(dòng)的,使用了統(tǒng)計(jì)操作行為的方法。
本文使用Process Monitor采集到的一條數(shù)據(jù)表示為一個(gè)操作。OpNum表示某一攻擊在主機(jī)運(yùn)行期間產(chǎn)生的總的操作數(shù),SumTypeNum表示某一類型操作的總數(shù)量。SumTypeNum/OpNum表示某個(gè)操作類型占攻擊產(chǎn)生的所有操作的比例。
此次實(shí)驗(yàn)基于傳統(tǒng)的病毒分析步驟[12]進(jìn)行分析,主要是對(duì)攻擊期間關(guān)鍵操作進(jìn)行匹配識(shí)別。這一部分使用程序進(jìn)行自動(dòng)識(shí)別。對(duì)關(guān)鍵行為進(jìn)行匹配后,將會(huì)產(chǎn)生一個(gè)表示攻擊類型的五元組。本文主要按照以下的步驟對(duì)操作數(shù)據(jù)進(jìn)行檢測(cè)識(shí)別。
1)創(chuàng)建文件用于啟動(dòng)惡意程序。
調(diào)用cmd.exe程序執(zhí)行腳本語言。
2)創(chuàng)建可執(zhí)行文件。
創(chuàng)建與系統(tǒng)進(jìn)程同名的可執(zhí)行文件,比如csrss.exe。
3)修改注冊(cè)表,實(shí)現(xiàn)服務(wù)自啟動(dòng)。
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent Version 下所有以“run”開頭的鍵值;HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion 下所有以“run”開頭的鍵值; HKEY-USERS.DefaultSoftwareMicrosoftWindowsCurrentVersion下所有以“run”開頭的鍵值。
4)修改注冊(cè)表鍵值以降低安全性。
HKLMSoftwareMicrosoftSecurityCenter”Firew allOverride”=1HKLMSoftwareMicroSoftSecurityCe nter”AntiFirewallDisableNotify”= 1。
5)獲取系統(tǒng)權(quán)限。
獲取注冊(cè)表的全部權(quán)限。
6)創(chuàng)建子進(jìn)程。
調(diào)用cmd.exe程序執(zhí)行腳本語言。
7)注入其他系統(tǒng)進(jìn)程以隱藏自身。
注入explorer.exe、svchost.exe、csrss.exe等系統(tǒng)進(jìn)程。
8)網(wǎng)絡(luò)連接,發(fā)送信息,接受指令。
9)具體行為意圖包括:竊取用戶的賬號(hào)、記錄用戶鍵盤活動(dòng)、加密文件、遠(yuǎn)程控制竊取主機(jī)文件、DDos攻擊、竊取財(cái)物(網(wǎng)銀木馬)、充當(dāng)跳板。
使用一臺(tái)單機(jī)環(huán)境的Windows主機(jī)進(jìn)行實(shí)驗(yàn)。具體操作配置如下。硬件條件:CPU為Intel(R) Core(TM)i7-6700@3.4GHZ 3.4GHZ,內(nèi)存8.0GB。操作系統(tǒng):Windows7。開發(fā)平臺(tái):Pycharm。開發(fā)語言:python。
本實(shí)驗(yàn)運(yùn)行的木馬病毒樣本如表2所示。
將以上樣本分時(shí)段植入實(shí)驗(yàn)機(jī)器。使用Process Monitor工具收集攻擊運(yùn)行期間前5分鐘的關(guān)鍵操作,并保存導(dǎo)出。此過程中盡量關(guān)閉其他軟件,以減小其他軟件帶來的干擾。
表2 木馬病毒樣本
下面以勒索病毒Herty為例進(jìn)行一次詳細(xì)分析將此樣本植入實(shí)驗(yàn)主機(jī),開啟Process Monitor工具采集主機(jī)數(shù)據(jù),同時(shí)關(guān)閉其他應(yīng)用程序。此過程共采集到大約63207條數(shù)據(jù)。下面對(duì)實(shí)驗(yàn)中識(shí)別到的關(guān)鍵操作進(jìn)行分析并展示了部分操作數(shù)據(jù)。
1)偽裝成系統(tǒng)進(jìn)程,開機(jī)自動(dòng)啟動(dòng)木馬服務(wù)。
操作數(shù)據(jù):"HKEYCURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunClientServer Runtime Subsystem"設(shè)鍵值為"STRING="C:DocumentsandSettingsAllUsersApplicationDataWindowscsrss.exe"。
2)在系統(tǒng)上創(chuàng)建Tor服務(wù)。
操作數(shù)據(jù):C:UsersAdministratorAppDataRoaming orgeoip。
3)調(diào)用cmd.exe程序執(zhí)行腳本語言。
操作數(shù)據(jù):Commandline:C:Windowssystem32cmd.execechoonerrorresumenext:CreateObje ct("WScript.Shell").Run"C:UsersAdministratorDocumentsherty.exe",1: >"C:UsersAdministratorAppDataRoamingMicrosoftWindowsStartMenuProgramsStartupx.vbs"。用于開機(jī)后自動(dòng)啟動(dòng)木馬程序。
4)注冊(cè)表生成解密前公鑰密碼。
操作數(shù)據(jù):RegSetValueHKLMSOFTWAREWow6432NodeSystem32Configurationxpk-BEGINPUBLIC KEY(生成的部分)-MIIBojANBgkqhkiG9 w0BAQEFAAOCAY8AMIIBigKCAYEAu1nEgF8haqpQ 0RbCkh。
5)創(chuàng)建文件,為用戶留下解鎖信息。
操作數(shù)據(jù):創(chuàng)建文件README1、README2、README3、README4、README5、README6、README7、README8、README9、README10于"C: "路徑下。
6)文件加密。
遍歷系統(tǒng)磁盤指定文件類型的文件,解密公鑰密碼,使用公鑰進(jìn)行文件加密,修改文件類型為DA_VINCI_CODE文件,將文件名進(jìn)行加密處理。
操作數(shù)據(jù):"C:UsersAdministratorAppDataLocalTempstate ""C:UsersAdministratorAppDataLocalTemplock ",state文件存儲(chǔ)Torversion信息。
7)修改桌面背景,顯示勒索信息。
操作數(shù)據(jù):RegSetValue HKCUControl PanelDesktopWallpaperType:REG_SZ,Length:120,Data:C:UsersAdministratorAppDataRoaming6E70967C6E70967C.bmp。
8)啟動(dòng)服務(wù)功能,發(fā)起指定連接請(qǐng)求。
Herty勒索病毒產(chǎn)生的行為如圖2所示
描述Herty勒索病毒產(chǎn)生的特定操作的五元組為:{F<1,1,1>,R<1,0,1>,P<1,1,1,1>,T<1,1,0>,<1,1,0,0,0,0,0,0>},可以看出前四個(gè)部分每個(gè)部分都超過50%匹配,后一個(gè)部分產(chǎn)生了加密文件和生成密鑰的操作,此時(shí)可以認(rèn)為是在對(duì)文件進(jìn)行加密,進(jìn)而判別此攻擊為勒索的攻擊。
Herty勒索病毒產(chǎn)生的時(shí)序調(diào)用圖如圖3所示
勒索病毒產(chǎn)生的行為數(shù)統(tǒng)計(jì)如表3所示。
圖2 Herty勒索病毒產(chǎn)生的行為
圖3 勒索病毒隨時(shí)間產(chǎn)生的操作
通過上表可以看出此勒索病毒在運(yùn)行期間一共產(chǎn)生了63207個(gè)子操作。其中對(duì)文件的操作數(shù)Sum TypeNum為55952個(gè),占到了總事件的88.4%。對(duì)進(jìn)程的操作數(shù)SumTypeNum為2613個(gè),占到總事件的4.1%。對(duì)注冊(cè)表的操作數(shù)SumTypeNum為4630個(gè),占總事件的7.3%。而對(duì)網(wǎng)絡(luò)的操作數(shù)SumTypeNum為12,只占到總數(shù)的0.01%。通過以上統(tǒng)計(jì),本文發(fā)現(xiàn)Herty勒索病毒的主要操作集中在文件部分。這也與勒索病毒主要是對(duì)主機(jī)文件進(jìn)行加密的操作有關(guān)。
所有樣本的五元組匹配結(jié)果如表4所示。
樣本產(chǎn)生的操作行為統(tǒng)計(jì)如表5所示。
表3 勒索病毒產(chǎn)生具體操作的統(tǒng)計(jì)
表4的結(jié)果顯示,我們提出的基于行為特征的匹配檢測(cè)攻擊行為的方法,能準(zhǔn)確地根據(jù)行為特征檢測(cè)出相應(yīng)的攻擊。表5顯示了我們統(tǒng)計(jì)的樣本在運(yùn)行期間操作行為的數(shù)量。其中,對(duì)于網(wǎng)絡(luò)的操作很少,可能是因?yàn)榕c其通信的主機(jī)(如控制端)位于國外。另外,可以從結(jié)果中得出:全部的樣本產(chǎn)生的操作都集中于文件和注冊(cè)表。其中樣本1和樣本2為勒索病毒樣本,它們都對(duì)文件產(chǎn)生了很多的操作。樣本3屬于代理類木馬,它對(duì)注冊(cè)表產(chǎn)生的大量的操作。樣本4屬于下載類的木馬,本應(yīng)該會(huì)產(chǎn)生大量網(wǎng)絡(luò)傳輸行為,但是由于網(wǎng)絡(luò)的原因,沒能產(chǎn)生相應(yīng)的操作。樣本5和樣本6屬于竊密木馬,同樣對(duì)文件和注冊(cè)表產(chǎn)生了大量的操作,用于操作文件和獲得權(quán)限。
表4 五元組匹配結(jié)果
表5 操作行為統(tǒng)計(jì)結(jié)果
本文提出的面向主機(jī)的攻擊行為分析方法,是基于具體操作行為實(shí)現(xiàn)的。把主機(jī)的系統(tǒng)操作分為四個(gè)大類:文件、注冊(cè)表、網(wǎng)絡(luò)、進(jìn)程。又將這四個(gè)大類細(xì)分為許多子操作,這些子操作涵蓋了系統(tǒng)操作的主要行為。同時(shí)使用基于木馬病毒分析的流程,編程實(shí)現(xiàn)自動(dòng)分析數(shù)據(jù),識(shí)別出主要的高危操作。最后又對(duì)操作進(jìn)行統(tǒng)計(jì),分析攻擊規(guī)律。本文提出的分析方法實(shí)現(xiàn)了在主機(jī)端對(duì)攻擊行為的刻畫,實(shí)現(xiàn)了攻擊的分類檢測(cè)。