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