專利名稱:惡意程序行為自動化分析、檢測與分類系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明屬于系統(tǒng)安全與網(wǎng)絡(luò)安全相關(guān)領(lǐng)域,更進一步涉及惡意程序動態(tài)行為自動化分析的方法。本發(fā)明用于對已知惡意程序動態(tài)行為規(guī)則的建立,和對未知惡意程序動態(tài)行為的高準確度判斷。
背景技術(shù):
在惡意程序分析領(lǐng)域,為了更加準確、更加全面的、更加迅速的獲得惡意程序的行為特征,采用動態(tài)行為自動化分析方法。電子科技大學(xué)的專利申請“惡意程序動態(tài)行為自動化分析系統(tǒng)與方法”(公開號CN101154258,申請日2007.08.14)中公開了一種惡意程序動態(tài)分析的方法。這種動態(tài)分析的具體步驟包括(I)初始化部件啟動目標二進制程序;(2)初始化部件加載虛擬執(zhí)行部件和行為監(jiān)控部件;(3)反匯編部件獲取目標程序二進制代碼流的匯編指令;(4)虛擬執(zhí)行部件切片生成相應(yīng)的執(zhí)行塊;(5)行為控制部件判斷基本塊內(nèi)是否存在規(guī)則庫中的惡意行為;(6)若存在惡意行為,將控制權(quán)交給行為分析部件,記錄該惡意行為;(7)虛擬執(zhí)行基本塊中的每條指令;(8)停止分析后,行為分析部件提交惡意行為分析報告。雖然這種方法提供了自動化惡意程序動態(tài)行為分析系統(tǒng),可用于對未知惡意程序動態(tài)行為的粗粒度劃分,但是由于該系統(tǒng)缺少對惡意程序的靜態(tài)分析、缺少主機事件模擬、缺少主機環(huán)境模擬、缺少常見的網(wǎng)絡(luò)環(huán)境的模擬等,所以該系統(tǒng)對惡意程序的動態(tài)行為的獲取很不全面;并且該系統(tǒng)僅能對二進制可執(zhí)行文件進行分析,對其他格式文件如服務(wù)程序、DLL文件或非PE文件都不能進行分析,系統(tǒng)使用的局限性很大;同時,該系統(tǒng)對獲得惡意程序行為特征之后如何進行行為抽象,以及如何對未知二進制程序的惡意行為進行分析歸類未能給出方法。綜上所述,這些不足影響到該系統(tǒng)的實用性、準確性以及分類效率。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有的惡意程序分析、檢測與分類的技術(shù)的不足,提出一種靜態(tài)分析、動態(tài)分析與網(wǎng)絡(luò)分析相結(jié)合,行為抽象與集成學(xué)習(xí)相結(jié)合的惡意程序自動化分析、檢測與分類方法。目標是提供實用性較強的惡意程序自動化分析、檢測與分類系統(tǒng)及方法,它支持加載運行PE文件和常見的非PE文件,支持對惡意程序執(zhí)行的完全監(jiān)控,監(jiān)控惡意程序加載執(zhí)行期間的進程注入、注冊表操作、內(nèi)存操作、文件操作等主機行為以及網(wǎng)絡(luò)重定向、DNS尋址、ftp連接、http訪問、email登錄與發(fā)送等網(wǎng)絡(luò)行為,提供對進程、內(nèi)存、文件、注冊表、主機環(huán)境、網(wǎng)絡(luò)等各類系統(tǒng)資源的惡意訪問行為,提供U盤插入、光盤插入等主機事件的模擬。同時,根據(jù)惡意程序自動化分析生成的報告對每個惡意程序的行為進行系統(tǒng)化、規(guī)則化的抽象,形成惡意程序行為特征庫,利用集成學(xué)習(xí)方法對這些行為特征進行分析和量化,建立起分類模型,有效提高了對未知樣本文件分類的準確率。本發(fā)明通過虛擬化技術(shù)實現(xiàn)的沙盒監(jiān)控、獲取惡意程序靜態(tài)信息并捕獲惡意程序行為特征、基于行為特征的惡意程序檢測及分類這一整套系統(tǒng)化的方法來實現(xiàn)惡意程序自動化分析與準確分類,以解決現(xiàn)有技術(shù)中特征碼提取難度大、難以應(yīng)對復(fù)雜的加殼、多態(tài)和變形技術(shù)的惡意程序、惡意程序行為捕獲不完整、行為抽象和檢測分類方法不明確等缺點,提高了惡意程序的檢測率和分類準確率。本發(fā)明提供的惡意程序自動化分析、檢測與分類系統(tǒng)包括了下述模塊I.靜態(tài)分析模塊在對樣本文件進行沙盒動態(tài)分析之前,可以對可執(zhí)行文件(PF文件)的結(jié)構(gòu)進行靜態(tài)分析,以得到盡可能多的與樣本相關(guān)的信息,由這些信息得到樣本文件的靜態(tài)分析報告,和之后的各種報告成為行為抽象模塊最原始的數(shù)據(jù)來源。2.沙盒調(diào)度管理模塊本發(fā)明包括多個沙盒,需要有獨立的沙盒調(diào)度管理模塊管理每個沙盒、協(xié)調(diào)樣本和數(shù)據(jù)的傳輸、控制樣本自動化分析的流程。沙盒調(diào)度管理模塊控制每一個沙盒的啟動和退出,實現(xiàn)與每一個沙盒的信息交換與文件傳輸,控制樣本的執(zhí)行和主機環(huán)境模擬??偟膩碚f,沙盒調(diào)度管理模塊是一個協(xié)助沙盒監(jiān)控模塊自動化完成相應(yīng)功能的模塊,是一個重要的輔助模塊。3.沙盒監(jiān)控模塊沙盒監(jiān)控模塊以捕獲特定進程發(fā)起的API調(diào)用及其參數(shù)為主要目標,同時提取該進程加載模塊和操作系統(tǒng)為其維護的相關(guān)內(nèi)核數(shù)據(jù)。本發(fā)明使用開源模擬器Qemu作為基礎(chǔ)的虛擬機軟件,并且對其CPU模擬中的指令解釋執(zhí)行部分核心代碼進行修改,實現(xiàn)監(jiān)控特定進程主機行為的目的。這種基于指令集仿真環(huán)境的行為監(jiān)測技術(shù)可以從指令級開始自下而上實現(xiàn)系統(tǒng)調(diào)用、進程等內(nèi)核模塊重構(gòu)來獲取惡意程序動態(tài)執(zhí)行中的行為,并且宿主機與惡意程序執(zhí)行的沙盒環(huán)境相隔離,在很大程度上避免了惡意程序在執(zhí)行過程中對宿主機的影響。為了克服傳統(tǒng)API攔截方法中由于修改被監(jiān)控程序源代碼引起的破壞程序穩(wěn)定執(zhí)行、容易被檢測出分析工具的存在以逃避監(jiān)控、收集操作系統(tǒng)內(nèi)核數(shù)據(jù)時,需要驅(qū)動程序,技術(shù)難度大等缺點,沙盒監(jiān)控模塊以不修改目標程序,靜默監(jiān)控測試程序的執(zhí)行,收集多種可用信息為目標。被監(jiān)控程序運行在客戶操作系統(tǒng)中,程序行為的監(jiān)控實現(xiàn)在比客戶操作系統(tǒng)有著更高特權(quán)等級的Qemu監(jiān)控器單元。由于行為監(jiān)控實現(xiàn)于更高的特權(quán)等級,測試程序難以逃脫分析,并且無需修改測試程序源代碼。4.行為抽象模塊在沙盒監(jiān)控模塊完成對惡意程序的執(zhí)行和API的捕獲之后,可以獲得該樣本程序運行期間使用的API函數(shù)及其參數(shù)的報告。但是該API報告直接用于惡意程序分類,存在一些障礙,所以需要從API序列中抽象得到樣本表現(xiàn)的行為。這個將樣本API序列抽象為樣本行為的過程,稱為“行為抽象”。惡意程序樣本經(jīng)過沙盒分析,得到的是其API調(diào)用序列。雖然該調(diào)用序列含有較多的與惡意程序行為相關(guān)的信息,但是在后續(xù)分類算法處理,以及生成人容易理解的報告的過程中,API序列的抽象層次程度過低。所以需要定義一些規(guī)則,將API調(diào)用序列抽象為算法容易處理的數(shù)據(jù)形式,更進一步還需要抽象成為人容易理解的表述形式。5.檢測與分類模塊惡意程序檢測任務(wù)是一個標準的多分類任務(wù)。為了判斷用戶提交的分析文件是否是惡意程序,若是需進一步判斷屬于哪一種惡意程序,必須首先建立起分類模型。本系統(tǒng)采用集成學(xué)習(xí)的思想建立分類模型。集成學(xué)習(xí)的思想使用不同的策略將一個大問題劃分為若干的小問題分別求解,或是生成多個學(xué)習(xí)器解決同一問題,接著通過集成策略將不同子分類器的輸出結(jié)果合成,得到單一的最終輸出結(jié)果。生成多個分類器進行表決,能夠有效提高分類問題的準確率,是本系統(tǒng)中算法設(shè)計的核心。集成學(xué)習(xí)算法分為兩個關(guān)鍵環(huán)節(jié)子分類器生成和分類器集成。本系統(tǒng)選擇增強學(xué)習(xí)中經(jīng)典的AdaBoost算法作為集成框架,選擇決策樹算法C4. 5作為子分類器生成算法。本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點第一,本發(fā)明基于指令集仿真環(huán)境的行為監(jiān)測技術(shù),可以從指令級開始自下而上實現(xiàn)系統(tǒng)調(diào)用、進程等內(nèi)核模塊重構(gòu)來獲取惡意程序動態(tài)執(zhí)行中的行為,由于行為監(jiān)控實現(xiàn)于更高的特權(quán)等級,測試程序難以逃脫分析,并且無需修改測試程序源代碼,因此克服了傳統(tǒng)API攔截方法中由于修改被監(jiān)控程序源代碼引起的破壞程序穩(wěn)定執(zhí)行,容易被檢測出分析工具的存在以逃避監(jiān)控,收集操作系統(tǒng)內(nèi)核數(shù)據(jù)時需要驅(qū)動程序、技術(shù)難度大等缺點。第二,本發(fā)明在沙盒中通過環(huán)境配置和修改服務(wù)器程序等手段構(gòu)建虛擬Internet,模擬普遍的網(wǎng)絡(luò)服務(wù),使得惡意程序發(fā)起的DNS解析、http訪問、文件下載、Email登錄、郵件發(fā)送等操作能夠成功執(zhí)行,誘騙惡意程序產(chǎn)生惡意網(wǎng)絡(luò)行為,同時確保這些網(wǎng)絡(luò)行為不會對宿主機和真實網(wǎng)絡(luò)造成破壞,克服了惡意程序動態(tài)行為分析中惡意程序網(wǎng)絡(luò)行為無法充分表現(xiàn)等缺點。第三,本發(fā)明在沙盒中通過環(huán)境配置和程序等手段模擬多種主機事件和主機環(huán)境,使得惡意程序?qū)盤插入、光盤插入、網(wǎng)絡(luò)共享文件夾連接等事件或?qū)溈孙L(fēng)、攝像頭等環(huán)境敏感時都能夠成功表現(xiàn)出后續(xù)的行為,誘騙惡意程序產(chǎn)生更多的行為,克服了惡意程序動態(tài)行為分析中惡意程序?qū)χ鳈C事件或主機環(huán)境敏感時無法充分表現(xiàn)行為等缺點。
第四,本發(fā)明實現(xiàn)了一種對于惡意程序行為的抽象算法,通過分析和處理沙盒得到的惡意程序行為原始數(shù)據(jù),可以得到形式整齊、較少冗余的抽象行為數(shù)據(jù)。該行為抽象算法可以快速得到可供后續(xù)行為檢測與分類算法使用的數(shù)據(jù),為后續(xù)算法提供良好的數(shù)據(jù)基礎(chǔ),克服了傳統(tǒng)行為抽象算法抽象速度慢、表示方式復(fù)雜、通用性不強等缺點。第五,本發(fā)明在惡意程序行為檢測與分類過程中使用了先進的集成學(xué)習(xí)算法AdaBoost。作為現(xiàn)代機器學(xué)習(xí)十大算法之一,AdaBoost算法可以將若干性能較弱的分類器通過自適應(yīng)線性組合,得到性能較強的分類器,同時隱式優(yōu)化分類邊界,避免過擬合帶來的負面影響。在惡意程序行為檢測與分類過程中采用AdaBoost算法,可以有效提高分類準確率,尤其是對于新樣本的泛化準確率??朔藗鹘y(tǒng)惡意程序行為檢測與分類過程中分類效果不理想、容易過擬合導(dǎo)致泛化能力差等缺點。
圖I為本發(fā)明惡意程序行為自動化分析、檢測與分類系統(tǒng)及方法的流程圖;圖2為本發(fā)明惡意程序行為自動化分析、檢測與分類系統(tǒng)及方法沙盒監(jiān)控模塊的體系結(jié)構(gòu)圖;圖3為本發(fā)明惡意程序行為自動化分析、檢測與分類系統(tǒng)及方法的沙盒監(jiān)控模塊與沙盒調(diào)度管理模塊之間交互工作流程圖。圖4為本發(fā)明惡意程序行為自動化分析、檢測與分類系統(tǒng)及方法的Qemu監(jiān)控器單元工作圖。圖5為本發(fā)明惡意程序行為自動化分析、檢測與分類系統(tǒng)及方法的行為抽象示意圖。
圖6為本發(fā)明惡意程序行為自動化分析、檢測與分類系統(tǒng)及方法的行為抽象流程圖。
具體實施例方式以下結(jié)合具體實施例,對本發(fā)明進行詳細說明。參考圖1,步驟1,靜態(tài)分析模塊首先對可執(zhí)行樣本文件的結(jié)構(gòu)進行靜態(tài)分析,獲得樣本的編譯器版本、構(gòu)建時間、多國語言信息、PE文件的節(jié)信息、PE文件的導(dǎo)入表、PE文件是否加殼以及加殼類型等,靜態(tài)分析模塊將得到與惡意程序相關(guān)的信息,并結(jié)合沙盒監(jiān)控模塊獲得的惡意程序動態(tài)分析信息,為最后的集成分類算法的分類提供更豐富的數(shù)據(jù)。步驟2,靜態(tài)分析完成以后,樣本文件將進入動態(tài)分析自動化過程。樣本文件的動態(tài)分析過程將由沙盒調(diào)度管理模塊自動化管理。沙盒調(diào)度管理模塊啟動沙盒,將樣本文件上傳至Guest OS單元,在Guest OS單元中運行樣本,沙盒監(jiān)控模塊中的Qemu監(jiān)控器單元監(jiān)控樣本的執(zhí)行或加載,產(chǎn)生樣本文件的API序列的報告,沙盒監(jiān)控模塊中GuestOS單元的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控功能監(jiān)控Guest OS單元產(chǎn)生的網(wǎng)絡(luò)數(shù)據(jù)包,產(chǎn)生樣本文件的網(wǎng)絡(luò)數(shù)據(jù)包報告。樣本執(zhí)行正常結(jié)束或超時結(jié)束后,如果是非EXE樣本文件,將進行注冊表及文件系統(tǒng)的快照對比,產(chǎn)生注冊表、文件快照對比報告。這些報告將與樣本執(zhí)行過程中生成的文件一起傳輸給沙盒調(diào)度管理模塊,這些報告將是對一個惡意程序樣本進行行為抽象的原始數(shù)據(jù)。圖2為沙盒監(jiān)控模塊的體系結(jié)構(gòu)圖。圖中詳細描述了沙盒監(jiān)控模塊的體系結(jié)構(gòu),以及沙盒監(jiān)控模塊通過沙盒調(diào)度管理模塊與宿主機進行交互的情況。沙盒監(jiān)控模塊包括作為惡意程序虛擬執(zhí)行環(huán)境的Guest OS單元;改造過的全系統(tǒng)模擬器Qemu監(jiān)控器單元。Guest OS單元包括了網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控、快照對比、主機事件模擬等功能,Qemu監(jiān)控器單元包括了進程識別與多進程監(jiān)控、API監(jiān)控、API依賴關(guān)系分析與冗余數(shù)據(jù)過濾等功能。下面2a-2b分別詳細介紹各單元的功能,以及工作流程。2a). Guest OS(客戶操作系統(tǒng))單元是運行惡意程序樣本的環(huán)境,我們選擇Windows XP操作系統(tǒng)作為Guest OS0 Guest OS單元與宿主機之間通過虛擬網(wǎng)絡(luò)連接,由沙
盒調(diào)度管理模塊負責(zé)交互。參考圖3,詳細描述了 Guest OS單元與沙盒調(diào)度管理模塊進行交互,以及GuestOS單元操作惡意程序樣本的工作流程。下面詳細介紹該工作流程。i>沙盒調(diào)度管理模塊啟動沙盒,通過虛擬網(wǎng)絡(luò)將樣本文件從宿主機上傳至GuestOS單元。ii>Guest OS啟動基于主機數(shù)據(jù)包的監(jiān)控。開始執(zhí)行樣本文件。ii i>Qemu監(jiān)控器單元在樣本文件正常結(jié)束或超時結(jié)束后向沙盒調(diào)度管理模塊發(fā)送樣本分析結(jié)束的消息。iv>若樣本文件不是可執(zhí)行文件則進行注冊表及文件系統(tǒng)快照比對,生成快照比對報告,否則直接進行下一步。v>若樣本文件在執(zhí)行過程中釋放了其他文件,則將這些文件通過虛擬網(wǎng)絡(luò)傳給宿主機,否則直接進行下一步。vi>Guest OS單元將網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控報告?zhèn)鹘o宿主機。vii>沙盒調(diào)度管理模塊關(guān)閉沙盒。
2b). Qemu監(jiān)控器單元比Guest OS單元有著更高特權(quán)等級,用于監(jiān)控目標程序的行為。Qemu監(jiān)控器單元使用開源模擬器Qemu作為基礎(chǔ)的虛擬機軟件,但是對其CPU模擬中的指令解釋執(zhí)行部分核心代碼進行修改,實現(xiàn)監(jiān)控特定進程主機行為的目的。參考圖4,描述了 Qemu監(jiān)控器單元的工作過程,下面詳細介紹該工作過程。i>QemU監(jiān)控器單元識別當前正在運行的進程是否是目標進程,若不是目標進程,則直接放過執(zhí)行,否則進行下一步。ii>若執(zhí)行到API入口點處代碼,則保存返回地址到返回地址棧,并調(diào)用前端回調(diào)函數(shù),前端回調(diào)函數(shù)在API入口點處代碼執(zhí)行時讀取in和in_out參數(shù)的in值。iii>若執(zhí)行的不是API入口點處代碼,則與返回地址棧棧頂元素進行比較,若不相等,則說明當前調(diào)用的API是嵌套調(diào)用的API,這些嵌套調(diào)用的API不代表程序真正的行為而是操作系統(tǒng)的內(nèi)部實現(xiàn),所以放過執(zhí)行而不監(jiān)控。否則,若相等,則調(diào)用后端回調(diào)函數(shù),后端回調(diào)函數(shù)在調(diào)用返回時讀取返回值和out參數(shù)的值,之后對返回地址棧進行相應(yīng)的修改。Qemu監(jiān)控器單元使用開源模擬器Qemu作為基礎(chǔ)的虛擬機軟件,但是對CPU模擬中的指令解釋執(zhí)行部分核心代碼進行修改,修改Qemu的過程中涉及到多個技術(shù)難點,下面2c-2g分別介紹各技術(shù)難點及本發(fā)明的解決方法。2c). Qemu監(jiān)控器單元的進程識別未經(jīng)改造的虛擬機僅對計算機硬件進行嚴格模擬,模擬CPU執(zhí)行每一條指令的過程,并不理解操作系統(tǒng)級別的“進程”概念。從Qemu監(jiān)控器中向上監(jiān)控運行于客戶操作系統(tǒng)中的目標進程,首先必須在Qemu監(jiān)控器中重構(gòu)出客戶操作系統(tǒng)中當前運行的所有進程,僅在目標進程被調(diào)度執(zhí)行時,進行行為數(shù)據(jù)的捕獲。本系統(tǒng)在Qemu監(jiān)控器單元進行進程識別的方法是沙盒監(jiān)控模塊在每一個翻譯塊開始執(zhí)行前,利用虛擬內(nèi)存讀寫函數(shù),以內(nèi)核數(shù)據(jù)結(jié)構(gòu)KPCR(Kernel Process ControlRegion,內(nèi)核處理器控制區(qū))為線索,找到系統(tǒng)中當前正在執(zhí)行進程的EPR0CESS結(jié)構(gòu)體起始地址。接著,通過EPR0CESS(執(zhí)行體進程塊)結(jié)構(gòu)中保存的進程名判斷當前正在執(zhí)行進程是否是目標進程,若是則從中讀取操作系統(tǒng)分配給該進程的頁目錄基址值。之后,將該值與虛擬CR3寄存器中存儲的值做比較,判斷監(jiān)控進程是否正在執(zhí)行。僅在目標進程執(zhí)行時進行行為數(shù)據(jù)采集。2d). API調(diào)用分析框架與讀取參數(shù)的回調(diào)函數(shù)=Qemu以基本塊為單位進行指令模擬,每一個代碼塊均以跳轉(zhuǎn)指令結(jié)束。因而,任何API其入口點處的代碼都位于一個翻譯塊的開始。在翻譯塊的開始,基于API入口地址比較的原理,便可在Qemu監(jiān)控器單元實現(xiàn)靜默式監(jiān)控特定進程發(fā)起的API調(diào)用。每一個監(jiān)控中的API都有與之對應(yīng)的回調(diào)函數(shù),負責(zé)從虛擬內(nèi)存中讀取傳遞給該API的調(diào)用參數(shù)。API監(jiān)控通過需要修改Qemu指令翻譯例程來實現(xiàn),向其中插入回調(diào)函數(shù)調(diào)用框架,在API入口點代碼執(zhí)行之前,由框架程序判斷是否需要調(diào)用相應(yīng)的回調(diào)函數(shù)獲取參數(shù)信息。API調(diào)用參數(shù)的獲取是行為數(shù)據(jù)采集的核心,僅得到API調(diào)用名不足以分析惡意程序行為。在執(zhí)行到API入口點處代碼時,使用虛擬內(nèi)存讀取函數(shù)便可以從虛擬ESP寄存器指示的地址中讀取返回地址,從ESP+4指示的地址中讀取第一個參數(shù),從ESP+8指示的地址中讀取第二個參數(shù),以此類推。API調(diào)用時,超過32位的參數(shù)(如字符串、結(jié)構(gòu)體等),以指向該參數(shù)指針代替參數(shù)的實際值。對于這些參數(shù),一次讀取虛擬內(nèi)存得到的僅僅是參數(shù)
9在內(nèi)存中的存儲地址,對分析沒有任何作用,必須多次讀取虛擬內(nèi)存直到讀出參數(shù)的實際值為止。API監(jiān)控由兩段式的回調(diào)函數(shù)完成,前端回調(diào)函數(shù)在API入口點處代碼執(zhí)行時讀取in參數(shù)(輸入?yún)?shù))和in_out參數(shù)(輸入輸出參數(shù))的in值,后端回調(diào)函數(shù)在調(diào)用返回時讀取返回值和out參數(shù)(輸出參數(shù))的值。前后端回調(diào)函數(shù)通過公共緩沖區(qū)進行通信,配合工作。使用API入口地址比較法,不可避免的會監(jiān)控到嵌套調(diào)用的API是另一個重要問題。操作系統(tǒng)在實現(xiàn)某個API時,有可能調(diào)用其它API。例如CopyFile間接調(diào)用CreateFile和WriteFile完成其功能。這些嵌套調(diào)用的API不代表程序真正的行為而是操作系統(tǒng)的內(nèi)部實現(xiàn)。為了過濾這一類嵌套調(diào)用API,回調(diào)函數(shù)調(diào)用框架維護一個返回地址棧。僅在棧深度為I時輸出記錄以過濾嵌套API。2e).缺頁異常處理虛擬內(nèi)存由Qemu進程堆空間模擬,數(shù)據(jù)采集所需的各種信息都位于其中。在本地主機中定位虛擬內(nèi)存中的數(shù)據(jù),繞過Qemu虛擬內(nèi)存模擬例程直接讀取所需信息是在Qemu監(jiān)控器單元靜默式收集目標進程行為數(shù)據(jù)的核心技術(shù)。但是,由于Windows虛擬內(nèi)存管理采用“懶策略”,若需要讀取的數(shù)據(jù)不在虛擬內(nèi)存,而是在虛擬硬盤中時,強行讀取虛擬內(nèi)存會導(dǎo)致缺頁異常,客戶操作系統(tǒng)中正在執(zhí)行的分析進程異常終止,破壞了監(jiān)控進程的正常執(zhí)行,是不可被接受的。為了避免分析者從虛擬內(nèi)存中提取行為數(shù)據(jù)時引發(fā)缺頁異常破壞分析程序的正常執(zhí)行,沙盒監(jiān)控模塊使用“三步法”來解決這一問題。具體過程如下讀取之前首先測試是否存在缺頁現(xiàn)象,若出現(xiàn)缺頁,等待該頁被調(diào)入虛擬內(nèi)存,若等待不成功,由分析程序強行讀取該地址空間中的數(shù)據(jù),觸發(fā)客戶操作系統(tǒng)缺頁異常處理例程,將所缺頁調(diào)入虛擬內(nèi)存,接著嘗試再次讀取數(shù)據(jù)。為了提高執(zhí)行效率,在沙盒監(jiān)控模塊中,并非所有虛擬內(nèi)存讀寫都使用“三步法”,而是僅在最有可能發(fā)生缺頁時,執(zhí)行以上缺頁異常避免策略。Windows系統(tǒng)中,直接從棧中讀取的數(shù)據(jù)(32位參數(shù))不會引起缺頁,字符串和結(jié)構(gòu)體參數(shù)通常情況下數(shù)據(jù)量小也不會引發(fā)缺頁,均不需要進行缺頁測試。只有在涉及I/O過程或是大緩沖區(qū)讀寫時,才有可能出現(xiàn)缺頁異常。2f). API依賴關(guān)系分析與冗余數(shù)據(jù)過濾在API調(diào)用中,若某個API的返回值或是out參數(shù)是另一個API的in參數(shù),那么稱這兩個API之間存在調(diào)用依賴關(guān)系。在成功截獲特定進程發(fā)起的API調(diào)用之后,API調(diào)用序列分析仍然面臨以下三個難題。第,為了對抗API頻率統(tǒng)計和API時序分析,部分惡意程序的編寫使用了冗余API插入和API重排,使得API時序調(diào)用序列難以刻畫惡意程序的特征行為;第二,動態(tài)分析在運行時收集監(jiān)控程序的行為數(shù)據(jù),由于程序中存在循環(huán)與搜索,造成某些API重復(fù)調(diào)用,為后續(xù)行為分析帶來了沉重的數(shù)據(jù)負擔(dān);第三,Windows API存在二義性,例如CreateFile可以是打開文件,創(chuàng)建文件,打開命名管道,或是創(chuàng)建命名管道等,這就導(dǎo)致API調(diào)用并不真正等價于程序行為。盡管API調(diào)用頻率和API調(diào)用時序會發(fā)生變化,但API之間的調(diào)用依賴關(guān)系相對穩(wěn)定,并且對同一對象重復(fù)操作的API之間存在依賴關(guān)系?;诖耍琎emu監(jiān)控器單元中的API依賴關(guān)系分析與冗余數(shù)據(jù)過濾功能復(fù)雜處理以下三種情況以提取出惡意程序的特征行為。第一,在Windows平臺下,句柄代表著系統(tǒng)資源,以句柄為依據(jù)將對同一資源的重復(fù)操作合并為一次。第二,對進程注入事件進行監(jiān)控。第三,通過依賴關(guān)系分析消除Create系列API的二義性。2g).多進程監(jiān)控=Qemu監(jiān)控器單元中的多進程監(jiān)控功能用于監(jiān)控主進程創(chuàng)建的子進程和進程注入中被注入進程的行為。在主進程運行過程中,自動識別并添加需要監(jiān)控的新的目標進程是多進程監(jiān)控的難點。沙盒監(jiān)控模塊以捕獲API調(diào)用為核心,因此,實現(xiàn)多進程監(jiān)控依然從API角度出發(fā)。多進程監(jiān)控的第一步是獲取需要監(jiān)控進程的進程名,在操作系統(tǒng)初始化進程時,以進程名為線索,找到操作系統(tǒng)分配給該進程的頁目錄基址的值。對于創(chuàng)建子進程這一行為,可通過監(jiān)控NtCreateProcess這一內(nèi)核API來實現(xiàn)。改造NtCreateProcess對應(yīng)的前端回調(diào)函數(shù),從調(diào)用參數(shù)中抽取出被創(chuàng)建進程的進程名,通過上文介紹的運行時內(nèi)存分析方法,找到該進程頁目錄基址的值,傳遞給API調(diào)用管理框架,以實現(xiàn)子進程監(jiān)控的擴充。第二步,Qemu監(jiān)控器單元中的進程識別功能維護一個敏感頁目錄基址值列表,在每一個翻譯塊執(zhí)行前,與虛擬CR3寄存器中存儲的值做比較,當虛擬CR3寄存器切換到任一個敏感頁目錄基址值時,Qemu監(jiān)控器單元中的API監(jiān)控功能開始工作。進程注入行為的監(jiān)控主要分為識別進程注入行為和提取被注入進程的進程名兩個步驟,都涉及到運行時多個API之間依賴關(guān)系的分析。進程注入實現(xiàn)時通常從進程枚舉開始,由于每一個被枚舉進程都是一個潛在的被注入進程,進程識別功能維護一個全局進程注入事件模板,當監(jiān)控到EnumProcess、Process32First和Process32Next等用于進程枚舉的API被調(diào)用時,為每一個被找到進程填寫一個進程注入事件模板,記錄進程名、進程ID、進程句柄等信息。實現(xiàn)進程注入的核心API包括0penProcess、VirtualAllocEx>WriteProcessMemory。修改與這些API對應(yīng)的前端回調(diào)函數(shù),當這些API被調(diào)用時,通過調(diào)用參數(shù)索引相應(yīng)的進程注入事件模板,更新模板,直到WriteProcessMemory成功調(diào)用,標志著進程注入事件的發(fā)生。這時從模板中讀取被注入進程名,找到該進程的頁目錄基址,再傳遞給進程識別功能,便成功添加被注入進程為監(jiān)控目標。隨后API調(diào)用管理框架會自動分析被注入進程發(fā)起的行為。步驟3,在惡意程序樣本動態(tài)分析結(jié)束之后,將會獲得一系列的報告,這些報告將由行為抽象模塊進行處理,得到樣本行為。結(jié)合附圖5行為抽象示意圖,行為抽象模塊的主要步驟是原始數(shù)據(jù)清理、行為抽象、行為存儲。結(jié)合附圖6行為抽象流程圖,行為抽象模塊的每個步驟將細化為多個細則。下面進行詳細的介紹。3a).原始數(shù)據(jù)清理由于原始API序列中存在一些無效、冗余的API函數(shù)調(diào)用記錄,為了防止這些記錄對后面的行為抽象步驟產(chǎn)生影響,在該步驟中對原始API序列技術(shù)文件進行清理。需要被清理的API函數(shù)包含以下幾類。<i>. API調(diào)用名及調(diào)用參數(shù)完全相同的的連續(xù)N個API調(diào)用,僅保留第一個,清除后N-I個API調(diào)用。連續(xù)N次以同樣的參數(shù)調(diào)用同一個API函數(shù),并不能表現(xiàn)出更多的行為,反而會給后續(xù)的行為抽象過程造成額外的計算負擔(dān)。<ii>.無效的句柄參數(shù)
在原始數(shù)據(jù)清理邏輯中,維護了全局的句柄信息表,任何有效函數(shù)的傳入句柄都應(yīng)該是之前的函數(shù)傳出的句柄參數(shù)或者返回值。如果發(fā)現(xiàn)某函數(shù)使用了未出現(xiàn)在全局句柄信息表中的句柄作為傳入?yún)?shù),那么可以認為該函數(shù)調(diào)用無效。使用了無效句柄值。某些句柄值表示的是無效句柄,對這些句柄的使用是沒有意義的,所以認為該函數(shù)調(diào)用無效。3b).行為抽象該步驟是整個行為抽象流程的核心,首先從數(shù)據(jù)庫中讀取預(yù)定義的行為抽象規(guī)則,之后按照這些抽象規(guī)則,對清理后的API序列記錄文件進行解析,獲取樣本的行為信息。由于捕獲的API調(diào)用記錄以文本文件的形式存儲,所以行為抽象的過程是對該文本文件的讀取和解析過程。打開API序列記錄文件后,針對文件中所有API調(diào)用函數(shù)記錄進行逐一分析,對于每一個捕獲的API函數(shù),有如下幾種可能出現(xiàn)的情況<i>.該函數(shù)與行為抽象無關(guān)。即該函數(shù)不是關(guān)鍵函數(shù),這種情況下,該函數(shù)通常是一些不會對系統(tǒng)關(guān)鍵部分進行任何操作的,例如Sleep、GetSystemTime等。這類函數(shù)可以直接跳過。<ii>.該函數(shù)可以形成輔助行為。如果該函數(shù)是關(guān)鍵函數(shù)并且可以形成輔助行為,這種情況下,需要獲取該函數(shù)的參數(shù)并進行處理,例如字符串轉(zhuǎn)換和合成等,然后將形成的輔助行為暫存入數(shù)據(jù)庫。該函數(shù)可以形成抽象行為。如果該函數(shù)是關(guān)鍵函數(shù)并且可以形成抽象行為,這種情況下,需要獲取該函數(shù)的參數(shù)并進行處理,例如字符串轉(zhuǎn)換和合成等,然后將形成的抽象行為存入數(shù)據(jù)庫。在整個文件分析完成后,這些抽象行為將按照預(yù)定的擴展規(guī)則擴展為決策向量。3c).行為存儲為了便于后續(xù)分類算法的處理,行為抽象過程中得出的數(shù)據(jù),包括抽象行為和決策向量將被存儲到數(shù)據(jù)庫中,同時在樣本分析的過程中,針對實際樣本的情況可能會對行為抽象的規(guī)則進行一定程度的改動,以適應(yīng)具體樣本類別的特點。步驟4,經(jīng)過行為抽象后,將得到樣本的行為信息并被存儲在數(shù)據(jù)庫中,隨著訓(xùn)練樣本的增多,數(shù)據(jù)庫中將存儲大量的樣本行為信息。為了判斷用戶提交的分析文件是否是惡意程序,或者屬于哪一種惡意程序,必須首先建立起分類模型。本系統(tǒng)采用集成學(xué)習(xí)思想利用訓(xùn)練樣本的行為信息建立分類模型,通過訓(xùn)練多個子分類器對同一個樣本分類結(jié)果進行投票表決,以提高在多分類情況下的分類精度。集成學(xué)習(xí)算法分為兩個關(guān)鍵環(huán)節(jié)子分類器生成和分類器集成。從算法處理數(shù)據(jù)的特點看,沙盒行為監(jiān)控和靜態(tài)分析采集到的數(shù)據(jù)有API序列、文件靜態(tài)特征、網(wǎng)絡(luò)數(shù)據(jù)包等。這些數(shù)據(jù)來自于不同的數(shù)據(jù)源,是離散型非數(shù)值數(shù)據(jù);從檢測任務(wù)要求看,要求分類算法能夠處理多分類問題而不是簡單的二分類。綜合以上要求,系統(tǒng)選擇經(jīng)典決策樹C4. 5算法作為子分類器算法。系統(tǒng)使用決策樹算法作為子分類器算法,AdaBoost算法作為集成算法,對惡意程序檢測與分類結(jié)果進行增強。步驟5,輸出惡意程序行為報告、檢測和分類的結(jié)果。應(yīng)當理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換,而所有這些改進和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。
權(quán)利要求
1.一種惡意程序行為自動化分析、檢測與分類系統(tǒng),其特征在于,包括如下模塊(1).靜態(tài)分析模塊在對樣本文件進行沙盒動態(tài)分析之前,可以對可執(zhí)行文件的結(jié)構(gòu)進行靜態(tài)分析,以得到盡可能多的與樣本相關(guān)的信息,由這些信息得到樣本文件的靜態(tài)分析報告,和之后的各種報告成為行為抽象模塊最原始的數(shù)據(jù)來源;(2).沙盒調(diào)度管理模塊沙盒調(diào)度管理模塊管理每個沙盒、協(xié)調(diào)樣本和數(shù)據(jù)的傳輸、控制樣本自動化分析的流程;沙盒調(diào)度管理模塊控制每一個沙盒的啟動和退出,實現(xiàn)與每一個沙盒的信息交換與文件傳輸,控制樣本的執(zhí)行和主機環(huán)境模擬;(3).沙盒監(jiān)控模塊沙盒監(jiān)控模塊以捕獲特定進程發(fā)起的API調(diào)用及其參數(shù)為主要目標,同時提取該進程加載模塊和操作系統(tǒng)為其維護的相關(guān)內(nèi)核數(shù)據(jù)。本發(fā)明使用開源模擬器Qemu作為基礎(chǔ)的虛擬機軟件,并且對其CPU模擬中的指令解釋執(zhí)行部分核心代碼進行修改,實現(xiàn)監(jiān)控特定進程主機行為的目的。這種基于指令集仿真環(huán)境的行為監(jiān)測技術(shù)可以從指令級開始自下而上實現(xiàn)系統(tǒng)調(diào)用、進程等內(nèi)核模塊重構(gòu)來獲取惡意程序動態(tài)執(zhí)行中的行為,并且宿主機與惡意程序執(zhí)行的沙盒環(huán)境相隔離,在很大程度上避免了惡意程序在執(zhí)行過程中對宿主機的影響;(4).行為抽象模塊在沙盒監(jiān)控模塊完成對惡意程序的執(zhí)行和API的捕獲之后,可以獲得該樣本程序運行期間使用的API函數(shù)及其參數(shù)的報告;但是該API報告直接用于惡意程序分類,存在一些障礙,所以需要從API序列中抽象得到樣本表現(xiàn)的行為;(5).檢測與分類模塊惡意程序檢測任務(wù)是一個標準的多分類任務(wù)。為了判斷用戶提交的分析文件是否是惡意程序,若是需進一步判斷屬于哪一種惡意程序,必須首先建立起分類模型;采用集成學(xué)習(xí)的思想建立分類模型,集成學(xué)習(xí)的思想使用不同的策略將一個大問題劃分為若干的小問題分別求解,或是生成多個學(xué)習(xí)器解決同一問題,接著通過集成策略將不同子分類器的輸出結(jié)果合成,得到單一的最終輸出結(jié)果。
2.根據(jù)權(quán)利要求I所述的惡意程序行為自動化分析、檢測與分類系統(tǒng),其特征在于沙盒監(jiān)控模塊包括作為惡意程序虛擬執(zhí)行環(huán)境的Guest OS單元;改造過的全系統(tǒng)模擬器Qemu監(jiān)控器單元;GueSt OS單元包括了網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控、快照對比、主機事件模擬等功能,Qemu監(jiān)控器單元包括了進程識別與多進程監(jiān)控、API監(jiān)控、API依賴關(guān)系分析與冗余數(shù)據(jù)過濾功能。
3.根據(jù)權(quán)利要求2所述的惡意程序行為自動化分析、檢測與分類系統(tǒng),其特征在于Guest OS單元是運行惡意程序樣本的環(huán)境,選擇Windows XP操作系統(tǒng)作為GuestOS ;GuestOS單元與宿主機之間通過虛擬網(wǎng)絡(luò)連接,由沙盒調(diào)度管理模塊負責(zé)交互。
4.根據(jù)權(quán)利要求2所述的惡意程序行為自動化分析、檢測與分類系統(tǒng),其特征在于沙盒監(jiān)控模塊的Qemu監(jiān)控器單元比Guest OS單元有著更高特權(quán)等級,用于監(jiān)控目標程序的行為;QemU監(jiān)控器單元使用開源模擬器Qemu作為基礎(chǔ)的虛擬機軟件,但是對其CPU模擬中的指令解釋執(zhí)行部分核心代碼進行修改,實現(xiàn)監(jiān)控特定進程主機行為的目的。
5.根據(jù)權(quán)利要求4所述的惡意程序行為自動化分析、檢測與分類系統(tǒng),其特征在于所述的Qemu監(jiān)控器單元進行進程識別的方法是沙盒監(jiān)控模塊在每一個翻譯塊開始執(zhí)行前,利用虛擬內(nèi)存讀寫函數(shù),以內(nèi)核數(shù)據(jù)結(jié)構(gòu)KPCR為線索,找到系統(tǒng)中當前正在執(zhí)行進程的EPR0CESS結(jié)構(gòu)體起始地址;接著,通過EPR0CESS結(jié)構(gòu)中保存的進程名判斷當前正在執(zhí)行進程是否是目標進程,若是則從中讀取操作系統(tǒng)分配給該進程的頁目錄基址值;之后,將該值與虛擬CR3寄存器中存儲的值做比較,判斷監(jiān)控進程是否正在執(zhí)行;僅在目標進程執(zhí)行時進行行為數(shù)據(jù)采集。
6.根據(jù)權(quán)利要求1-5任一所述的惡意程序行為自動化分析、檢測與分類系統(tǒng),其特征在于所述沙盒監(jiān)控模塊使用“三步法”來解決這一問題;具體過程如下讀取之前首先測試是否存在缺頁現(xiàn)象,若出現(xiàn)缺頁,等待該頁被調(diào)入虛擬內(nèi)存,若等待不成功,由分析程序強行讀取該地址空間中的數(shù)據(jù),觸發(fā)客戶操作系統(tǒng)缺頁異常處理例程,將所缺頁調(diào)入虛擬內(nèi)存,接著嘗試再次讀取數(shù)據(jù);為了提高執(zhí)行效率,在沙盒監(jiān)控模塊中,并非所有虛擬內(nèi)存讀寫都使用“三步法”,而是僅在最有可能發(fā)生缺頁時,執(zhí)行以上缺頁異常避免策略;WindowS系統(tǒng)中,直接從棧中讀取的數(shù)據(jù)不會引起缺頁,字符串和結(jié)構(gòu)體參數(shù)通常情況下數(shù)據(jù)量小也不會引發(fā)缺頁,均不需要進行缺頁測試;只有在涉及I/O過程或是大緩沖區(qū)讀寫時,才有可能出現(xiàn)缺頁異常。
7.根據(jù)權(quán)利要求4所述的惡意程序行為自動化分析、檢測與分類系統(tǒng),其特征在于Qemu監(jiān)控器單元中的多進程監(jiān)控功能用于監(jiān)控主進程創(chuàng)建的子進程和進程注入中被注入進程的行為;本系統(tǒng)進行多進程監(jiān)控的方法是第一步,獲取需要監(jiān)控進程的進程名,在操作系統(tǒng)初始化進程時,以進程名為線索,找到操作系統(tǒng)分配給該進程的頁目錄基址的值。對于創(chuàng)建子進程這一行為,可通過監(jiān)控NtCreateProcess這一內(nèi)核API來實現(xiàn)。改造NtCreateProcess對應(yīng)的前端回調(diào)函數(shù),從調(diào)用參數(shù)中抽取出被創(chuàng)建進程的進程名,通過上文介紹的運行時內(nèi)存分析方法,找到該進程頁目錄基址的值,傳遞給API調(diào)用管理框架,以實現(xiàn)子進程監(jiān)控的擴充。第二步,Qemu監(jiān)控器單元中的進程識別功能維護一個敏感頁目錄基址值列表,在每一個翻譯塊執(zhí)行前,與虛擬CR3寄存器中存儲的值做比較,當虛擬CR3寄存器切換到任一個敏感頁目錄基址值時,Qemu監(jiān)控器單元中的API監(jiān)控功能開始工作。
8.根據(jù)權(quán)利要求7所述的惡意程序行為自動化分析、檢測與分類系統(tǒng),其特征在于本系統(tǒng)進行進程注入行為監(jiān)控的方法是第一步,識別進程注入行為進程注入實現(xiàn)時通常從進程枚舉開始,由于每一個被枚舉進程都是一個潛在的被注入進程,Qemu監(jiān)控器單元中的進程識別功能維護一個全局進程注入事件模板,當監(jiān)控到EnumProcess、Process32First和Process32Next等用于進程枚舉的API被調(diào)用時,為每一個被找到進程填寫一個進程注入事件模板,記錄進程名、進程ID、進程句柄等信息;實現(xiàn)進程注入的核心API包括0penProcess、VirtualAllocEx>WriteProcessMemory ;修改與這些API對應(yīng)的前端回調(diào)函數(shù),當這些API被調(diào)用時,通過調(diào)用參數(shù)索引相應(yīng)的進程注入事件模板,更新模板,直到WriteProcessMemory成功調(diào)用,標志著進程注入事件的發(fā)生;第二步,提取被注入進程的進程名從模板中讀取被注入進程名,找到該進程的頁目錄基址,再傳遞給進程識別功能,便成功添加被注入進程為監(jiān)控目標;隨后API調(diào)用管理框架會自動分析被注入進程發(fā)起的行為。
9.一種惡意程序行為自動化分析、檢測與分類方法,其特征在于,步驟如下步驟(I),靜態(tài)分析模塊首先對可執(zhí)行樣本文件的結(jié)構(gòu)進行靜態(tài)分析,獲得可執(zhí)行樣本文件的靜態(tài)信息;步驟(2),靜態(tài)分析完成以后,樣本文件將進入動態(tài)分析自動化過程樣本文件的動態(tài)分析過程將由沙盒調(diào)度管理模塊自動化管理,沙盒調(diào)度管理模塊啟動沙盒、將樣本文件上傳至Guest OS單元,在Guest OS單元運行樣本,沙盒監(jiān)控模塊監(jiān)控樣本的執(zhí)行或加載,產(chǎn)生樣本文件的API序列的報告,網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控程序Guest OS單元產(chǎn)生的網(wǎng)絡(luò)數(shù)據(jù)包,產(chǎn)生樣本文件的網(wǎng)絡(luò)數(shù)據(jù)包報告;樣本執(zhí)行正常結(jié)束或超時結(jié)束后,如果是非EXE樣本文件,將進行注冊表及文件系統(tǒng)的快照對比,產(chǎn)生注冊表、文件快照對比報告,所述報告將與樣本執(zhí)行過程中生成的文件一起傳輸給沙盒調(diào)度管理模塊,所述報告將是對一個惡意程序樣本進行行為抽象的原始數(shù)據(jù);步驟(3),在惡意程序樣本動態(tài)分析結(jié)束之后,將會獲得一系列的報告,所述報告將由行為抽象模塊進行處理,得到樣本行為;步驟(4),經(jīng)過行為抽象后,將得到樣本的行為信息并被存儲在數(shù)據(jù)庫中,隨著訓(xùn)練樣本的增多,數(shù)據(jù)庫中將存儲大量的樣本行為信息;為了判斷用戶提交的分析文件是否是惡意程序,或者屬于哪一種惡意程序,必須首先建立起分類模型;采用集成學(xué)習(xí)思想利用訓(xùn)練樣本的行為信息建立分類模型,通過訓(xùn)練多個子分類器對同一個樣本分類結(jié)果進行投票表決,以提高在多分類情況下的分類精度;步驟(5),輸出惡意程序行為報告、檢測和分類的結(jié)果。
10.根據(jù)權(quán)利要求2所述的惡意程序行為自動化分析、檢測與分類方法,其特征在于行為抽象的主要步驟(1)原始數(shù)據(jù)清理;(2)行為抽象;(3)行為存儲;原始數(shù)據(jù)清理的API函數(shù)包括以下幾類(1)API調(diào)用名及調(diào)用參數(shù)完全相同的的連續(xù)N個API調(diào)用,僅保留第一個,清除后N-I個API調(diào)用;(2)如果發(fā)現(xiàn)某函數(shù)使用了未出現(xiàn)在全局句柄信息表中的句柄作為傳入?yún)?shù),那么可以認為該函數(shù)調(diào)用無效;(3)某些句柄值表示的是無效句柄,對這些句柄的使用是沒有意義的,所以認為該函數(shù)調(diào)用無效;行為抽象的過程是對文件中所有API調(diào)用記錄進行逐一分析的過程,對于每一個捕獲的API調(diào)用,有如下幾種可能出現(xiàn)的情況(1)該函數(shù)與行為抽象無關(guān)即該函數(shù)不是關(guān)鍵函數(shù),這種情況下,該函數(shù)通常是一些不會對系統(tǒng)關(guān)鍵部分進行任何操作的,這類函數(shù)可以直接跳過;(2)該函數(shù)可以形成輔助行為如果該函數(shù)是關(guān)鍵函數(shù)并且可以形成輔助行為,這種情況下,需要獲取該函數(shù)的參數(shù)并進行處理,然后將形成的輔助行為暫存入數(shù)據(jù)庫;(3)該函數(shù)可以形成抽象行為如果該函數(shù)是關(guān)鍵函數(shù)并且可以形成抽象行為,這種情況下,需要獲取該函數(shù)的參數(shù)并進行處理,然后將形成的抽象行為存入數(shù)據(jù)庫;在整個文件分析完成后,這些抽象行為將按照預(yù)定的擴展規(guī)則擴展為決策向量。
全文摘要
本發(fā)明公開了一種惡意程序行為自動化分析、檢測與分類系統(tǒng)及方法。該系統(tǒng)包括靜態(tài)分析模塊、沙盒調(diào)度管理模塊、沙盒監(jiān)控模塊、行為抽象模塊和檢測與分類模塊。本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點第一,本發(fā)明基于指令集仿真環(huán)境的行為監(jiān)測技術(shù)。第二,本發(fā)明在沙盒中通過環(huán)境配置和修改服務(wù)器程序等手段構(gòu)建虛擬Internet,模擬普遍的網(wǎng)絡(luò)服務(wù),使得惡意程序發(fā)起的DNS解析、http訪問、文件下載、Email登錄、郵件發(fā)送等操作能夠成功執(zhí)行,誘騙惡意程序產(chǎn)生惡意網(wǎng)絡(luò)行為,同時確保這些網(wǎng)絡(luò)行為不會對宿主機和真實網(wǎng)絡(luò)造成破壞,克服了惡意程序動態(tài)行為分析中惡意程序網(wǎng)絡(luò)行為無法充分表現(xiàn)等缺點。
文檔編號G06F21/56GK102930210SQ201210408358
公開日2013年2月13日 申請日期2012年10月14日 優(yōu)先權(quán)日2012年10月14日
發(fā)明者鄒艷, 劉建港, 苗啟廣, 曹瑩, 謝國勝, 黃有成, 劉家辰, 鄭春陽 申請人:江蘇金陵科技集團公司