來源:A BENCHMARK API CALL DATASET FOR WINDOWS PE MALWARE CLASSIFICATION
摘要:在Windows操作系統(tǒng)中,使用操作系統(tǒng)API調(diào)用檢測pe類惡意軟件是一個很有前途的任務(wù)。該任務(wù)的官方定義是在隔離的沙箱環(huán)境中運行惡意軟件,記錄使用Windows操作系統(tǒng)進行的API調(diào)用,并對這些調(diào)用進行順序分析。在這里,我們在一個隔離的沙箱環(huán)境中,分析了7107種不同的惡意軟件,它們屬于不同的科,如病毒、后門、木馬等,并將這些分析結(jié)果轉(zhuǎn)化為一種可以使用不同分類算法和方法的格式。首先,我們將解釋如何獲得惡意軟件,然后我們將解釋如何將這些軟件捆綁到家庭中。最后,我們將為使用我們創(chuàng)建的數(shù)據(jù)集的研究人員描述如何使用不同的計算方法執(zhí)行惡意軟件分類任務(wù)。
一、簡介
如今,計算機在日常生活中的使用越來越廣泛,因此,計算機攻擊者使用不同的方法攻擊計算機,或者將計算機用作武器。盡管每一個新的操作系統(tǒng)版本或更新都會使計算機變得更加安全,但是攻擊者可以使用不同的方法繞過這些安全組件。安全組件繞過方法最常見的場景是惡意軟件更改其源代碼和每個受感染的計算機[1]上的行為。分析人員用來檢測惡意軟件的所有方法都稱為惡意軟件分析。惡意軟件分析是一個非常廣泛的術(shù)語,包括許多階段。這些階段包括在不運行該軟件的情況下檢查可疑軟件的內(nèi)容,然后在隔離的環(huán)境中運行該軟件,檢查域名系統(tǒng)(DNS)解析請求,記錄注冊表的讀/寫、文件訪問和應(yīng)用程序編程接口(API)調(diào)用。
這些惡意軟件的行為有特定的目的。我們知道它們被用于許多不同的目的,例如防止系統(tǒng)工作、獲得對系統(tǒng)的未經(jīng)授權(quán)的訪問、獲取個人數(shù)據(jù)。為此,許多不同的平臺,如服務(wù)器、個人計算機、移動電話和相機都是目標(biāo)。如今,成為目標(biāo)的平臺越來越多。因此,為這些平臺開發(fā)的惡意軟件也有很大的不同。特別是在2018年前4個月,4000萬被認(rèn)為是新惡意軟件的威脅。
現(xiàn)在,有相當(dāng)多的時間花在保護從這個軟件和重大的預(yù)算支出。為了防范惡意軟件,許多產(chǎn)品在商業(yè)和學(xué)術(shù)上都有生產(chǎn)。在制造惡意軟件的攻擊者和試圖識別這些軟件的各方之間存在著嚴(yán)重的斗爭。因此,它提高了雙方的能力和能力。變形惡意軟件就是這種斗爭的結(jié)果。
變形惡意軟件是惡意軟件家族中最先進的成員。這些惡意軟件可以使用不同的方法,通過對自己的源代碼進行修改,使其結(jié)構(gòu)不斷變化。通過這種方式,他們更改代碼簽名。此外,這些軟件可能具有識別環(huán)境的能力,并通過在為惡意軟件分析[2]創(chuàng)建的環(huán)境中反分析操作來存儲它們的有害操作。變形惡意軟件很難檢測和分類,因為它們有這樣的能力。
考慮到惡意軟件的發(fā)展,可以看到它們經(jīng)歷了一個結(jié)構(gòu)上的完美演變。但是每個階段都有一個不變的特征。設(shè)計這些特性是為了以一種不受歡迎的方式獲益。也就是說,他們有一種有害的行為。所有的惡意軟件都應(yīng)該執(zhí)行一些操作來實現(xiàn)它們的目標(biāo)。假設(shè)一個惡意軟件在運行Windows操作系統(tǒng)的計算機上,這個惡意軟件需要使用操作系統(tǒng)提供的一些服務(wù)。獲取這些服務(wù)的整個請求集(Windows API調(diào)用)會創(chuàng)建惡意行為。如果能夠很好地分析惡意行為,就可以進行惡意軟件檢測和分類。
惡意軟件的檢測包括許多需要解決的設(shè)計問題,比如匯編代碼中不正確的跳轉(zhuǎn)op代碼、可移植可執(zhí)行文件中的.text塊中的隱藏內(nèi)容以及加密的內(nèi)容。在這項研究中,我們收集了當(dāng)前惡意軟件及其變體如WannaCry和宙斯,尤其是在Github的網(wǎng)站上,我們獲得了家庭類從VirusTotal站點通過尋找每個惡意軟件的散列值,最后,所有的行為都記錄下一只布谷鳥沙箱環(huán)境中運行它們。我們的觀點是,幾乎所有的惡意軟件都是通過各種各樣的方法來改變它們的行為,盡管它們會改變自己的行為,但是惡意軟件有一個目標(biāo),并且有一種實現(xiàn)這個目標(biāo)的路徑模式。此外,惡意軟件在行為變化期間進行不必要的API調(diào)用,由于模式是相同的,所以可以由要接受分析人員訓(xùn)練的模型檢測到。
惡意軟件分析可以定義為網(wǎng)絡(luò)安全的一個分支,它包括兩個階段:(1)靜態(tài)分析,(2)可疑文件的動態(tài)分析。靜態(tài)分析大致可以定義為檢查可執(zhí)行文件,而不需要在隔離的環(huán)境中執(zhí)行實際的指令。靜態(tài)分析的著名例子是MD5校驗和、反病毒檢測工具的識別、查找字符串。動態(tài)分析是指實際運行的惡意軟件,了解其功能,觀察其行為,識別技術(shù)指標(biāo)。行為記錄中最重要的部分是API調(diào)用序列。動態(tài)惡意軟件分析領(lǐng)域的研究大多集中在分類算法上。這些研究的關(guān)鍵問題是沒有基準(zhǔn)數(shù)據(jù)集來檢查所提出的模型[3]的效率。
本研究試圖獲得有助于解決這些研究空白的數(shù)據(jù)。本研究的具體目標(biāo)是建立一個針對Windows操作系統(tǒng)中各種惡意軟件API調(diào)用的基準(zhǔn)數(shù)據(jù)集。這是第一個研究進行變形惡意軟件構(gòu)建順序API調(diào)用。希望本研究將有助于更深入地了解變質(zhì)惡意軟件如何通過添加毫無意義的操作碼和它們自己的編譯器/匯編器部件來改變它們的行為(即API調(diào)用)。
我們在github網(wǎng)站1上共享了我們的數(shù)據(jù)集。我們相信這個數(shù)據(jù)集可以被研究基于行為的惡意軟件分析的研究人員使用。
2方法
該數(shù)據(jù)集包含關(guān)于基于已知惡意軟件執(zhí)行的cuckoo沙箱和基于MD5簽名的文件分類的原始數(shù)據(jù)。
Windows API是一個用于在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)用程序被請求創(chuàng)建一個文件時,它必須調(diào)用CreateFileA API[4]。應(yīng)用程序在系統(tǒng)上進行的API調(diào)用可以顯示該應(yīng)用程序的行為。因此,在動態(tài)惡意軟件分析中經(jīng)常使用API調(diào)用。本研究使用的數(shù)據(jù)集的基本條目是惡意軟件對操作系統(tǒng)的API調(diào)用。
2.2杜鵑沙箱
您可以檢查任何可疑的文件在幾分鐘內(nèi)與杜鵑。它提供了一個詳細的報告,顯示文件的行為是在一個隔離的和現(xiàn)實的環(huán)境中執(zhí)行的。如今,僅僅檢測并消除惡意軟件的影響是不夠的:了解惡意軟件的上下文、動機以及它們是如何工作的對于理解惡意軟件的目的是至關(guān)重要的。Cuckoo Sandbox是一款免費軟件,可以自動分析Windows、OS X、Linux和Android下的惡意文件。布谷鳥沙箱是一個先進的,高度模塊化和開放源碼的自動惡意軟件分析系統(tǒng),具有無限的應(yīng)用可能性。
在計算機安全中,沙箱是一種用于分離正在運行的程序的安全機制。通常沙箱用于來自第三方、供應(yīng)商、不可信用戶和不可信網(wǎng)站的未經(jīng)確認(rèn)的應(yīng)用程序。布谷鳥沙箱系統(tǒng)有兩個基本組成部分。第一個組件是開始分析惡意軟件的管理機器,將結(jié)果寫入數(shù)據(jù)庫,并為用戶提供web服務(wù)。第二個組件是運行惡意軟件的分析機器。分析機器可以是虛擬的或物理的機器[5]。
2.3 VirusTotal
VirusTotal是一項免費服務(wù),允許您在線分析文件或URL地址。許多殺毒應(yīng)用程序引擎和網(wǎng)站掃描器被用于分析。在防病毒應(yīng)用程序引擎中,被認(rèn)為是有害的文件將被單獨分析。每個防病毒應(yīng)用程序引擎都為可疑文件[6]創(chuàng)建一個分析報告。對于要分析的url,相同的分析用例是有效的。病毒分析服務(wù)包括一組非常大的分析。這樣既可以進行新的掃描,又可以獲得以前的分析信息。VirusTotal提供了一個服務(wù)接口(VirusTotal Public API v2.0),可以在不使用瀏覽器的情況下提供結(jié)果,也可以通過web瀏覽器提供結(jié)果。使用這個接口,可以自動分析文件/ URL地址。VirusTotal Public API將分析結(jié)果作為JSON對象提供。每個防病毒應(yīng)用程序引擎和web瀏覽器的分析結(jié)果分別得到。
2.4數(shù)據(jù)集創(chuàng)建
這里給出的數(shù)據(jù)集具有非常簡單的結(jié)構(gòu)。我們的數(shù)據(jù)集作為逗號分隔值(csv)文件提供,以增強互操作性,不需要特定的軟件或庫來讀取它們。使用git命令行實用程序從各種github頁面收集數(shù)據(jù)。這個數(shù)據(jù)集中的每一行都是Windows操作系統(tǒng)API調(diào)用的有序序列,這些調(diào)用屬于cuckoo沙箱環(huán)境中的分析。
創(chuàng)建數(shù)據(jù)集時遵循以下步驟。
1. 布谷鳥沙箱環(huán)境的準(zhǔn)備:在分析機上安裝Ubuntu操作系統(tǒng)。然后安裝了Cuckoo沙箱應(yīng)用程序。分析機作為虛擬服務(wù)器運行,惡意軟件將在其中運行和分析。此服務(wù)器上安裝Windows操作系統(tǒng)。防火墻已被關(guān)閉,而操作系統(tǒng)的更新也沒有應(yīng)用于防止惡意軟件在操作過程中遇到任何障礙。
2. 惡意軟件分析:超過20,000個惡意軟件運行在布谷鳥沙箱一次一個。應(yīng)用程序?qū)⒚總€惡意軟件的分析信息寫入MongoDB數(shù)據(jù)庫。從這些分析信息中,得到分析機上惡意軟件的行為數(shù)據(jù)。這些數(shù)據(jù)都是由Windows 7操作系統(tǒng)上的惡意軟件發(fā)出的Windows API調(diào)用請求。
3.處理Windows API調(diào)用:我們在數(shù)據(jù)集中觀察到342種API調(diào)用。這些API調(diào)用使用數(shù)字0-341進行索引,以創(chuàng)建新的數(shù)據(jù)集。我們使用了對惡意軟件的分析結(jié)果,該惡意軟件在這個數(shù)據(jù)集中至少有10個不同的API調(diào)用。
4. 使用Virus Total API分析惡意軟件:除了我們自己的分析,所有包含在數(shù)據(jù)集中的惡意軟件也通過請求Virus Total 進行分析。通過這種方法,每個惡意軟件都被許多不同的反病毒引擎分析并記錄它們的結(jié)果。
5. 分析結(jié)果處理:病毒總服務(wù)使用大約66種不同的防病毒應(yīng)用程序進行文件分析。利用我們通過該服務(wù)獲得的每次分析結(jié)果,我們確定了每個惡意軟件的家族。由于我們的觀察,我們發(fā)現(xiàn)不同的防病毒應(yīng)用程序?qū)ο嗤膼阂廛浖o出不同的結(jié)果。此外,還發(fā)現(xiàn)并不是所有的殺毒應(yīng)用程序都能檢測到一些惡意軟件。例如;惡意軟件文件時的散列值06 e76cf96c7c7a3a138324516af9fce8分析Virus Total 服務(wù),許多應(yīng)用表明該文件是一個worm,而某些應(yīng)用程序,如DrWeb表明它是一個木馬,和Babable應(yīng)用表明該可執(zhí)行的是一個干凈的文件。因此,在檢測每個惡意軟件類時;它屬于所有分析的多數(shù)類,這是公認(rèn)的。
在我們的研究中,我們將每個軟件產(chǎn)生的家族翻譯成8個主要的惡意軟件家族:特洛伊、后門、下載器、蠕蟲、間諜軟件廣告軟件、滴管、病毒。表1顯示了我們的數(shù)據(jù)集中屬于惡意軟件家族的惡意軟件數(shù)量。從表中可以看出,除廣告軟件外,其他惡意軟件家族的樣本數(shù)量非常接近。有這樣的區(qū)別,因為我們沒有從adware惡意軟件家族中發(fā)現(xiàn)太多的惡意軟件。
惡意軟件家族使用的操作系統(tǒng)api因其結(jié)構(gòu)而異。這些差異可以是API或API調(diào)用。惡意軟件還可以進行不必要的API調(diào)用來隱藏自己,并在每個客戶機上具有不同的簽名。創(chuàng)建不同簽名的主要原因是反病毒軟件根據(jù)其簽名檢測惡意軟件。
圖4顯示了屬于每個惡意軟件家族的Windows操作系統(tǒng)API調(diào)用的規(guī)范化值。
圖5顯示了每種惡意軟件類型的最相關(guān)的30個API調(diào)用heatmap。從圖中可以看出,每個惡意軟件家族都調(diào)用了一些api。惡意軟件在執(zhí)行其惡意活動時遵循預(yù)先定義的API調(diào)用序列。盡管不同的惡意軟件調(diào)用這些API的順序不同,但就惡意軟件家族而言,它們可能非常相似。由于這個原因,圖中顯示了5-10個api,它們之間高度相關(guān),特別是對于Dropper和蠕蟲惡意軟件家族。