張福勇 齊德昱 胡鏡林
(華南理工大學(xué)計算機系統(tǒng)研究所,廣東廣州 510006)
Symantec公司在2009年4月發(fā)布的報告中稱惡意代碼的數(shù)量正急劇增加,2007年新增惡意代碼62.4萬個,2008年則上升至 165.6萬個[1].而Symantec公司在2010年1月的最新統(tǒng)計顯示,2009年10月至12月間Symantec公司就產(chǎn)生了921143個新的惡意代碼特征值[2].惡意代碼數(shù)量增加之快已使得傳統(tǒng)人工分析代碼的方法不能滿足需求,隨著多態(tài)病毒、變形病毒數(shù)量的急劇增加,傳統(tǒng)的提取特征碼法已經(jīng)無能為力.因此,更高效、更具魯棒性的運行時惡意代碼檢測方法被廣泛采用,通過分析代碼運行時產(chǎn)生的應(yīng)用程序接口(API)調(diào)用序列來區(qū)分正常和惡意代碼.但API調(diào)用序列可以被篡改以逃避檢測[3-5].Seifert等[6]詳細(xì)分析了Windows系統(tǒng)中 3種主要的程序行為監(jiān)控技術(shù),并指出內(nèi)核驅(qū)動技術(shù)是監(jiān)控程序運行時的行為的最佳方式.為此,筆者開發(fā)了一個基于內(nèi)核驅(qū)動技術(shù)的IRP(I/O請求包)捕獲工具M(jìn)BMAS[7],用于捕獲程序運行時創(chuàng)建的進(jìn)程及這些進(jìn)程的IRP信息.采用n-gram特征分析方法,將人工免疫系統(tǒng)中的否定選擇算法[8]和肯定選擇算法[9]相結(jié)合,篩選出僅在惡意代碼IRP序列中出現(xiàn)的n-gram作為檢測器,以實現(xiàn)對惡意代碼的有效檢測.
在運行時惡意代碼檢測方面,Forrest等[8]首次提出采用系統(tǒng)調(diào)用序列來區(qū)分正常和惡意Unix進(jìn)程.Hofmeyr等[10]采用短系統(tǒng)調(diào)用序列建立了Unix進(jìn)程的正常行為模型,通過Hamming距離來判斷一個系統(tǒng)調(diào)用序列是否異常.Wespi等[11]提出一種改進(jìn)的可變長系統(tǒng)調(diào)用序列檢測方法.Manzoor等[12]利用VX Heaven(http:∥vx.netlux.org/vl.php)上的部分Windows可執(zhí)行惡意代碼,采用API監(jiān)控器來捕獲其 API調(diào)用序列,最后采用樹突細(xì)胞算法(DCA)[13-14]進(jìn)行分類.隨后,Ahmed等[15]采用API調(diào)用序列和API參數(shù)相結(jié)合的方式進(jìn)行惡意代碼檢測.這些方法的一個主要缺陷是API調(diào)用序列可被篡改以逃避檢測.為此,文中提出基于IRP的惡意代碼檢測方法.
人工免疫系統(tǒng)(AIS)是受生物免疫系統(tǒng)(BIS)啟發(fā)而被提出的智能計算方法.AIS最重要的理論之一是模仿適應(yīng)性免疫系統(tǒng)而產(chǎn)生的自體/非自體理論.Forrest等[8]根據(jù)自體/非自體思想提出了否定選擇算法(NSA),用于惡意代碼的檢測.后來,出現(xiàn)了許多改進(jìn)算法,如實值 NSA[16]、隨機實值NSA[17]、檢測器大小可變的實值 NSA[18]等.Sim等[9]提出了與否定選擇算法作用相反的肯定選擇算法(PSA).文中將NSA和PSA相結(jié)合,精選出少量僅在惡意代碼中出現(xiàn)的 IRP序列,以實現(xiàn)惡意代碼的檢測.
否定選擇算法是對免疫細(xì)胞成熟過程的模擬,算法包括自體耐受和檢測兩個階段.首先大量候選檢測器經(jīng)過自體耐受去除與自體匹配的檢測器,成為成熟檢測器,然后采用成熟檢測器對非自體進(jìn)行檢測.算法描述如下:
肯定選擇算法采用與否定選擇算法相對的過程,與非自體匹配的候選檢測器將會被留下.算法描述如下:
筆者在文獻(xiàn)[7]中開發(fā)了一個基于內(nèi)核驅(qū)動技術(shù)的IRP捕獲工具M(jìn)BMAS.它可以捕獲程序運行時創(chuàng)建的進(jìn)程信息,以及每個進(jìn)程運行過程中的IRP請求信息.MBMAS可以將進(jìn)程及由此進(jìn)程創(chuàng)建的子進(jìn)程進(jìn)行關(guān)聯(lián),檢測中若發(fā)現(xiàn)其任意子進(jìn)程是惡意的,則認(rèn)為此進(jìn)程是惡意的,即認(rèn)為創(chuàng)建進(jìn)程的代碼為惡意代碼.圖1是IRP請求捕獲工具的用戶態(tài)界面,關(guān)于MBMAS的詳細(xì)介紹請參見文獻(xiàn)[7].
圖1 MBMAS的用戶態(tài)界面Fig.1 Usermode interface of MBMAS
通過對捕獲的IRP進(jìn)行統(tǒng)計分析,發(fā)現(xiàn)共有30種不同類型的IRP.為了方便匹配,用ASCII字符0,1,2,…,M代表這 30種類型.定義抗原域為 U∈{0,1,2,…,M}l,l∈N,定義抗原Ag={x x=IRP序列對應(yīng)的字符序列,x∈U}.定義自體為正常代碼產(chǎn)生的IRP序列對應(yīng)的字符序列S?Ag,非自體為惡意代碼產(chǎn)生的IRP序列對應(yīng)的字符序列N?Ag,且滿足S∪N=Ag,S∩N=.
文中選用n-gram作為檢測器.匹配規(guī)則為通用字符串匹配算法,只要待檢測序列中存在與檢測器相同的n-gram即認(rèn)為匹配.
前期研究中發(fā)現(xiàn)采用4-gram作為檢測器可取得較好的檢測結(jié)果,因此文中采用4-gram檢測器進(jìn)行實驗.生成4-gram的全排列作為候選檢測器.文中采用兩種方法來測試檢測效果:僅采用否定選擇算法過濾掉與自體匹配的檢測器,剩下的作為成熟檢測器進(jìn)行檢測;先采用否定選擇算法過濾掉與自體匹配的檢測器,再采用肯定選擇算法篩選出與非自體匹配的檢測器,最終得到的檢測器為僅在非自體中出現(xiàn)的序列.圖2給出了4-gram數(shù)量與IRP數(shù)量的關(guān)系.
圖2 4-gram數(shù)量與IRP數(shù)量的關(guān)系Fig.2 Number of 4-gram s versus number of IRPs
文中收集了 600個惡意代碼和 300個正常Windows可執(zhí)行文件.600個惡意代碼中有300個是從VX Heaven下載的2003—2007年的惡意代碼(稱惡意代碼1),另外300個是在Internet上收集的2009年 1月至 2010年 3月間的新惡意代碼(稱惡意代碼2).所有惡意代碼均為Win32 PE格式.表1為實驗中所用到的可執(zhí)行文件的信息.
在一臺新安裝Windows XPSP2的VMware虛擬機中進(jìn)行IRP的捕獲,并且每運行完一個樣本即將虛擬機恢復(fù)到新安裝時的狀態(tài).每個樣本運行過程中創(chuàng)建的進(jìn)程及其子進(jìn)程產(chǎn)生的IRPs被看作是一個IRP序列.
文中實驗平臺為一臺安裝Windows 7的計算機,CPU為AMD Athlon(tm)64×2雙核處理器4200 2.20GHz,內(nèi)存為4GB.
表1 實驗數(shù)據(jù)信息Table 1 Information ofexperimental data
將3種類型的各300個文件分成 3組(分別標(biāo)號為group1、group2和group3,其中將group1和group2作為訓(xùn)練數(shù)據(jù),group3作為測試數(shù)據(jù)),每組包含100個正常文件、100個惡意代碼 1和 100個惡意代碼2.測試時,將group3分成兩組:正常文件+惡意代碼1、正常文件+惡意代碼2.
實驗1 生成4-gram的全排列作為候選檢測器,僅采用group1中的100個正常文件產(chǎn)生的IRP序列作為自體進(jìn)行耐受,耐受后得到的成熟檢測器數(shù)量為807698,采用group3作為測試數(shù)據(jù),正常文件+惡意代碼1、正常文件+惡意代碼 2的檢測率均為99%,誤檢率均為18%,說明自體耐受不充分.
實驗2 生成4-gram的全排列作為候選檢測器,采用group1和group2中的正常文件產(chǎn)生的IRP序列作為自體進(jìn)行耐受,耐受后得到的成熟檢測器數(shù)量為807368,采用group3作為測試數(shù)據(jù).
由于實驗 2中采用了更多的自體進(jìn)行耐受,故正常文件+惡意代碼 1、正常文件 +惡意代碼 2的誤檢率有所降低,均為9%;但對惡意代碼1的檢測率降到了96%,而對惡意代碼2的檢測率沒有明顯的下降,保持為99%.其原因可能是有些惡意代碼1比較陳舊,在Windows XP SP2上不能很好地運行,沒有對系統(tǒng)造成實際的破壞.
實驗3 使用實驗 1中得到的 807 698個成熟檢測器作為候選檢測器,采用肯定選擇算法篩選出與group1中200個惡意代碼產(chǎn)生的IRP序列匹配的檢測器391個,采用group3作為測試數(shù)據(jù).
實驗 3中通過精選的 391個檢測器就達(dá)到了與實驗 2中 807368個檢測器同樣的檢測率,而且誤檢率也有所降低,均為 6%.這說明在進(jìn)行惡意代碼檢測時并不需要生成大量的檢測器,因為絕大多數(shù)的序列是不可能出現(xiàn)的;只需通過精選的、少數(shù)僅在惡意代碼中出現(xiàn)的序列進(jìn)行檢測,即可達(dá)到同樣的檢測效果,而且在一定程度上還能減少誤檢率,更重要的是采用精選的少數(shù)檢測器的檢測效率高,無需每次都進(jìn)行指數(shù)時間的耐受過程.
實驗 4 將實驗 2中得到的 807368個成熟檢測器作為候選檢測器,采用肯定選擇算法篩選出與group1和group2中400個惡意代碼產(chǎn)生的IRP序列匹配的檢測器311個,采用group3作為測試數(shù)據(jù).
實驗 4中經(jīng)過更好的篩選,得到了 311個檢測器,其檢測率與實驗 3相同,達(dá)到 96%以上,更重要的是誤檢率均為 0.這是因為實驗 4在實驗 3的基礎(chǔ)上進(jìn)行了更多的自體耐受,絕大多數(shù)匹配自體序列已被清除,再經(jīng)過大量非自體的篩選,剩下的檢測器匹配自體的可能性就非常低.
從上述實驗可以看出,單獨采用否定選擇算法,雖然可以達(dá)到很高的檢測率,但誤檢率也較高.顯然,單獨采用肯定選擇算法也不能得到理想的結(jié)果,因為惡意代碼的 IRP序列中必然存在大量的正常n-gram序列(前期采用肯定選擇算法進(jìn)行測試,誤檢率高達(dá)100%).而實驗4中綜合采用否定選擇和肯定選擇算法來篩選得到的4-gram檢測器獲得了很好的檢測結(jié)果.
下面將文中提出的方法與全排列檢測器的NSA和DCA進(jìn)行比較.采用group1和group2作為訓(xùn)練數(shù)據(jù),group3作為測試數(shù)據(jù).DCA的參數(shù)設(shè)置參見文獻(xiàn)[12],實驗結(jié)果見表2.
表2 幾種方法的檢測結(jié)果比較Table 2 Comparison of detection resu lts of several algorithms %
從表2中可以看出,文中方法可以取得與NSA一樣的檢測率,但誤檢率遠(yuǎn)低于NSA.DCA對惡意代碼1的檢測率為97%,略高于NSA和文中方法;對惡意代碼2的檢測率則略低于NSA和文中方法.文中方法的誤檢率明顯低于NSA和DCA.3種方法的檢測時間見表3.
表3 幾種方法的檢測時間比較Table 3 Comparison of detection time of several algorithms s
從表 3中可知,文中方法因僅采用了少量的檢測器,故檢測效率很高;DCA在特征提取階段需要計算信息增益以產(chǎn)生信號值,花費時間稍多于文中方法;NSA因使用大量檢測器,故檢測效率很低.
自采用系統(tǒng)調(diào)用序列進(jìn)行異常檢測以來,人們投身到基于系統(tǒng)調(diào)用序列異常檢測的研究上,但隨著惡意代碼編寫者水平的提高,僅靠捕獲API調(diào)用已不能滿足惡意代碼的檢測要求.為此,文中提出了基于IRP的運行時惡意代碼檢測方法,因IRP請求捕獲工具運行在內(nèi)核態(tài),故文中方法可有效地檢測運行在內(nèi)核態(tài)的惡意代碼.
文中將否定選擇算法和肯定選擇算法相結(jié)合,篩選出極少量僅在惡意代碼IRP序列中出現(xiàn)的檢測器進(jìn)行檢測,不但克服了單一采用否定選擇算法檢測器數(shù)量大、檢測時間長的缺點,而且在以后的學(xué)習(xí)過程中,可以僅針對篩選出的少量檢測器進(jìn)行檢測,避免了否定選擇算法指數(shù)級的學(xué)習(xí)時間.實驗結(jié)果表明,文中方法可以有效地檢測惡意代碼,降低了誤檢率.
[1] Symantec Corporation.Internetsecurity threat report volume XIV[EB/OL].(2009-04-30)[2010-04-22].http:∥www.symantec.com/business/theme.jsp?themeid=threatreport.
[2] Symantec Corporation.Symantec intelligence quarterly, October-December 2009 reports[EB/OL].(2010-01-30)[2010-04-22].http:∥www.symantec.com/business/ theme.jsp?themeid=threatreport.
[3] Parampalli C,Sekar R,Johnson R.A practicalmim icry attack against powerful system-call monitors[C]∥Proceedings of ACM Symposium on Computer and Communications Security.Tokyo:ACM,2008:156-167.
[4] Wagner D,Soto P.Mimicry attacks on host-based intrusion detection systems[C]∥Proceedings of the 9th ACM Con ference on Computer and Communications Security. Washington D C:ACM,2002:255-264.
[5] Oberheide J.Detecting and evading CWSandbox[EB/OL]. (2008-01-15)[2010-04-22].http:∥jon.obe-rheide.org/ blog/2008/01/15/detecting-and-evading-cwsandbox/.
[6] Seifert C,Steenson R,Welch I,et al.Capture—a behavioral analysis tool for applications and documents[J]. Digital Investigation,2007,4(Suppl1):S23-S30.
[7] Zhang Fu-yong,Qi De-yu,Hu Jing-lin.MBMAS:a system for malware behavior monitor and analysis[C]∥Proceedings of International Symposium on Computer Network and Multimedia Technology.Wuhan:IEEE,2009: 1-4.
[8] Forrest S,Hofmeyr S A,Somayaji A,et al.A sense of self for Unix processes[C]∥Proceedings of IEEE Symposium on Security and Privacy.Oakland:IEEE,1996:120-128.
[9] Sim Kwee-bo,Lee Dong-wook.Modeling ofpositive selection for the development of a computer immune system and a self-recognition algorithm[J].International Journal of Control,Automation,and Systems,2003,1(4):453-458.
[10] Hofmeyr S A,Forrest S,Somayaji A.Intrusion detection using sequences of system calls[J].Journal of Computer Security,1998,6(3):151-180.
[11] Wespi A,Dacier M,Debar H.Intrusion detection using variable-length audit trail patterns[C]∥Proceedings of the Third International Workshop on Recent Advances in Intrusion Detection.Berlin/Heidelberg:Sp ringer-Verlag, 2000:110-129.
[12] Manzoor S,Shafiq M Z,Tabish S M,et al.A sense of‘danger'for windows processes[C]∥Proceedings of the 8th International Conference on Artificial Immune Systems.Berlin/Heidelberg:Springer-Verlag,2009:220-233.
[13] Greensmith J,Aickelin U,Cayzer S.Introducing dend ritic cells as a novel immune-inspired algorithm for anomaly detection[C]∥Proceedings of the 4th International Con ference on Artificial Immune Systems.Berlin/Heidelberg:Springer-Verlag,2005:153-167.
[14] Greensmith J,Aickelin U.The determ inistic dend ritic cell algorithm[C]∥Proceedings of the 7th International Conference on Artificial Immune Systems.Berlin/Heidelberg:Springer-Verlag,2008:291-303.
[15] Ahmed F,Hameed H,Shafiq M Z,et al.Using spatiotemporal in formation in API calls with machine learning algorithms for malware detection[C]∥Proceedings of the 2nd ACM Workshop on Security and Artificial Intelligence.Chicago:ACM,2009:55-62.
[16] Gonzalez F,Dasgupta D.Anomaly detection using realvalued negative selection[J].Journal of Genetic Programming and Evolvable Machines,2003,4(4):383-403.
[17] Gonzalez F,Dasgupta D,Nino L F.A randomized realvalued negative selection algorithm[C]∥Proceedings of the 2nd International Conference on Artificial Immune Systems.Berlin/Heidelberg:Sp ringer-Verlag,2003:261-272.
[18] Ji Z,Dasgupta D.Real-valued negative selection algorithm with variable-sized detectors[C]∥Proceedings of Genetic and Evolutionary Computation Conference.Berlin/ Heidelberg:Springer-Verlag,2004:287-298.
華南理工大學(xué)學(xué)報(自然科學(xué)版)2011年2期