來源:A BENCHMARK API CALL DATASET FOR WINDOWS PE MALWARE CLASSIFICATION
摘要:在Windows操作系統(tǒng)中,使用操作系統(tǒng)API調(diào)用檢測(cè)pe類惡意軟件是一個(gè)很有前途的任務(wù)附较。該任務(wù)的官方定義是在隔離的沙箱環(huán)境中運(yùn)行惡意軟件,記錄使用Windows操作系統(tǒng)進(jìn)行的API調(diào)用,并對(duì)這些調(diào)用進(jìn)行順序分析杜耙。在這里成榜,我們?cè)谝粋€(gè)隔離的沙箱環(huán)境中桐智,分析了7107種不同的惡意軟件凌外,它們屬于不同的科辩尊,如病毒、后門趴乡、木馬等对省,并將這些分析結(jié)果轉(zhuǎn)化為一種可以使用不同分類算法和方法的格式蝗拿。首先晾捏,我們將解釋如何獲得惡意軟件,然后我們將解釋如何將這些軟件捆綁到家庭中哀托。最后惦辛,我們將為使用我們創(chuàng)建的數(shù)據(jù)集的研究人員描述如何使用不同的計(jì)算方法執(zhí)行惡意軟件分類任務(wù)。
一仓手、簡介
如今胖齐,計(jì)算機(jī)在日常生活中的使用越來越廣泛玻淑,因此,計(jì)算機(jī)攻擊者使用不同的方法攻擊計(jì)算機(jī)呀伙,或者將計(jì)算機(jī)用作武器补履。盡管每一個(gè)新的操作系統(tǒng)版本或更新都會(huì)使計(jì)算機(jī)變得更加安全,但是攻擊者可以使用不同的方法繞過這些安全組件剿另。安全組件繞過方法最常見的場(chǎng)景是惡意軟件更改其源代碼和每個(gè)受感染的計(jì)算機(jī)[1]上的行為箫锤。分析人員用來檢測(cè)惡意軟件的所有方法都稱為惡意軟件分析。惡意軟件分析是一個(gè)非常廣泛的術(shù)語雨女,包括許多階段谚攒。這些階段包括在不運(yùn)行該軟件的情況下檢查可疑軟件的內(nèi)容,然后在隔離的環(huán)境中運(yùn)行該軟件氛堕,檢查域名系統(tǒng)(DNS)解析請(qǐng)求馏臭,記錄注冊(cè)表的讀/寫、文件訪問和應(yīng)用程序編程接口(API)調(diào)用讼稚。
這些惡意軟件的行為有特定的目的括儒。我們知道它們被用于許多不同的目的,例如防止系統(tǒng)工作乱灵、獲得對(duì)系統(tǒng)的未經(jīng)授權(quán)的訪問塑崖、獲取個(gè)人數(shù)據(jù)。為此痛倚,許多不同的平臺(tái)规婆,如服務(wù)器、個(gè)人計(jì)算機(jī)蝉稳、移動(dòng)電話和相機(jī)都是目標(biāo)抒蚜。如今,成為目標(biāo)的平臺(tái)越來越多耘戚。因此嗡髓,為這些平臺(tái)開發(fā)的惡意軟件也有很大的不同。特別是在2018年前4個(gè)月收津,4000萬被認(rèn)為是新惡意軟件的威脅饿这。
現(xiàn)在,有相當(dāng)多的時(shí)間花在保護(hù)從這個(gè)軟件和重大的預(yù)算支出撞秋。為了防范惡意軟件长捧,許多產(chǎn)品在商業(yè)和學(xué)術(shù)上都有生產(chǎn)。在制造惡意軟件的攻擊者和試圖識(shí)別這些軟件的各方之間存在著嚴(yán)重的斗爭(zhēng)吻贿。因此串结,它提高了雙方的能力和能力。變形惡意軟件就是這種斗爭(zhēng)的結(jié)果。
變形惡意軟件是惡意軟件家族中最先進(jìn)的成員肌割。這些惡意軟件可以使用不同的方法卧蜓,通過對(duì)自己的源代碼進(jìn)行修改,使其結(jié)構(gòu)不斷變化把敞。通過這種方式弥奸,他們更改代碼簽名。此外奋早,這些軟件可能具有識(shí)別環(huán)境的能力其爵,并通過在為惡意軟件分析[2]創(chuàng)建的環(huán)境中反分析操作來存儲(chǔ)它們的有害操作。變形惡意軟件很難檢測(cè)和分類伸蚯,因?yàn)樗鼈冇羞@樣的能力摩渺。
考慮到惡意軟件的發(fā)展,可以看到它們經(jīng)歷了一個(gè)結(jié)構(gòu)上的完美演變剂邮。但是每個(gè)階段都有一個(gè)不變的特征摇幻。設(shè)計(jì)這些特性是為了以一種不受歡迎的方式獲益。也就是說挥萌,他們有一種有害的行為绰姻。所有的惡意軟件都應(yīng)該執(zhí)行一些操作來實(shí)現(xiàn)它們的目標(biāo)。假設(shè)一個(gè)惡意軟件在運(yùn)行Windows操作系統(tǒng)的計(jì)算機(jī)上引瀑,這個(gè)惡意軟件需要使用操作系統(tǒng)提供的一些服務(wù)狂芋。獲取這些服務(wù)的整個(gè)請(qǐng)求集(Windows API調(diào)用)會(huì)創(chuàng)建惡意行為。如果能夠很好地分析惡意行為憨栽,就可以進(jìn)行惡意軟件檢測(cè)和分類帜矾。
惡意軟件的檢測(cè)包括許多需要解決的設(shè)計(jì)問題,比如匯編代碼中不正確的跳轉(zhuǎn)op代碼屑柔、可移植可執(zhí)行文件中的.text塊中的隱藏內(nèi)容以及加密的內(nèi)容屡萤。在這項(xiàng)研究中,我們收集了當(dāng)前惡意軟件及其變體如WannaCry和宙斯,尤其是在Github的網(wǎng)站上,我們獲得了家庭類從VirusTotal站點(diǎn)通過尋找每個(gè)惡意軟件的散列值,最后,所有的行為都記錄下一只布谷鳥沙箱環(huán)境中運(yùn)行它們。我們的觀點(diǎn)是掸宛,幾乎所有的惡意軟件都是通過各種各樣的方法來改變它們的行為死陆,盡管它們會(huì)改變自己的行為,但是惡意軟件有一個(gè)目標(biāo)唧瘾,并且有一種實(shí)現(xiàn)這個(gè)目標(biāo)的路徑模式措译。此外,惡意軟件在行為變化期間進(jìn)行不必要的API調(diào)用饰序,由于模式是相同的领虹,所以可以由要接受分析人員訓(xùn)練的模型檢測(cè)到。
惡意軟件分析可以定義為網(wǎng)絡(luò)安全的一個(gè)分支菌羽,它包括兩個(gè)階段:(1)靜態(tài)分析掠械,(2)可疑文件的動(dòng)態(tài)分析。靜態(tài)分析大致可以定義為檢查可執(zhí)行文件注祖,而不需要在隔離的環(huán)境中執(zhí)行實(shí)際的指令猾蒂。靜態(tài)分析的著名例子是MD5校驗(yàn)和、反病毒檢測(cè)工具的識(shí)別是晨、查找字符串肚菠。動(dòng)態(tài)分析是指實(shí)際運(yùn)行的惡意軟件,了解其功能罩缴,觀察其行為蚊逢,識(shí)別技術(shù)指標(biāo)。行為記錄中最重要的部分是API調(diào)用序列箫章。動(dòng)態(tài)惡意軟件分析領(lǐng)域的研究大多集中在分類算法上烙荷。這些研究的關(guān)鍵問題是沒有基準(zhǔn)數(shù)據(jù)集來檢查所提出的模型[3]的效率。
本研究試圖獲得有助于解決這些研究空白的數(shù)據(jù)檬寂。本研究的具體目標(biāo)是建立一個(gè)針對(duì)Windows操作系統(tǒng)中各種惡意軟件API調(diào)用的基準(zhǔn)數(shù)據(jù)集终抽。這是第一個(gè)研究進(jìn)行變形惡意軟件構(gòu)建順序API調(diào)用。希望本研究將有助于更深入地了解變質(zhì)惡意軟件如何通過添加毫無意義的操作碼和它們自己的編譯器/匯編器部件來改變它們的行為(即API調(diào)用)桶至。
我們?cè)趃ithub網(wǎng)站1上共享了我們的數(shù)據(jù)集昼伴。我們相信這個(gè)數(shù)據(jù)集可以被研究基于行為的惡意軟件分析的研究人員使用。
2方法
該數(shù)據(jù)集包含關(guān)于基于已知惡意軟件執(zhí)行的cuckoo沙箱和基于MD5簽名的文件分類的原始數(shù)據(jù)镣屹。
Windows API是一個(gè)用于在Windows操作系統(tǒng)上開發(fā)應(yīng)用程序的接口圃郊。應(yīng)用程序開發(fā)人員可以使用Windows api與操作系統(tǒng)通信。因此女蜈,操作系統(tǒng)以API的形式提供了許多服務(wù)持舆。Windows應(yīng)用程序需要使用api來使用操作系統(tǒng)提供的函數(shù)。這些函數(shù)的使用被定義為API調(diào)用伪窖。應(yīng)用程序在執(zhí)行過程中多次調(diào)用API吏廉。例如,當(dāng)應(yīng)用程序被請(qǐng)求創(chuàng)建一個(gè)文件時(shí)惰许,它必須調(diào)用CreateFileA API[4]席覆。應(yīng)用程序在系統(tǒng)上進(jìn)行的API調(diào)用可以顯示該應(yīng)用程序的行為。因此汹买,在動(dòng)態(tài)惡意軟件分析中經(jīng)常使用API調(diào)用佩伤。本研究使用的數(shù)據(jù)集的基本條目是惡意軟件對(duì)操作系統(tǒng)的API調(diào)用。
2.2杜鵑沙箱
您可以檢查任何可疑的文件在幾分鐘內(nèi)與杜鵑晦毙。它提供了一個(gè)詳細(xì)的報(bào)告生巡,顯示文件的行為是在一個(gè)隔離的和現(xiàn)實(shí)的環(huán)境中執(zhí)行的。如今见妒,僅僅檢測(cè)并消除惡意軟件的影響是不夠的:了解惡意軟件的上下文孤荣、動(dòng)機(jī)以及它們是如何工作的對(duì)于理解惡意軟件的目的是至關(guān)重要的。Cuckoo Sandbox是一款免費(fèi)軟件,可以自動(dòng)分析Windows盐股、OS X钱豁、Linux和Android下的惡意文件。布谷鳥沙箱是一個(gè)先進(jìn)的疯汁,高度模塊化和開放源碼的自動(dòng)惡意軟件分析系統(tǒng)牲尺,具有無限的應(yīng)用可能性。
在計(jì)算機(jī)安全中幌蚊,沙箱是一種用于分離正在運(yùn)行的程序的安全機(jī)制谤碳。通常沙箱用于來自第三方、供應(yīng)商溢豆、不可信用戶和不可信網(wǎng)站的未經(jīng)確認(rèn)的應(yīng)用程序蜒简。布谷鳥沙箱系統(tǒng)有兩個(gè)基本組成部分。第一個(gè)組件是開始分析惡意軟件的管理機(jī)器漩仙,將結(jié)果寫入數(shù)據(jù)庫臭蚁,并為用戶提供web服務(wù)。第二個(gè)組件是運(yùn)行惡意軟件的分析機(jī)器讯赏。分析機(jī)器可以是虛擬的或物理的機(jī)器[5]垮兑。
2.3 VirusTotal
VirusTotal是一項(xiàng)免費(fèi)服務(wù),允許您在線分析文件或URL地址漱挎。許多殺毒應(yīng)用程序引擎和網(wǎng)站掃描器被用于分析系枪。在防病毒應(yīng)用程序引擎中,被認(rèn)為是有害的文件將被單獨(dú)分析磕谅。每個(gè)防病毒應(yīng)用程序引擎都為可疑文件[6]創(chuàng)建一個(gè)分析報(bào)告私爷。對(duì)于要分析的url,相同的分析用例是有效的膊夹。病毒分析服務(wù)包括一組非常大的分析衬浑。這樣既可以進(jìn)行新的掃描,又可以獲得以前的分析信息放刨。VirusTotal提供了一個(gè)服務(wù)接口(VirusTotal Public API v2.0)工秩,可以在不使用瀏覽器的情況下提供結(jié)果,也可以通過web瀏覽器提供結(jié)果进统。使用這個(gè)接口助币,可以自動(dòng)分析文件/ URL地址。VirusTotal Public API將分析結(jié)果作為JSON對(duì)象提供螟碎。每個(gè)防病毒應(yīng)用程序引擎和web瀏覽器的分析結(jié)果分別得到眉菱。
2.4數(shù)據(jù)集創(chuàng)建
這里給出的數(shù)據(jù)集具有非常簡單的結(jié)構(gòu)。我們的數(shù)據(jù)集作為逗號(hào)分隔值(csv)文件提供掉分,以增強(qiáng)互操作性俭缓,不需要特定的軟件或庫來讀取它們克伊。使用git命令行實(shí)用程序從各種github頁面收集數(shù)據(jù)。這個(gè)數(shù)據(jù)集中的每一行都是Windows操作系統(tǒng)API調(diào)用的有序序列华坦,這些調(diào)用屬于cuckoo沙箱環(huán)境中的分析愿吹。
創(chuàng)建數(shù)據(jù)集時(shí)遵循以下步驟。
1. 布谷鳥沙箱環(huán)境的準(zhǔn)備:在分析機(jī)上安裝Ubuntu操作系統(tǒng)季春。然后安裝了Cuckoo沙箱應(yīng)用程序。分析機(jī)作為虛擬服務(wù)器運(yùn)行消返,惡意軟件將在其中運(yùn)行和分析载弄。此服務(wù)器上安裝Windows操作系統(tǒng)。防火墻已被關(guān)閉撵颊,而操作系統(tǒng)的更新也沒有應(yīng)用于防止惡意軟件在操作過程中遇到任何障礙宇攻。
2. 惡意軟件分析:超過20,000個(gè)惡意軟件運(yùn)行在布谷鳥沙箱一次一個(gè)。應(yīng)用程序?qū)⒚總€(gè)惡意軟件的分析信息寫入MongoDB數(shù)據(jù)庫倡勇。從這些分析信息中逞刷,得到分析機(jī)上惡意軟件的行為數(shù)據(jù)。這些數(shù)據(jù)都是由Windows 7操作系統(tǒng)上的惡意軟件發(fā)出的Windows API調(diào)用請(qǐng)求妻熊。
3.處理Windows API調(diào)用:我們?cè)跀?shù)據(jù)集中觀察到342種API調(diào)用夸浅。這些API調(diào)用使用數(shù)字0-341進(jìn)行索引,以創(chuàng)建新的數(shù)據(jù)集扔役。我們使用了對(duì)惡意軟件的分析結(jié)果帆喇,該惡意軟件在這個(gè)數(shù)據(jù)集中至少有10個(gè)不同的API調(diào)用。
4. 使用Virus Total API分析惡意軟件:除了我們自己的分析亿胸,所有包含在數(shù)據(jù)集中的惡意軟件也通過請(qǐng)求Virus Total 進(jìn)行分析坯钦。通過這種方法,每個(gè)惡意軟件都被許多不同的反病毒引擎分析并記錄它們的結(jié)果侈玄。
5. 分析結(jié)果處理:病毒總服務(wù)使用大約66種不同的防病毒應(yīng)用程序進(jìn)行文件分析婉刀。利用我們通過該服務(wù)獲得的每次分析結(jié)果,我們確定了每個(gè)惡意軟件的家族序仙。由于我們的觀察突颊,我們發(fā)現(xiàn)不同的防病毒應(yīng)用程序?qū)ο嗤膼阂廛浖o出不同的結(jié)果。此外潘悼,還發(fā)現(xiàn)并不是所有的殺毒應(yīng)用程序都能檢測(cè)到一些惡意軟件洋丐。例如;惡意軟件文件時(shí)的散列值06 e76cf96c7c7a3a138324516af9fce8分析Virus Total 服務(wù),許多應(yīng)用表明該文件是一個(gè)worm,而某些應(yīng)用程序,如DrWeb表明它是一個(gè)木馬,和Babable應(yīng)用表明該可執(zhí)行的是一個(gè)干凈的文件。因此挥等,在檢測(cè)每個(gè)惡意軟件類時(shí);它屬于所有分析的多數(shù)類友绝,這是公認(rèn)的。
在我們的研究中肝劲,我們將每個(gè)軟件產(chǎn)生的家族翻譯成8個(gè)主要的惡意軟件家族:特洛伊迁客、后門郭宝、下載器、蠕蟲掷漱、間諜軟件廣告軟件粘室、滴管、病毒卜范。表1顯示了我們的數(shù)據(jù)集中屬于惡意軟件家族的惡意軟件數(shù)量衔统。從表中可以看出,除廣告軟件外海雪,其他惡意軟件家族的樣本數(shù)量非常接近锦爵。有這樣的區(qū)別,因?yàn)槲覀儧]有從adware惡意軟件家族中發(fā)現(xiàn)太多的惡意軟件奥裸。
惡意軟件家族使用的操作系統(tǒng)api因其結(jié)構(gòu)而異险掀。這些差異可以是API或API調(diào)用。惡意軟件還可以進(jìn)行不必要的API調(diào)用來隱藏自己湾宙,并在每個(gè)客戶機(jī)上具有不同的簽名樟氢。創(chuàng)建不同簽名的主要原因是反病毒軟件根據(jù)其簽名檢測(cè)惡意軟件。
圖4顯示了屬于每個(gè)惡意軟件家族的Windows操作系統(tǒng)API調(diào)用的規(guī)范化值侠鳄。
圖5顯示了每種惡意軟件類型的最相關(guān)的30個(gè)API調(diào)用heatmap埠啃。從圖中可以看出,每個(gè)惡意軟件家族都調(diào)用了一些api伟恶。惡意軟件在執(zhí)行其惡意活動(dòng)時(shí)遵循預(yù)先定義的API調(diào)用序列霸妹。盡管不同的惡意軟件調(diào)用這些API的順序不同,但就惡意軟件家族而言知押,它們可能非常相似叹螟。由于這個(gè)原因,圖中顯示了5-10個(gè)api台盯,它們之間高度相關(guān)罢绽,特別是對(duì)于Dropper和蠕蟲惡意軟件家族。