來源:Yanfang Ye, Tao Li, Donald Adjeroh, and S. Sitharama Iyengar. 2017. A survey on malware detection using data mining techniques. ACM Comput. Surv. 50, 3, Article 41 (June 2017), 40 pages.
一、背景
隨著電腦和互聯(lián)網(wǎng)的普及,互聯(lián)網(wǎng)在日常生活中變得不可或缺。ITU(國際電信聯(lián)盟)報(bào)告稱,世界各地的互聯(lián)網(wǎng)用戶,如電子銀行、電子商務(wù)、即時(shí)通訊、教育和娛樂等互聯(lián)網(wǎng)服務(wù),2014年(2014年)已達(dá)到29.2億。就像物理世界一樣,有些人懷有惡意。(網(wǎng)絡(luò)罪犯)。他們?cè)噲D利用合法用戶,并從經(jīng)濟(jì)上獲利。惡意軟件(惡意軟件的簡稱)是一個(gè)通用術(shù)語,用來表示所有不同類型的不需要的軟件程序。這些程序包括病毒、蠕蟲、木馬、間諜軟件、機(jī)器人、rootkit、ransomware等等。惡意軟件已被網(wǎng)絡(luò)犯罪分子用作實(shí)現(xiàn)目標(biāo)的武器。特別是,惡意軟件已經(jīng)被用來發(fā)動(dòng)廣泛的安全攻擊,比如破壞計(jì)算機(jī),竊取機(jī)密信息,發(fā)送垃圾郵件,降低服務(wù)器性能,滲透網(wǎng)絡(luò),和癱瘓的關(guān)鍵基礎(chǔ)設(shè)施。這些攻擊通常會(huì)造成嚴(yán)重的損害和重大的財(cái)務(wù)損失。根據(jù)卡巴斯基實(shí)驗(yàn)室最近的一份報(bào)告,為了把這一觀點(diǎn)考慮在內(nèi),大約有10億美元是在全球金融機(jī)構(gòu)因惡意軟件攻擊(卡巴斯基2015年)而被盜的。此外,Kingsoft報(bào)告說,每天受感染電腦的平均數(shù)量在200- 500萬之間[Kingsoft 2016]。
許多惡意軟件的攻擊對(duì)互聯(lián)網(wǎng)用戶構(gòu)成了嚴(yán)重的安全威脅。為了保護(hù)合法用戶免受這些威脅,來自不同公司的反惡意軟件產(chǎn)品提供了針對(duì)惡意軟件的主要防御手段,如科摩多、卡巴斯基、金山和賽門鐵克。通常,基于簽名的方法在這些廣泛使用的惡意軟件檢測(cè)工具中使用,以識(shí)別各種威脅。簽名是一個(gè)簡短的字節(jié)序列,它通常是每個(gè)已知的惡意軟件特有的,允許新出現(xiàn)的文件以一個(gè)小的錯(cuò)誤率正確地識(shí)別出來[Ye et al. 2011]。然而,由于經(jīng)濟(jì)利益,惡意軟件的作者很快開發(fā)出了自動(dòng)化的惡意軟件開發(fā)工具包(例如,Zeus [Song et al. 2008])。這些工具包使用了一些技術(shù),如指令虛擬化、包裝、多態(tài)性、仿真和變質(zhì)(instruction virtualization, packing, polymor?phism, emulation, and metamorphism),以編寫和修改能夠逃避檢測(cè)的惡意代碼[Beaucamps和ric Filiol 2007;Filiol et al . 2007]。這些惡意軟件創(chuàng)建工具包大大降低了新手攻擊者進(jìn)入網(wǎng)絡(luò)犯罪世界的障礙(允許沒有經(jīng)驗(yàn)的攻擊者編寫和定制他們自己的惡意軟件樣本),并導(dǎo)致新的惡意軟件樣本的大量擴(kuò)散,這是由于他們的廣泛可用性。結(jié)果,惡意軟件樣本迅速流行,并在全世界范圍內(nèi)以前所未有的速度傳播和感染計(jì)算機(jī)。2008年,賽門鐵克報(bào)告說,惡意程序和其他不受歡迎的代碼的發(fā)布速度可能超過了良性軟件應(yīng)用程序[Symantec 2008]。這表明傳統(tǒng)的基于簽名的惡意軟件檢測(cè)解決方案可能面臨巨大的挑戰(zhàn),因?yàn)樗鼈兛梢员粣阂廛浖髡叱?。例如,根?jù)賽門鐵克的報(bào)告,在2008年,大約有180萬個(gè)惡意軟件的簽名被發(fā)布,這導(dǎo)致了每月2億次的檢測(cè)[Symantec 2008]。2013年,金山軟件反惡意軟件實(shí)驗(yàn)室收集的可疑文件達(dá)到1.2億,426萬(34%)被檢測(cè)為惡意軟件[金山軟件2014]。雖然許多惡意軟件樣本被檢測(cè)和屏蔽,大量的惡意軟件樣本(例如,所謂的“零日”惡意軟件[Wikipedia 2017f])已經(jīng)產(chǎn)生或突變,他們傾向于逃避傳統(tǒng)的基于簽名的反病毒掃描工具。這促使反惡意軟件行業(yè)重新考慮他們的惡意軟件檢測(cè)方法,因?yàn)檫@些方法主要基于現(xiàn)有的基于簽名的模型的變體。為了保持有效,許多反惡意軟件公司開始使用基于云(服務(wù)器)的檢測(cè)[Nachenberg和Seshadri 2010;Ye et al. 2011;Stokes et,2012年。基于云的惡意軟件檢測(cè)采用基于云的架構(gòu)(Ye et al. 2011):反惡意軟件產(chǎn)品在客戶端使用一個(gè)輕量級(jí)簽名庫來認(rèn)證有效的軟件程序,并阻止無效的軟件程序,同時(shí)預(yù)測(cè)任何未知的文件(例如:在云(服務(wù)器)端上的灰色列表,并快速向客戶端生成判定結(jié)果。隨著惡意軟件的編寫和創(chuàng)建技術(shù)的發(fā)展,灰色列表中的文件樣本數(shù)量不斷增加(例如,金山云安全中心每天收集50多萬個(gè)文件樣本)。因此,智能方法自動(dòng)檢測(cè)來自云端新收集的文件中的惡意軟件樣本是急需的。因此,許多研究報(bào)告使用數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù)來開發(fā)智能惡意軟件檢測(cè)系統(tǒng)[Schultz et al. 2001;Kolter和Maloof 2004;Karim et al. 2005;Lee和Mody 2006;Ye et al. 2007;Moskovitch et al . 2008;Kolbitsch et al . 2009;Ye et al. 2010, 2011;Karampatziakis et al. 2013;Tamersoy et al . 2014;2015年,薩克斯和柏林;Ni等人,2016年。
在本文中,我們首先簡要介紹了惡意軟件和防病毒軟件行業(yè),并介紹了惡意軟件檢測(cè)的工業(yè)需求。然后我們調(diào)查了智能惡意軟件的檢測(cè)方法。在這些方法中,惡意軟件檢測(cè)分為兩步:特征提取和分類/聚類。這種惡意軟件檢測(cè)方法的性能嚴(yán)重依賴于提取的特征和分類技術(shù)。我們對(duì)特征提取和分類/聚類步驟進(jìn)行了全面的研究。我們還討論了利用數(shù)據(jù)挖掘技術(shù)進(jìn)行惡意軟件檢測(cè)的其他問題和挑戰(zhàn),并最終預(yù)測(cè)了惡意軟件開發(fā)的趨勢(shì)。本文的其余部分組織如下:第2節(jié)介紹了惡意軟件和反惡意軟件行業(yè)的概況。第3節(jié)介紹了利用數(shù)據(jù)挖掘技術(shù)進(jìn)行惡意軟件檢測(cè)的全過程。第4節(jié)描述了惡意軟件的文件表示方法,第5節(jié)系統(tǒng)地討論了惡意軟件檢測(cè)的特征選擇方法。第6節(jié)介紹了惡意軟件檢測(cè)的分類,第7節(jié)描述了用于惡意軟件檢測(cè)的聚類。第8節(jié)進(jìn)一步討論了使用數(shù)據(jù)挖掘技術(shù)進(jìn)行惡意軟件檢測(cè)的其他問題。第9節(jié)預(yù)測(cè)了惡意軟件開發(fā)的趨勢(shì)。最后,第10節(jié)總結(jié)了這篇文章。
二、惡意軟件和反惡意軟件行業(yè)的概述
惡意軟件是故意滿足惡意攻擊者有害意圖的軟件程序[Bayer et al. 2006b]。它的設(shè)計(jì)是為了實(shí)現(xiàn)攻擊者的目標(biāo)。這些目標(biāo)包括干擾系統(tǒng)操作、獲取計(jì)算系統(tǒng)和網(wǎng)絡(luò)資源,以及在未經(jīng)用戶允許的情況下收集個(gè)人敏感信息。因此,惡意軟件通常會(huì)威脅到主機(jī)的完整性、Internet的可用性和用戶的隱私。
惡意軟件可以以不同的方式通過多種渠道到達(dá)系統(tǒng)。這些不同的方法總結(jié)如下:(1)網(wǎng)絡(luò)上的脆弱服務(wù)允許惡意軟件自動(dòng)感染可訪問的系統(tǒng)。(2)從互聯(lián)網(wǎng)下載過程:已顯示70-80%的惡意軟件來自流行網(wǎng)站[Rehmani et al. 2011]。通過利用web瀏覽器的漏洞,drive - By下載能夠首先從因特網(wǎng)獲取惡意代碼,然后在受害者的機(jī)器上執(zhí)行代碼[Egele等2012]。(3)攻擊者還可以誘使受害者故意在他們的機(jī)器上執(zhí)行惡意代碼。典型的例子包括要求用戶安裝一個(gè)提供的“編解碼器”來觀看在網(wǎng)站上播放的電影,或者點(diǎn)擊/打開附加到垃圾郵件的圖片[Egele et al. 2012]。在某些情況下,惡意軟件可能只會(huì)影響系統(tǒng)性能和創(chuàng)建過載進(jìn)程。在間諜活動(dòng)中,惡意軟件隱藏在系統(tǒng)中,竊取計(jì)算機(jī)的關(guān)鍵信息,并向攻擊者發(fā)送信息。
為了保護(hù)合法用戶免受惡意軟件攻擊,主要的防御是來自反惡意軟件公司的軟件產(chǎn)品。然而,反惡意軟件行業(yè)在檢測(cè)和預(yù)防攻擊方面越成功,在野外就可能出現(xiàn)越復(fù)雜的惡意軟件樣本。因此,惡意軟件防御者和惡意軟件作者之間的軍備競賽正在繼續(xù)升級(jí)。在接下來的章節(jié)中,我們介紹了惡意軟件的分類,闡述了惡意軟件行業(yè)的發(fā)展,并描述了惡意軟件檢測(cè)的進(jìn)展。
2.1 惡意軟件的分類
基于不同的目的和擴(kuò)散方式,惡意軟件可以分為不同的類型。本節(jié)簡要概述了大多數(shù)常見的惡意軟件,如病毒、蠕蟲、木馬、間諜軟件、ransomware、scareware、bots和rootkit。
病毒(Viruses):病毒是一段可以附加到其他系統(tǒng)程序的代碼,當(dāng)被執(zhí)行時(shí),受影響的區(qū)域被“感染”[Wikipedia 2017b]。病毒不能獨(dú)立運(yùn)行,因?yàn)樗鼈冃枰伤鼈兊摹八拗鳌背绦蚣せ頪Spafford 1989]。由Bob Thoma編寫的爬蟲病毒是一種實(shí)驗(yàn)性的自我復(fù)制程序,在20世紀(jì)70年代早期首次被發(fā)現(xiàn)[Wikipedia 2017b]。
蠕蟲(Worms):不像病毒需要它的“宿主”程序運(yùn)行來激活它,蠕蟲是一個(gè)能夠獨(dú)立運(yùn)行的程序。注意,蠕蟲可以將自己的完全工作副本傳播到其他機(jī)器上[Spafford 1989]。Morris蠕蟲(在1988年被釋放)是第一個(gè)公開的程序?qū)嵗?,它表現(xiàn)出類似蠕蟲的行為[Spafford 1989]。在莫里斯上訴過程中,根據(jù)美國上訴法院的估計(jì),移除莫里斯蠕蟲的費(fèi)用約為1億美元[維基百科2017c]。那些臭名昭著的蠕蟲,如愛門,編碼,SQL的關(guān),我的末日,和風(fēng)暴蠕蟲,已經(jīng)成功地攻擊了數(shù)以千萬計(jì)的Windows電腦并且造成了巨大的損失。例如,在其發(fā)布的第一天,紅色代碼蠕蟲(2001年首次發(fā)布)感染359000臺(tái)主機(jī)在互聯(lián)網(wǎng)上(摩爾和香農(nóng)2002],雖然MyDoom的蠕蟲(2004年的)減慢全球互聯(lián)網(wǎng)接入10%,造成某些網(wǎng)站的訪問(2011年Bizjournals)減少了50%。
特洛伊木馬(Trojans):與蠕蟲病毒相比,它更容易將自己的一個(gè)完整的工作版本傳播到其他機(jī)器上,特洛伊病毒是一個(gè)假裝有用但在后端執(zhí)行惡意操作的軟件程序[Schultz et al. 2001]。最近著名的特洛伊木馬,宙斯(也被稱為Zbot)能夠執(zhí)行許多惡意和犯罪的任務(wù)。宙斯經(jīng)常被用來竊取與銀行相關(guān)的信息,通過敲擊鍵盤記錄和獲取(維基百科2017g)。2009年6月,安全公司Prevx發(fā)現(xiàn),在許多公司的網(wǎng)站上,有超過74000個(gè)FTP賬號(hào)被Zeus泄露(包括ABC、Amazon、BusinessWeek、Cisco、NASA、Monster.com、Oracle、Play.com和美國銀行)[Wikipedia 2017g]。
間諜軟件(Spyware):間諜軟件是一種惡意程序,監(jiān)視用戶的活動(dòng),而不需要用戶的知情或同意[邊界和Prakash 2004]。攻擊者可以使用間諜軟件監(jiān)視用戶活動(dòng)、收集擊鍵和獲取敏感數(shù)據(jù)(例如,用戶登錄、帳戶信息)。
Ransomware: Ransomware是近年來最流行的惡意軟件之一[Symantec 2016],它在受害者的電腦上秘密安裝,并執(zhí)行一種對(duì)其不利的加密病毒攻擊[Wikipedia 2017d]。如果計(jì)算機(jī)被這個(gè)惡意軟件感染,受害者被要求支付贖金給攻擊者來解密它。
Scareware: Scareware是一種最新類型的惡意文件,旨在欺騙用戶購買和下載不必要的、潛在危險(xiǎn)的軟件,如假冒的反病毒保護(hù)[Wikipedia 2016],它對(duì)受害者構(gòu)成了嚴(yán)重的財(cái)務(wù)和隱私相關(guān)的威脅。
機(jī)器人(bot):機(jī)器人是一種惡意程序,允許機(jī)器人主人遠(yuǎn)程控制被感染的系統(tǒng)[Stinson和Mitchell 2007]。機(jī)器人的典型傳播方法是利用軟件漏洞和使用社會(huì)工程技術(shù)。一旦系統(tǒng)被感染,機(jī)器人主人可以安裝蠕蟲、間諜軟件和木馬,并將個(gè)人受害系統(tǒng)轉(zhuǎn)化為僵尸網(wǎng)絡(luò)。僵尸網(wǎng)絡(luò)廣泛用于發(fā)起分布式拒絕服務(wù)(DDoS)攻擊[Kanich et al. 2008]、發(fā)送垃圾郵件和托管釣魚欺詐。Agobot和Sdbot是兩個(gè)最臭名昭著的機(jī)器人。
rootkit:一種隱秘的軟件,旨在隱藏特定的進(jìn)程或程序,并允許繼續(xù)訪問計(jì)算機(jī)(Wikipedia 2017e)。Rootkit技術(shù)可以在不同的系統(tǒng)級(jí)別上使用:它們可以在用戶模式中調(diào)用應(yīng)用程序編程接口(API),或者將操作系統(tǒng)結(jié)構(gòu)作為設(shè)備驅(qū)動(dòng)程序或內(nèi)核模塊進(jìn)行篡改。
混合惡意軟件(Hybrid Malware):混合惡意軟件將兩個(gè)或更多其他形式的惡意代碼合并成一個(gè)新的類型,以實(shí)現(xiàn)更強(qiáng)大的攻擊功能。
其他一些常見的網(wǎng)絡(luò)害蟲也會(huì)對(duì)計(jì)算機(jī)用戶造成危害,比如“垃圾郵件”、“廣告軟件”等等。實(shí)際上,這些典型的惡意軟件并不相互排斥。換句話說,一個(gè)特定的惡意軟件樣本可能同時(shí)屬于多個(gè)惡意軟件類型。
2.2 惡意軟件產(chǎn)業(yè)發(fā)展
病毒是惡意軟件的第一個(gè)實(shí)例。惡意軟件作者的最初動(dòng)機(jī)常常是突出安全性的弱點(diǎn),或者僅僅是為了展示他們的技術(shù)能力。此外,為了躲避反惡意軟件的檢測(cè),惡意軟件作者和攻擊者開發(fā)并應(yīng)用了各種隱藏技術(shù):(1)加密(Encryption):加密的惡意軟件包括加密算法、加密密鑰、加密的惡意代碼和解密算法[Sung et .2004]。密鑰和解密算法用于解密惡意軟件中的惡意組件。攻擊者使用新生成的密鑰和加密算法,并生成新版本的惡意軟件以逃避檢測(cè)。(2)打包(Packing):打包是一種用于加密或壓縮可執(zhí)行文件的技術(shù)[Kendall和McMillan 2007]。通常情況下,要揭示包裝惡意程序的整體語義,需要打開一個(gè)解包的階段。(3)混淆:Obfuscation [Sung et .2004]的目的是隱藏程序的底層邏輯,防止其他人對(duì)代碼有任何相關(guān)的知識(shí)。典型的混淆技術(shù)包括添加垃圾命令、不必要的跳轉(zhuǎn)等等。通過應(yīng)用混淆,惡意代碼及其所有有害功能在被激活之前仍然無法理解。(4)多態(tài)性(Polymorphism)[Bazrafshan et al. 2013]:一個(gè)多態(tài)性的惡意軟件每次被復(fù)制時(shí)都被設(shè)定為不同的外觀,同時(shí)保持原始代碼的完整性。不同于簡單的加密,多態(tài)惡意軟件可以使用無限數(shù)量的加密算法,在每次執(zhí)行中,解密代碼的一部分將會(huì)改變。根據(jù)惡意軟件類型,惡意軟件執(zhí)行的不同惡意操作可以被置于加密操作之下。通常,一個(gè)轉(zhuǎn)換引擎嵌入到加密的惡意軟件中。注意,在任何更改中,引擎都會(huì)生成一個(gè)隨機(jī)加密算法。然后,使用生成的算法對(duì)引擎和惡意軟件進(jìn)行加密,并與它們連接新的解密密鑰。(5)變形(Metamorphic)(Bazrafshan et al. 2013;Crandall et al. 2005]:變形惡意軟件是最復(fù)雜的惡意軟件。在變形的惡意軟件中,惡意代碼改變了自己,使一個(gè)新的實(shí)例與原始的實(shí)例沒有相似之處。惡意軟件沒有任何編碼引擎。在每個(gè)傳輸中,惡意軟件源代碼中會(huì)自動(dòng)發(fā)生更改。
惡意軟件作者的動(dòng)機(jī)隨著時(shí)間的推移而改變。隨著計(jì)算機(jī)的普及和互聯(lián)網(wǎng)的高速發(fā)展,電子商務(wù)在銀行業(yè)和金融業(yè)中得到了廣泛的應(yīng)用。eMarketer的最新預(yù)測(cè)顯示,全球B2C電子商務(wù)銷售額將達(dá)到1.5萬億美元[eMarketer 2014]。因此,在今天的電子商務(wù)中,存在著一個(gè)蓬勃發(fā)展的地下惡意軟件經(jīng)濟(jì)[zbig et al. 2008]。通過傳播破壞性的有效載荷,惡意軟件可以首先感染并控制脆弱的計(jì)算機(jī)系統(tǒng),并利用它們獲取非法資金[Zhuge et al. 2008]。金錢的前景,而不是有趣的因素,成為惡意軟件開發(fā)的驅(qū)動(dòng)力。在相當(dāng)大的經(jīng)濟(jì)利益的驅(qū)動(dòng)下,惡意軟件樣本的多樣性和復(fù)雜性在過去幾年顯著增加[Hu 2011]。例如,Ramnit最初是2010年發(fā)現(xiàn)的一種普通蠕蟲病毒,后來被惡意軟件作者修改為盜取了45,000個(gè)Facebook賬戶。通過從宙斯木馬上獲取的一些代碼從web會(huì)話中獲取數(shù)據(jù),當(dāng)前版本的Ramnit是原始蠕蟲的混合版本,它允許黑客進(jìn)行財(cái)務(wù)欺詐。木馬程序的設(shè)計(jì)目的是提供未經(jīng)授權(quán)和遠(yuǎn)程訪問的電腦,允許黑客竊取敏感信息(如Facebook賬戶或電子銀行賬戶),它的受歡迎程度越來越高,目前在惡意軟件收集中占多數(shù)(73%)[Ye 2010]。
現(xiàn)在已經(jīng)有一個(gè)成熟的木馬產(chǎn)業(yè)鏈(如圖1所示),在經(jīng)濟(jì)效益方面是有利可圖的:從木馬的創(chuàng)建到規(guī)避檢測(cè)、傳播、bot控制、賬戶盜竊、銷售。勞動(dòng)分工十分明確,整個(gè)過程和組織構(gòu)成了一個(gè)健全完整的裝配線。在中國,這樣一個(gè)黑色鏈的增長速度非???,每年的產(chǎn)值可以超過10億美元[Ye 2010]。
然而,盡管惡意軟件更加復(fù)雜,編寫和定制惡意軟件的必要知識(shí)實(shí)際上已經(jīng)大大減少[Hu2011]。這主要是由于許多自動(dòng)惡意軟件創(chuàng)建工具包的可用性,這些工具也易于使用,比如Zeus [TrendMicro 2010]和SpyEye [Coogan 2010]。這些工具包允許沒有經(jīng)驗(yàn)的攻擊者定制并創(chuàng)建惡意軟件程序來實(shí)施網(wǎng)絡(luò)犯罪,這將導(dǎo)致大量的惡意軟件變體。此外,許多惡意軟件樣本不斷變異,以繞過反惡意軟件供應(yīng)商的檢測(cè)。而不是從頭編寫一個(gè)新的惡意軟件,惡意軟件作者總是采取一種更具成本效益的策略來完善現(xiàn)有的惡意軟件樣本(略有修改源代碼或二進(jìn)制文件)他們繞過反惡意軟件掃描檢測(cè),使用一組不同的工具和技術(shù)通常包括指令重新排序,垃圾插入,等同替換代碼和運(yùn)行時(shí)包裝。因此,這些變種的惡意軟件樣本已經(jīng)演化成一個(gè)流排列的過程[奧曼2010]。由于惡意軟件的變種可以自動(dòng)和快速地生成,惡意軟件作者可以替換過時(shí)的惡意軟件,在新的檢測(cè)簽名被開發(fā)和更新之前,給他們的變種提供一個(gè)有利的攻擊窗口。這種惡意軟件突變過程的易用性導(dǎo)致了新的惡意軟件文件樣本的指數(shù)增長[Ye等人,2009c]?;诮鹕皆瓢踩行奶峁┑臄?shù)據(jù)[Kingsoft 2014, 2015, 2016],圖2展示了從2003年到2015年中國惡意軟件樣本的增長趨勢(shì)。該數(shù)據(jù)顯示,自2008年以來,惡意軟件樣本的數(shù)量急劇增加,2015年收集的新惡意軟件樣本總數(shù)達(dá)到4066萬例[金山軟件2016]。不幸的是,這種趨勢(shì)可能會(huì)繼續(xù)下去,惡意軟件仍將是互聯(lián)網(wǎng)用戶面臨的最大安全威脅之一。
2.3 惡意軟件檢測(cè)的進(jìn)展
2.3.1?;诤灻膼阂廛浖z測(cè)。為了保護(hù)合法用戶免受惡意軟件的威脅,來自反惡意軟件公司的軟件產(chǎn)品(例如,來自科摩多、卡巴斯基、金山、麥咖啡和賽門鐵克的產(chǎn)品)提供了主要的防御。通常,他們使用基于簽名的方法來識(shí)別已知的威脅。簽名是每個(gè)已知的惡意軟件的一個(gè)簡短的字節(jié)序列,它允許新遇到的文件以一個(gè)小錯(cuò)誤率正確地識(shí)別出來[Ye et al. 2011]。圖3顯示了一個(gè)用于檢測(cè)在線游戲木馬的示例簽名。
基于簽名的方法從二進(jìn)制代碼中識(shí)別唯一的字符串[Moskovitch et al. 2009]。這種傳統(tǒng)檢測(cè)方法的過程如圖4所示。每當(dāng)一種新的惡意軟件被釋放,反惡意軟件供應(yīng)商就需要獲得新的惡意軟件的實(shí)例,分析實(shí)例,創(chuàng)建新的簽名,并在他們的客戶端部署(Micropoint 2008;Moskovitch et al . 2009]。傳統(tǒng)上,簽名基礎(chǔ)通常是由領(lǐng)域?qū)<沂止ど伞⒏潞蛡鞑サ?。這個(gè)過程通常被稱為時(shí)間和勞動(dòng)消耗。這種檢測(cè)方法使得反惡意軟件工具對(duì)新威脅的響應(yīng)能力較弱。它甚至可能允許一些惡意軟件樣本繞過檢測(cè),并在很長一段時(shí)間內(nèi)不被發(fā)現(xiàn)。例如,一個(gè)惡意軟件的發(fā)布到它被反惡意軟件軟件工具檢測(cè)的一個(gè)典型的時(shí)間窗口大約是54天[Hu 2011]。在更糟糕的情況下,在180天之后,15%的樣本仍未被發(fā)現(xiàn)[Damballa 2008]。
2.3.2 基于啟發(fā)式的惡意軟件檢測(cè)。通過應(yīng)用上面描述的對(duì)策(例如加密、打包、混淆、多態(tài)性和變質(zhì)),惡意軟件作者可以輕松繞過基于簽名的檢測(cè)。從20世紀(jì)90年代末到2008年,基于啟發(fā)式的方法是檢測(cè)惡意軟件最重要的方法?;趩l(fā)性的檢測(cè)是基于專家確定的規(guī)則/模式,以區(qū)分惡意軟件樣本和良性文件。這些規(guī)則/模式應(yīng)該足夠通用,可以與相同惡意軟件威脅的變體保持一致,但不能與惡意文件相匹配[Egele et al. 2012]。然而,惡意軟件樣本的分析和領(lǐng)域?qū)<覍?duì)規(guī)則/模式的構(gòu)建往往容易出錯(cuò),且耗時(shí)。更重要的是,如上所述,在經(jīng)濟(jì)利益的驅(qū)動(dòng)下,惡意軟件行業(yè)已經(jīng)發(fā)明了自動(dòng)的惡意軟件開發(fā)工具包(如Zeus [TrendMicro 2010]),可以每天創(chuàng)建和變異數(shù)千個(gè)惡意代碼,這些代碼可以通過傳統(tǒng)的基于簽名或基于啟發(fā)式的檢測(cè)[Symantec 2008]。因此,人工分析已成為惡意軟件分析工作的主要瓶頸,要求智能技術(shù)自動(dòng)分析傳入的樣本。這種智能技術(shù)可以讓反惡意軟件供應(yīng)商跟上快速的惡意軟件生成和部署,同時(shí)減少他們對(duì)新的惡意軟件威脅的響應(yīng)時(shí)間。此外,惡意軟件創(chuàng)建的速度(例如,超過10,000個(gè)新的惡意軟件/天)比簽名生成速度快,而且簽名的增加使得客戶變得越來越“沉重”。
2.3.3 基于云計(jì)算的惡意軟件檢測(cè)。為了克服上述挑戰(zhàn),并保持有效,許多反惡意軟件供應(yīng)商已經(jīng)使用基于云(服務(wù)器)的檢測(cè)。基于云的檢測(cè)工作流如圖5所示。具體來說,該方案可以在以下[Ye et al. 2011]中描述:
(1)用戶通過客戶端不同渠道從互聯(lián)網(wǎng)接收新文件。
(2)客戶端上的簽名集首先被反惡意軟件產(chǎn)品用于掃描新文件。如果現(xiàn)有的簽名不能檢測(cè)到這些文件,那么這些文件將被標(biāo)記為“未知”。
(3)收集未知文件的信息(如文件聲譽(yù)、文件特性、甚至文件)并發(fā)送到云服務(wù)器。
(4)在云服務(wù)器上,分類器(s)對(duì)未知文件樣本進(jìn)行分類,生成判決(良性或惡性)。
(5)裁決結(jié)果將立即發(fā)送給客戶。
(6)基于云服務(wù)器的結(jié)果,客戶端掃描過程進(jìn)行檢測(cè)。
(7)隨著云服務(wù)器的快速響應(yīng)和反饋,客戶端用戶將擁有最新的安全解決方案。
綜上所述,惡意軟件檢測(cè)現(xiàn)在以客戶端-服務(wù)器方式進(jìn)行,采用基于云的架構(gòu)[Ye et al. 2011]:從黑名單中屏蔽無效的軟件程序,從客戶端(用戶)的白列表中驗(yàn)證有效的軟件程序,并預(yù)測(cè)任何未知的文件(例如:,在云(服務(wù)器)端顯示灰色列表,并快速向客戶端生成結(jié)果?;疑斜戆粗能浖募@些文件可能是良性的,也可能是惡意的。傳統(tǒng)上,灰色列表被惡意軟件分析人員拒絕或手動(dòng)驗(yàn)證。隨著惡意軟件的編寫和創(chuàng)建技術(shù)的發(fā)展,灰色列表中的文件樣本數(shù)量不斷增加。例如,Kingsoft或Comodo云安全中心收集的灰色列表通常每天包含超過500,000個(gè)文件示例[Ye 2010]。因此,迫切需要開發(fā)智能技術(shù),以便在云(服務(wù)器)端支持高效、有效的惡意軟件檢測(cè)。
近年來,金山安全產(chǎn)品等商業(yè)產(chǎn)品[Ye et al. 2009c, 2010],科摩多殺毒(AV)產(chǎn)品[Ye et al. 2011];Chen et al. 2015;Hardy et al. 2016],賽門鐵克的抗alware (AM)產(chǎn)品[Chau et al. 2011],以及微軟的Internet Explorer [Stokes et al. 2012]已經(jīng)開始使用數(shù)據(jù)挖掘技術(shù)來執(zhí)行惡意軟件檢測(cè)。
3 應(yīng)用數(shù)據(jù)挖掘技術(shù)進(jìn)行惡意軟件檢測(cè)的總體過程
近年來,基于數(shù)據(jù)挖掘技術(shù)的惡意軟件檢測(cè)被大量報(bào)道。這些技術(shù)能夠?qū)σ郧安豢梢姷膼阂廛浖颖具M(jìn)行分類,識(shí)別惡意軟件樣本的惡意軟件家族,以及/或推斷簽名。在這些系統(tǒng)中,檢測(cè)通常是兩步過程:特征提取和分類/聚類。圖6顯示了使用數(shù)據(jù)挖掘技術(shù)的惡意軟件檢測(cè)的整個(gè)過程。在第一步中,靜態(tài)和/或動(dòng)態(tài)地提取各種特性(參見第4節(jié)),如API調(diào)用、二進(jìn)制字符串和程序行為,以捕獲文件示例的特征。在第二步中,利用分類或聚類等智能技術(shù),在分析特征表示的基礎(chǔ)上,自動(dòng)將文件樣本分類為不同的類/組。注意,這些基于數(shù)據(jù)挖掘的惡意軟件探測(cè)器主要區(qū)別于特征表示和所使用的數(shù)據(jù)挖掘技術(shù)。
分類:對(duì)任何未知文件進(jìn)行分類,可以是良性的,也可以是惡性的,分類過程可以分為兩個(gè)連續(xù)步驟:模型構(gòu)建和模型使用。第一步,向系統(tǒng)提供包括惡意軟件和良性文件在內(nèi)的訓(xùn)練樣本。然后,對(duì)每個(gè)樣本進(jìn)行解析,提取代表其基本特征的特征。提取的特征被轉(zhuǎn)換為訓(xùn)練集中的向量,將每個(gè)樣本的特征向量和類標(biāo)簽作為分類算法(如人工神經(jīng)網(wǎng)絡(luò)(ANN)、決策樹(DT)和支持向量機(jī)(SVM))的輸入。分類算法通過對(duì)訓(xùn)練集的分析,建立分類模型(或分類器)。然后,在模型使用階段,一個(gè)新的未知的文件樣本的集合,也可以是良性的或惡意的,被提交給從訓(xùn)練集中生成的分類器。請(qǐng)注意,新文件樣本的代表向量首先提取(使用相同的特征提取技術(shù)在訓(xùn)練階段)。分類器根據(jù)提取的特征向量對(duì)新的文件樣本進(jìn)行分類。
聚類:在許多情況下,很少有標(biāo)記訓(xùn)練樣本用于惡意軟件檢測(cè)。因此,研究人員提出了使用聚類來自動(dòng)將具有相似行為的惡意軟件樣本分組到不同的組中。聚類是對(duì)一組對(duì)象進(jìn)行分組的任務(wù),使得同一組中的對(duì)象(被稱為集群)比其他組(集群)中的對(duì)象彼此更相似(例如,使用特定距離或相似性度量)。聚類允許自動(dòng)的惡意軟件分類,并且還能夠生成用于檢測(cè)的簽名。
為了評(píng)估目的,通常采用表一所示的經(jīng)典方法來評(píng)估基于分類的惡意軟件檢測(cè)的性能。注意,在惡意軟件檢測(cè)中,惡意軟件樣本通常被用作陽性實(shí)例。真正的陽性率(TPR)衡量的是惡意軟件樣本(即。通過分類模型對(duì)正實(shí)例進(jìn)行了正確的分類,而假陽性率(FPR)是良性文件的分類率(即錯(cuò)誤分類(例如:,誤分類為惡意軟件樣本)。Accuracy (ACY)度量正確分類的文件實(shí)例的速率,包括正實(shí)例和負(fù)實(shí)例。使用傳統(tǒng)方法的評(píng)估方法通常被稱為累積方法(cumulative approach)[Nachenberg和Seshadri 2010]。累積方法衡量的是在實(shí)例級(jí)的惡意軟件檢測(cè)方法/系統(tǒng)的性能(例如,每級(jí)文件)。還有另一種度量方法,稱為基于交互的度量方法(interactive-based)[Ramzan et al. 2013],它試圖在事務(wù)級(jí)度量惡意軟件檢測(cè)方法/系統(tǒng)的性能(考慮到不同的用戶群)?;诮换サ亩攘糠椒ɑ趯?shí)際的用戶群來度量惡意軟件檢測(cè)方法/系統(tǒng)的真實(shí)保護(hù)和虛假正面影響。例如,假設(shè)在時(shí)間T,有兩個(gè)測(cè)試文件的惡意軟件,(有100萬用戶)和B(10個(gè)用戶),和惡意軟件檢測(cè)方法/系統(tǒng)錯(cuò)誤分類的第一個(gè)文件(例如,一個(gè)假陰性,將惡意軟件劃分為一個(gè)良性的文件),但第二個(gè)文件B正確歸類為惡意軟件樣本。僅基于這兩個(gè)文件,累積測(cè)量將給出50%的準(zhǔn)確性,因?yàn)樗_地分類一個(gè)文件,而一個(gè)文件不正確;但是在基于交互的測(cè)量方法中,它會(huì)根據(jù)A和b的用戶對(duì)錯(cuò)誤的負(fù)面和真實(shí)的優(yōu)點(diǎn)分配不同的權(quán)重。對(duì)于基于集群的方法,不同算法的性能通常是通過使用宏f1和微f1度量來評(píng)估的,這兩種方法分別強(qiáng)調(diào)了系統(tǒng)在罕見的和常見的分類上的性能。
4 特征提取
特征提取方法提取用于表示文件樣本的模式。在本文中,我們主要討論對(duì)Windows可執(zhí)行文件的檢測(cè)。注意,PE是Windows操作系統(tǒng)的一種常見文件格式,而PE惡意軟件是大多數(shù)惡意軟件樣本。注意CIH、CodeBlue、costed、Killonce、LoveGate、Nimda、Sircam和Sobig都針對(duì)PE文件[Ye et al. 2007]。惡意軟件檢測(cè)中主要有兩種不同類型的特征提取:靜態(tài)分析和動(dòng)態(tài)分析。
4.1 靜態(tài)分析
靜態(tài)分析分析PE文件而不執(zhí)行它們。靜態(tài)分析的目標(biāo)可以是二進(jìn)制或源代碼[Christodorescu和Jha 2003]。如果PE文件被第三方二進(jìn)制壓縮工具(例如UPX和ASPack Shell)壓縮或嵌入自制的封隔器中,則需要首先對(duì)其進(jìn)行解壓/解壓[Yeet al. 2007]。要對(duì)windows可執(zhí)行文件進(jìn)行反編譯,可以使用反匯編器(disassembler)和內(nèi)存轉(zhuǎn)儲(chǔ)器工具(Memory dumper tools)。反編譯工具(例如,IDA Pro IDAPro 2016)顯示惡意軟件代碼為英特爾86匯編指令。內(nèi)存轉(zhuǎn)儲(chǔ)工具(例如,OllyDump[2006]和LordPE[2013])用于獲取位于主內(nèi)存中的受保護(hù)代碼,并將其轉(zhuǎn)儲(chǔ)到文件中[Gandotra et al. 2014]。內(nèi)存轉(zhuǎn)儲(chǔ)對(duì)于分析打包的難以分解的可執(zhí)行文件非常有用。在解壓縮和解密可執(zhí)行文件之后,可以提取靜態(tài)分析中使用的檢測(cè)模式,如Windows API調(diào)用、字節(jié)N-gram、字符串、操作碼(操作碼)和控制流圖。
——Windows API調(diào)用:幾乎所有程序都使用Windows API調(diào)用向操作系統(tǒng)發(fā)送請(qǐng)求[Orenstein 2000]。因此,Windows API調(diào)用可以反映程序代碼片段的行為。例如,“KERNEL32”中“GetVersionExA”的Windows API。惡意軟件可以使用DLL來檢查當(dāng)前操作系統(tǒng)的版本,這是通過調(diào)用系統(tǒng)調(diào)用實(shí)現(xiàn)的。因此,Windows API之間的關(guān)聯(lián)和關(guān)系可能捕獲惡意軟件行為的底層語義,并可作為惡意軟件檢測(cè)的基本特性,如“KERNEL32”中的Windows API調(diào)用。“OpenProcess”、“CopyFileA”、“CloseHandle”、“GetVersionEx A”、“GetModuleFileNameA”和“WriteFile”的DLL在惡意軟件樣本集合中總是同時(shí)出現(xiàn),而很少在良性文件集中同時(shí)出現(xiàn)[Ye et al. 2007]。
——N-gram: N-gram是程序代碼中長度為N的子字符串[Henchiri和Japkowicz 2006a]。例如,“82EDD875”序列被分割(表示)為5-gram,分別為“82EDD”、“2EDD8”、“EDD87”和“DD875”。在過去的十年中,許多研究基于二進(jìn)制代碼內(nèi)容進(jìn)行了未知的惡意軟件檢測(cè);[2004],[2004],[2005],Elovici等[2007],Masud等[2007],Anderson等[2012]。
—— string:可解釋字符串是惡意行為的高級(jí)規(guī)范。這些字符串可以反映攻擊者的意圖和目標(biāo),因?yàn)樗鼈儼匾恼Z義信息[Ye et al. 2009]。例如,“window.open(‘readme.eml’)” 總是存在于“Nimda”的蠕蟲中,暗示蠕蟲試圖感染腳本。另一個(gè)例子是字符串“&gameid = %s&pass = %s;myparentthreadid = % d;myguid =%s,“這表明攻擊者意圖竊取在線游戲的密碼并將其發(fā)送回服務(wù)器?!贝送猓址墙训奶匦?,惡意軟件作者不容易逃避基于字符串的檢測(cè)。這是因?yàn)榧词箰阂廛浖凅w可以通過重新編譯或采用混淆技術(shù)生成,修改所有可解釋的字符串在大多數(shù)程序中也不實(shí)用[Ye et al. 2009]。
——Opcodes(操作碼):操作碼是機(jī)器語言指令的子部分,用于標(biāo)識(shí)要執(zhí)行的操作[Wikipedia 2017a]。更具體地說,程序被定義為一系列有序的匯編指令。指令是由操作碼、操作數(shù)或操作數(shù)列表(例如“mov ebx”、“add eax 1”、“xor eax eax”和“call sub_401BCD”)組成的一對(duì)指令。指令段通??梢苑从吵绦虻墓δ堋Q芯勘砻?,在實(shí)踐中,來自相同源代碼或?qū)儆谕患易宓膼阂廛浖颖就ǔ9蚕泶罅康闹噶顗K/段[Ye et .2010]。
——Control Flow Graphs (CFGs)控制流圖:CFG是表示程序控制流的圖。CFGs廣泛應(yīng)用于軟件分析,也被廣泛研究[Anderson et al. 2012]。
還有許多其他靜態(tài)特性來表示文件示例,如文件屬性、文件資源信息和導(dǎo)出表。靜態(tài)分析能夠探究惡意軟件樣本中所有可能的執(zhí)行路徑。因此,它在檢測(cè)惡意邏輯方面具有詳盡的優(yōu)點(diǎn)。換句話說,靜態(tài)分析沒有動(dòng)態(tài)分析所遇到的覆蓋問題。靜態(tài)分析的另一個(gè)優(yōu)點(diǎn)是,分析器的機(jī)器不能被正在研究的惡意軟件攻擊。靜態(tài)分析的一個(gè)缺點(diǎn)是,在處理某些情況時(shí),由于不可判定性(例如,通過函數(shù)指針間接控制轉(zhuǎn)移)而無法進(jìn)行。因此,無論何時(shí)需要進(jìn)行分析,都必須在精確和效率之間做出權(quán)衡。靜態(tài)分析的其他缺點(diǎn)包括缺乏對(duì)運(yùn)行時(shí)打包代碼的支持以及與復(fù)雜混淆相關(guān)的限制。Moser等人[2007]討論了靜態(tài)分析的缺點(diǎn)。他們認(rèn)為,動(dòng)態(tài)分析可以成為靜態(tài)分析的必要和有用的補(bǔ)充。
4.2 動(dòng)態(tài)分析
動(dòng)態(tài)分析技術(shù)(例如,調(diào)試和分析)觀察PE文件的執(zhí)行(在真實(shí)或虛擬處理器上),以獲得特性[Egele等人2012]??梢圆捎米詣?dòng)啟動(dòng)可擴(kuò)展性點(diǎn)、函數(shù)參數(shù)分析、函數(shù)調(diào)用監(jiān)控、信息流跟蹤、指令跟蹤等多種技術(shù)進(jìn)行動(dòng)態(tài)分析[Egele et al. 2012];Gandotra et al . 2014]。典型的動(dòng)態(tài)分析工具包括Valgrind [Nethercote和Seward 2007]、QEMU [QEMU 2016]和strace。對(duì)惡意軟件的動(dòng)態(tài)分析已經(jīng)有了大量的研究,在執(zhí)行環(huán)境中對(duì)惡意軟件和分析粒度進(jìn)行了不同的分析。下面我們根據(jù)執(zhí)行環(huán)境對(duì)動(dòng)態(tài)分析技術(shù)進(jìn)行分類:
——Debugger:在指令級(jí)別上,可以使用GDB (Loukides和Oram 1996)、Windbg (Robbins 1999)或Softice (Compuware 1999)等調(diào)試器對(duì)二進(jìn)制代碼(包括惡意軟件)進(jìn)行細(xì)粒度分析。然而,大多數(shù)惡意軟件(如果不是全部的話)已經(jīng)變得足夠智能,可以通過監(jiān)視對(duì)代碼的更改來檢測(cè)調(diào)試器的存在,這些更改是支持?jǐn)帱c(diǎn)(調(diào)試的主要工具)所必需的。為了對(duì)抗這種反調(diào)試的惡意軟件,研究了新的調(diào)試方法。吸血鬼[Vasudevan和Yerraballi 2005]支持秘密斷點(diǎn),通過利用虛擬內(nèi)存和硬件單步機(jī)制,幫助調(diào)試自修改和/或自檢查惡意軟件。構(gòu)建于吸血鬼之上的Cobra [Vasudevan和Yerraballi 2006]是一個(gè)細(xì)粒度的惡意軟件分析框架,可以選擇性地部署在惡意代碼流上,以提高分析效率。最后,Ether [Dinaburg et al. 2008]是一種調(diào)試工具,它利用諸如Intel VT [Intel 2013]等硬件虛擬化擴(kuò)展,使惡意軟件看不到它。
——Simulator模擬器:這組工具在受控環(huán)境中運(yùn)行惡意軟件并監(jiān)視其行為。例如,Detours [Hunt and Brubacher 1998]是一種動(dòng)態(tài)檢測(cè)工具,可以檢測(cè)惡意軟件示例調(diào)用的Windows API,而CWSandbox [Willems et al. 2007]通過執(zhí)行API連接和DLL注入來監(jiān)控惡意軟件調(diào)用的Windows API。
——仿真器(Emulator):TTAnalyze [Bayer et al. 2006a]是一個(gè)基于qemu的動(dòng)態(tài)惡意軟件分析框架,監(jiān)控Windows API調(diào)用和Windows本機(jī)系統(tǒng)調(diào)用,以及函數(shù)調(diào)用參數(shù)。BitBlaze二進(jìn)制分析平臺(tái)中的TEMU是一個(gè)仿真器,它支持指令級(jí)的動(dòng)態(tài)檢測(cè)和整個(gè)系統(tǒng)的污染跟蹤。一些專門的分析工具[Caballero et al. 2007;Kang et al. 2007;Yin等人2007]已經(jīng)在TEMU之上建立。K-Tracer [Lanzi et al. 2009]動(dòng)態(tài)跟蹤Windows內(nèi)核級(jí)rootkit的執(zhí)行情況,以查找其系統(tǒng)數(shù)據(jù)操作行為。
——虛擬機(jī)(Virtual Machine):Strider honeymonkey [Wang et al. 2006a]通過在Microsoft Virtual PC和Virtual server為基礎(chǔ)的環(huán)境中訪問惡意網(wǎng)站,并識(shí)別這種訪問導(dǎo)致的持續(xù)系統(tǒng)狀態(tài)變化,從而確定惡意網(wǎng)站。vGrounds [Jiang et al. 2005]研究基于用戶模式的Linux (UML)虛擬環(huán)境中的蠕蟲行為。
在動(dòng)態(tài)特征提取中,配置或環(huán)境相關(guān)的信息(如變量值、系統(tǒng)配置和程序輸入)在提取過程中被解析。這是動(dòng)態(tài)分析的一大優(yōu)勢(shì)。這些環(huán)境或配置依賴于靜態(tài)分析會(huì)造成困難,因?yàn)樗鼈兂隽舜a本身。動(dòng)態(tài)分析在分析打包的惡意軟件時(shí)特別有用,因?yàn)樵诖蠖鄶?shù)情況下,當(dāng)惡意軟件運(yùn)行時(shí),在某個(gè)時(shí)刻,惡意軟件必須自行解壓,其原始代碼將位于主存中。Renovo [Kang et al.2007]就是這樣一個(gè)工具,它通過跟蹤惡意軟件新寫入的內(nèi)存區(qū)域來提取隱藏的代碼,即使它是通過多層壓縮和加密來隱藏的。有限的覆蓋范圍是動(dòng)態(tài)分析的一個(gè)缺點(diǎn)。原因是一個(gè)執(zhí)行會(huì)話只能在惡意軟件中探索一個(gè)特定的程序路徑。但是一些惡意軟件行為可能取決于某些特殊的條件(例如,在特定的時(shí)間,當(dāng)收到特定的文件,或者執(zhí)行特定的命令/操作)。
此外,由于惡意軟件樣本在運(yùn)行時(shí)暴露其所有行為需要時(shí)間,因此動(dòng)態(tài)分析通常要比靜態(tài)分析耗費(fèi)更多的時(shí)間和資源。因此,這些特性限制了在商業(yè)分析系統(tǒng)中采用動(dòng)態(tài)分析。
4.3 混合分析
靜態(tài)和動(dòng)態(tài)特征提取方法都有各自的優(yōu)點(diǎn)和局限性。與動(dòng)態(tài)特性表示相比,靜態(tài)方法更便宜,可以覆蓋所有的代碼路徑(包括不總是執(zhí)行的程序片段),因此可以更準(zhǔn)確、更完整地描述程序功能[Hu 2011]。然而,由于低層次的突變技術(shù)(例如混淆和包裝),它的性能開銷很大。相反,動(dòng)態(tài)分析能夠抵抗低層次的混淆,適合檢測(cè)惡意軟件變體和新的家庭,但是在基于觸發(fā)的惡意軟件樣本上表現(xiàn)很差。此外,由于動(dòng)態(tài)分析的覆蓋范圍有限,它的成本很高,而且不具有可擴(kuò)展性。根據(jù)Comodo云安全中心的統(tǒng)計(jì)數(shù)據(jù),大約80%的文件示例可以使用靜態(tài)特性得到很好的表示,而大約40%的文件示例可以動(dòng)態(tài)運(yùn)行[Ye et al. 2011]。
由于它們各自的優(yōu)缺點(diǎn),無論是靜態(tài)的還是基于動(dòng)態(tài)的特征提取方法都不能為惡意軟件分析中的特征提取提供一個(gè)完美的解決方案[Hu 2011]。因此,需要一種綜合的方法,將靜態(tài)和動(dòng)態(tài)分析結(jié)合起來,并獲得兩者的好處?;旌戏治鍪且环N結(jié)合靜態(tài)分析和動(dòng)態(tài)分析各自優(yōu)點(diǎn)的分析方法。例如,打包的惡意軟件可以首先通過一個(gè)動(dòng)態(tài)分析器,如PolyUnpack [Royal et al. 2006],通過比較惡意軟件實(shí)例的運(yùn)行時(shí)執(zhí)行與其靜態(tài)代碼模型,提取打包惡意軟件實(shí)例的隱藏代碼體。一旦隱藏代碼主體被發(fā)現(xiàn),靜態(tài)分析器就可以繼續(xù)分析惡意軟件。
4.4 其他新特征
也有一些研究使用文件內(nèi)容的語義來表示文件示例。例如,Christodorescu等[2005]提出了一種感知語義的惡意軟件檢測(cè)方法。在提出的框架中,使用模板描述惡意行為,模板是使用變量和符號(hào)常量的指令序列?;谔崛〉奶卣?,提出了一種基于語義感知的惡意軟件檢測(cè)匹配算法。
除了從文件內(nèi)容中提取的靜態(tài)和動(dòng)態(tài)特性之外,還有其他可以代表惡意軟件或良性文件的特性嗎?正如《圣經(jīng)》中所說:“人因其所結(jié)交的人而為人所知?!薄皩?shí)際上,不同文件樣本之間的關(guān)系可能意味著它們之間的相互依賴,可以提供關(guān)于它們的屬性和特征的關(guān)鍵信息[Ye et al. 2011];Tamersoy et al . 2014]。更準(zhǔn)確地說,一個(gè)文件的合法性可以通過分析它與其他標(biāo)記為(良性或惡意的)對(duì)等點(diǎn)的關(guān)系來推斷。例如,如果一個(gè)未知的文件總是與許多木馬程序共存,那么該文件很有可能是惡意的木馬程序-下載加載程序[Ye et al. 2011],可以從遠(yuǎn)程服務(wù)器下載并安裝多個(gè)不需要的應(yīng)用程序(例如,trojan, adware)。Ye等人將文件關(guān)系和文件內(nèi)容結(jié)合起來進(jìn)行惡意軟件檢測(cè)。特別是,他們提出的方法已經(jīng)被成功地整合到Comodo的反惡意軟件產(chǎn)品中[Ye et .2011]。最近,更多的商業(yè)反惡意軟件產(chǎn)品,包括賽門鐵克的AM產(chǎn)品[Nachenberg和Seshadri 2010]和微軟的Internet Explorer [Stokes et al. 2012]已經(jīng)開始使用文件內(nèi)容以外的特性來檢測(cè)惡意軟件:(1)賽門鐵克的AM產(chǎn)品通過分析文件-機(jī)器關(guān)系(Chau et al. 2011),通過對(duì)文件-機(jī)器關(guān)系的分析來判斷文件的聲譽(yù),并且還使用了文件關(guān)系圖[Tamersoy et al. 2014]檢測(cè)惡意軟件;(2)微軟的ie瀏覽器使用文件定位進(jìn)行惡意軟件檢測(cè)[Venzhega et al. 2013]。
表二總結(jié)了不同特征提取方法在惡意軟件檢測(cè)中的一些代表性研究。