孫志峰+++趙文濤+++游超+++董彬
【 摘 要 】 惡意代碼行為捕獲是進行惡意代碼行為分析,提高防御惡意代碼能力的基礎。當前,隨著惡意代碼技術的發展,惡意代碼結構及其通信活動日益復雜,使得傳統的惡意代碼行為捕獲技術難以有效應對惡意代碼的攻擊與破壞。如何更加有效地捕獲惡意代碼行為成了目前信息安全領域的研究熱點。基于此目的,本文在充分利用Agent的自主性和適應性,實時采集目標系統的狀態信息的基礎上,提出了一種基于多Agent的惡意代碼行為捕獲方案,分析了其行為捕獲流程,介紹了功能模塊組成,并基于Windows平臺實現了該方案,為下一步針對惡意代碼分析及防御提供了良好的基礎。
【 關鍵詞 】 惡意代碼;多智能體;行為捕獲;行為知識庫
【 中圖分類號 】 TP393.08 【 文獻標識碼 】 A
1 引言
現有行為捕獲系統往往采用多種手段來捕獲惡意代碼行為。例如Windows上的文件讀寫類系統調用可以直接使用API HOOK來捕獲,也可以通過文件系統驅動來捕獲。不管行為捕獲系統怎樣實現,最終表現形式都是如實地詳細記錄惡意代碼的主要調用行為。同時行為檢測技術已是網絡安全領域的重要研究對象,成為了網絡研究體系中不可或缺的一部分。
目前已有一些基于主機或基于網絡的行為捕獲技術,并通過仿真實驗及實際應用中證實了其有效性。現階段應用比較廣泛的行為捕獲工具都是由國外研究機構所開發,如Nepenthes、ManTrsq、KFSensor、honeyd、DTK、Process Monitor、pymon.py、Ether等,其中具有代表性的為Nepenthes、Process monitor、 Ether三款工具。
Nepenthes由德國人Markus Koetter和Paul Baecher等人所開發。此工具設計的基本思想是借助對存有漏洞的網絡服務進行模擬,通過建立一個低交互式的蜜罐,使正在網絡中傳播的惡意代碼與之產生交互,利用兩者之間的交互進一步分析掌握惡意代碼的詳細信息,包括感染源位置等。以此實現對惡意代碼的自動化捕獲與收集工作。Nepenthes工具的不足是無法捕獲對未知漏洞進行攻擊的惡意代碼;一旦有新的漏洞,就需要對其進行模擬,極大地增加了工作量;同樣,其對惡意代碼類型及數量的捕獲與收集也受限于對網絡服務已知漏洞模擬的數量與質量。
Process Monitor(進程監視器)是一個Windows下的高級監視工具,可以實時顯示文件系統、注冊表和進程/線程的活動。它將Sysinternals以前的兩個實用程序Filemon(文件監視器)和Regmon(注冊表監視器)結合在一起,并且添加了大量的改進功能,包括豐富的非破壞性的過濾器,全面的事件屬性,如會話ID和用戶名,可靠的進程信息,對每個操作帶有集成的調試符號支持的完整線程堆棧,同步記錄日志文件等等。Process Monitor獨特的強大功能將使它成為用戶在系統故障排除和惡意軟件查殺中使用的核心實用程序。
Ether惡意軟件分析工具通過硬件虛擬化擴展,提出了基于硬件虛擬化的惡意代碼分析框架。Ether通過Xen虛擬機能夠獲得比客戶操作系統更加高的系統權限,使其能夠監測到所有執行的指令、存儲器寫入、操作系統運行環境、系統調用、甚至能夠限制指定進程對系統屬性的訪問。當客戶端代碼執行時,通過設置CPU trap陷阱標志可以監控指令的執行,導致每條機器指令執行后的調試異常。然而,Ether能夠記錄并追蹤客戶操作系統執行的每條機器指令和被監控的進程。通過這些調試信息和監控信息,分析人員能夠更好地甄別惡意代碼。
上述惡意代碼捕獲技術大多是針對單一數據源的,無法全面獲取監測對象的信息,從而導致行為檢測的漏報率和誤報率較高。一般來說,此類行為捕獲系統的行為捕獲模塊往往作為一個組件存在,只負責記錄惡意代碼行為,缺少自主分析判斷能力,導致捕獲的行為數據存在較大的噪音,為后期處理行為數據和提取惡意代碼行為特征增加了難度。針對該問題,本文提出了一種基于多Agent的惡意代碼捕獲方案,該方案采用Agent的形式來實現惡意代碼行為捕獲模塊,賦予其一定的自主決策能力,通過多Agent協同來去除部分行為噪聲數據,從而提高惡意代碼行為捕獲效率。
2 行為捕獲原型系統體系結構
本文提出的多Agent惡意代碼行為捕獲方案,其基本思想是:在惡意代碼行為捕獲系統主機上部署采集Agent和管理Agent,其中采集Agent主要用于捕獲惡意代碼行為數據,管理Agent主要用于協調各個采集Agent工作,收集并處理捕獲的行為數據。通過采集Agent來感知系統中注冊表操作、文件操作、部署調用工具、連接指定站點、隱藏活動界面、操作其它進程、瀏覽器劫持以及惡意收集信息等行為,并通過管理Agent構建的惡意代碼多維行為庫及可疑樣本行為矩陣進行相似度匹配,從而為進一步甄別和捕獲惡意代碼行為提供了具體數據。如圖1所示。
行為捕獲的過程需要調用眾多系統模塊的參與,包括基于多Agent的信息采集模塊,基于規則匹配的發現模塊。行為捕獲按階段分為四個部分,包括采集階段、發現階段、處理階段和捕獲階段,其工作流程如圖2所示。
(1) 采集階段。采集階段的主體是基于多Agent系統的采集Agent,實時采集CPU、內存、網絡流量、端口、注冊表以及進程的變化信息,并將結果實時反饋給管理Agent,由其處理模塊進行整理、分析。
(2)發現階段。發現階段要借助于管理Agent的信息處理模塊,將樣本的行為構建行為矩陣,計算其行為相似度,并與規則庫中已知惡意行為進行匹配對比,篩查惡意行為。
(3)處理階段。處理階段同樣要借助于管理Agent的信息處理模塊,信息處理模塊鎖定惡意行為,并將采集階段上報的此惡意行為的行為信息抽出、鎖定,將結果進行反饋。endprint
(4)捕獲階段。捕獲階段是對處理階段反饋的行為進行捕獲而實施的各種操作,包括調用程序進行記錄(比如系統日志、網絡流量流向和內容、CPU和內存等系統資源的變化情況、端口開放情況、注冊表修改記錄、進程開啟和關閉情況等),對以上記錄數據情況的分析,按照多維特征描述法對其進行描述,將之充實到行為特征庫。
3 模塊功能介紹
系統按實現方式可劃分為信息采集子系統、行為匹配子系統、行為捕獲子系統以及數據庫子系統。信息采集功能由采集Agent完成,行為匹配及捕獲功能由管理Agent完成。如圖3所示。
3.1 信息采集子系統
信息采集子系統的核心是系統行為的監控,采集多Agent的惡意代碼行為捕獲技術。
信息采集子系統是本系統的基礎模塊,為行為捕獲提供數據來源,并保證數據的真實性和實時性。系統監控子系統由多個采集監控Agent組成,有管理Agent統一負責初始化和操作控制,下設CPU信息采集模塊、文件信息采集模塊、進程信息采集模塊、網絡信息采集模塊、注冊表信息采集模塊以及內存信息采集模塊,分別對應并實現相應的采集Agent功能。這些功能模塊將收集的信息實時反饋給行為匹配子系統中的數據分析模塊,由其區別并鎖定其中的異常狀態信息,并將結果反饋給行為捕獲子系統。
3.2 匹配推理子系統
匹配推理子系統是整個系統的關鍵,負責對信息采集子系統返回的信息進行處理,從中發現惡意行為。
匹配推理子系統有:行為提取模塊、相似度計算模塊、規則匹配模塊及數據分析模塊。其中行為提取模塊基于IDA工具提取檢測樣本的行為并構建樣本行為矩陣;相似度計算模塊計算矩陣相似度;規則匹配模塊負責將樣本相似度與數據庫中惡意代碼的相似度進行匹配對比,確定可疑行為;數據分析模塊負責確定的惡定行為信息進行篩選,將結果反饋至行為捕獲子系統。
3.3 行為捕獲子系統
行為捕獲子系統是整個系統的實現核心,負責接收匹配推理子系統確定的惡意行為并進行捕獲。包括捕獲記錄模塊和分析模塊。捕獲記錄模塊負責對某一待捕獲的行為進行記錄,包括其運行時間段,產生的系統資源變化等;分析模塊是針對某一行為進行的后期分析,進一步確定其是否為惡意行為。
行為捕獲子系統捕獲惡意行為后,如果是因為匹配而斷定是惡意行為的,將該代碼及行為特征記錄入數據庫;如果是因為預測或者外界專家干預而斷定為惡意行為的,則還需要更新惡意代碼行為特征庫。
3.4 數據庫子系統
數據庫子系統是系統的數據存儲中轉中心,負責存儲各種數據,包括已知的惡意代碼特征和匹配規則,實時的系統狀態監控信息,系統運行日志,匹配分析過程中產生的結果等。
4 系統實現
4.1 實現平臺
本平臺采用Windows XP操作系統,結合了 Microsoft Jet Database Engine 和 Microsoft SQL Server數據庫,使用基于Visual studio 2008平臺的C++語言開發環境。在某局域網中選定三臺計算機來搭建實驗環境:一臺FTP服務器A(安裝配置采集Agent,監控其CPU和內存狀況)、第二臺為隨機選取網絡客戶機B(安裝配置采集Agent,監控其網絡流量數據)、第三臺為安裝管理Agent客戶機C。如圖4所示。
4.2 類圖分析
系統基于面向對象編程實現,由多個類構成,如圖5所示,不同的子系統或者功能模塊由不同的類來實現,類中封裝其需要的數據以及操作的函數。
(1)Main類。Main類是主界面類,構成系統的主界面,同時啟動其他子系統類,包括SystemSupervise類(系統監控子系統),MatchDeduce類(匹配推理子系統),CaptureAnalyze類(捕獲分析子系統)以及DataBaseManage類(數據庫管理子系統)。
(2)SystemSupervise類。SystemSupervise類是監控子系統類,負責系統狀態的監控,分別由CPU、Ram、Net、Port、Regdit、Document、Process這七個類完成7個監控任務,類圖如圖6所示。
其中,SystemSupervise類完成監控中心的功能,包括初始化、更新和結束監控。其余類完成監控任務,分別對CPU、內存、網絡流量、端口、注冊表、文件、進程進行監控和處理。
(3)MatchDeduce類。MatchDeduce類是匹配推理子系統的實現類,完成匹配和推理兩大任務。主要的操作對象是數據集(DataSet)。在規則匹配中,主要完成的工作包括規則選取、規則匹配;在推理中,首先要對得到的數據集進行數據挖掘,從中得出有用信息,在此基礎上進行推理分析。
(4)CaptureAnalyze類。CaptureAnalyze類是捕獲分析子系統的實現類,完成捕獲和分析兩大任務,將運行結果實時記錄到系統日志中。實施捕獲時,需要初始化行為捕獲相關程序、插件、打開記錄文件等;分析過程需要系統的實時記錄,包括產生的中間數據和最終結果。
(5)DatabaseManage類。DatabaseManage類是數據庫子系統的實現類,完成針對數據庫系統的操作和管理任務。操作對象是多源數據庫中的多張表,完成的功能包括數據的插入、刪除、更新、查找等。
4.3 數據庫建立
數據庫子系統主要包括系統調用序列文件數據庫、惡意代碼多維特征描述數據庫、惡意代碼行為數據庫、系統環境描述數據庫、替換操作數據庫等五個部分。如圖7所示。
(1)系統函數調用序列。使用IDA軟件分析得到函數調用圖,通過IDA插件編程得到系統函數調用序列。如表1所示。endprint
(2)惡意代碼多維特征描述表。惡意代碼多維特征描述主要包含惡意代碼編號、惡意代碼名稱,各個系統調用發生時的時間、所依賴的系統調用、依賴的類型(數據依賴、控制依賴)、產生的下一個系統調用的名稱等信息。如表2所示。
(3)等價替換操作表。為了規避惡意代碼靜態分析的檢測,很多軟件使用等價替換操作,如將文件映射到內存中再讀取內存數據的方式和直接讀取文件數據的操作就是一種等價替換。通過建立更新等價替換庫,能有效降低系統調用序列匹配的干擾。
等價替換操作庫主要是依據系統調用類別來區分。如文件操作中的讀文件 “CreateFile→ReadFile”和“CreateFile→CreateFileMapping→MapViewOfFile”
4 惡意代碼行為描述表
刻畫某一時刻惡意代碼具體行為,包含CPU使用率的變化,內存占用率的變化,網絡流量的變化,開放端口的變化,注冊表變化、進程變化等。
(5)系統環境變化表??坍嫄阂獯a行為導致的系統環境變化,具體包含當前CPU的使用率、內存的占用率、網絡流量、開放的端口、注冊表信息以及啟動的進程等。
4.4 系統實現
如圖8所示為系統的啟動界面,此界面下可直接啟動三個相關聯的子系統,分別是系統監控子系統、匹配推理子系統、以及捕獲分析子系統。
信息監控子系統運行如圖9所示。通過此界面可以設置查詢間隔,選擇采集Agent進行狀態查看。信息顯示窗口可以顯示目前系統的運行信息,以及手動的查詢結果。左下角的“動態變化指標”欄,可直觀顯示當前CPU、內存以及網絡流量的使用情況。
捕獲分析子系統如圖10所示。通過此界面可以設置捕獲過程的參數。通過信息窗口動態展示系統的運行情況和狀態信息。
5 結束語
本文基于多Agent協同處理技術設計開發了惡意代碼行為捕獲原型系統,通過多維惡意代碼庫對被捕獲的目標行為進行了詳細的描述和記錄。實驗證明,該方案可以清楚地描述惡意代碼在CPU、內存和流量等方面的多種行為特征,為進一步分析和防范惡意行為提供數據支持,同時通過管理Agent動態建立及維護的惡意代碼庫,可以支持新型、變種和隱藏類惡意代碼的進一步檢測分析。該方案的設計與實現對于提高信息系統及網絡的惡意代碼防范能力具有較大的應用價值。
參考文獻
[1] Rieck K, Trinius P, Willems C, et al. Automatic analysis of malware behavior using machine learning[J]. Journal of Computer Security, 2011, 19(4): 639-668.
[2] Baecher P, Koetter M, Holz T, et al. The nepenthes platform: An efficient approach to collect malware[C]//Recent Advances in Intrusion Detection. Springer Berlin Heidelberg, 2006: 165-184.
[3] 方志鶴.惡意代碼分類的研究與實現[D].國防科學技術大學,2011.
[4] 曹瑩,劉家辰,苗啟廣等.AdaBoost 惡意程序行為檢測新算法[J].西安電子科技大學學報,2013, 40(6): 116-124.
[5] 燕發文,黃敏,王中飛.基于BF算法的網絡異常流量行為檢測[J].計算機工程,2013, 39(7): 165-168,172.
[6] 王新志, 孫樂昌, 張旻,等.基于序列模式發現的惡意行為檢測方法[J].計算機工程,2011, 37(24): 1-3.
[7] Ligh M, Adair S, Hartstein B, et al. Malware Analyst's Cookbook and DVD: Tools and Techniques for Fighting Malicious Code[M]. Wiley Publishing, 2010.
[8] 朱映映,吳錦鋒,明仲.基于網絡事件和深度協議分析的入侵檢測研究[J].通信學報,2011, 32(8): 171-178.
作者簡介:
孫志峰(1978-),男,河北冀州人,國防科大碩士在讀;主要研究方向和關注領域:網絡安全。
趙文濤(1973-),男,內蒙古涼城人,國防科大計算機學院,博士,現任國防科大計算機學院教研室主任,教授,碩士生導師;主要研究方向和關注領域:網絡安全。
游超(1984-),男,湖南寧鄉人,國防科大碩士在讀;主要研究方向和關注領域:網絡安全。
董彬(1992-),男,山西臨汾人,國防科大碩士在讀;主要研究方向和關注領域:網絡安全。endprint