楊 望,曾 娟,王玉梅
(東南大學,江蘇 南京 211189)
作為當下網(wǎng)絡(luò)中最常見的安全威脅之一,惡意軟件侵害計算機系統(tǒng)所帶來的損失是巨大的。于是,各種惡意軟件分析和檢測方法被不斷提出,各種捕獲并描述惡意軟件高級別特征的方式更是不斷涌現(xiàn)。然而,同一惡意軟件在不同檢測工具的檢測結(jié)果輸出格式存在個性化差異且內(nèi)容交叉而互異,使得不同來源檢測信息的關(guān)聯(lián)性分析的難度增大。因此,基于關(guān)聯(lián)性分析能夠幫助分析人員更加全面地認識并了解惡意軟件等原因。本文旨在構(gòu)建一種對惡意軟件知識進行更通用的信息表示的模型,來更高效地分析惡意軟件。
為有效地分析和共享領(lǐng)域知識,Antoniou 等人[1]定義了“共享概念模型的明確的形式化規(guī)范說明”——本體。本體可獲取、描述和表示相關(guān)領(lǐng)域的知識,提供對該領(lǐng)域知識的共同理解,確定領(lǐng)域內(nèi)共同認可的詞匯,并從不同層次的形式化模式上給出這些詞匯和詞匯間相互關(guān)系的明確定義,為惡意軟件知識的信息通用表示提供了選擇。同時,MITRE 公司提出的惡意軟件屬性枚舉和表征(Malware Attribute Enumeration and Characterization,MAEC)[2]在描述惡意軟件特征時,能夠提供全面地、結(jié)構(gòu)化地獲取惡意軟件樣本詳細信息的方法。MAEC 基于自身支持的特性,有望成為惡意軟件分析工具的標準輸出格式,且目前已有若干工具支持直接或間接生成該格式的分析報告。由此可見,基于MAEC 進行惡意軟件知識抽取本體的構(gòu)建是本文可進行的研究方向。然而,由于MAEC 大量引用其他標準和模型作為外部參考,且檢測工具自動生成的MAEC 格式的報告中包含大量低級別的操作數(shù)據(jù)、缺乏高級語義數(shù)據(jù),因此,本文還考慮了不同來源惡意軟件信息的交互融合以及高級惡意軟件知識的獲取問題,在基于MAEC 標準并結(jié)合網(wǎng)絡(luò)本體語言(Web Ontology Language,OWL)[3]構(gòu)建本體模型的基礎(chǔ)上,接入了對手戰(zhàn)術(shù)、技術(shù)和通用知識庫(Adversarial Tactics,Techniques,and Common Knowledge,ATT&CK)等外部參考模型,并引入了語義網(wǎng)規(guī)則語言(Semantic Web Rule Language,SWRL)[4]推理規(guī)則,以支持從低級別的操作數(shù)據(jù)中推理抽取出高層次的惡意軟件知識。
本文將結(jié)合推理規(guī)則進行惡意軟件知識抽取本體模型的構(gòu)建。對部分相關(guān)本體、本體在惡意軟件檢測方面的應用以及相應推理規(guī)則的應用研究情況進行介紹。
Wang 等人[5]提出了一種用于管理和分析美國國家漏洞庫(National Vulnerability Database,NVD)中所有現(xiàn)有漏洞的本體-漏洞管理本體(Ontology for Vulnerability Management,OVM)。該本體結(jié)合了通用漏洞披露(Common Vulnerabilities&Exposures,CVE)、通用漏洞評分系統(tǒng)(Common Vulnerability Scoring System,CVSS)、共享攻擊模式的公共標準(Common Attack Pattern Enumeration and Classification,CAPEC)等通用標準,專門為漏洞分析和管理而設(shè)計,其捕獲和利用信息安全中的基本概念及其之間的關(guān)系,可以正式、準確地描述外部威脅和內(nèi)部漏洞的模式。同時,基于OVM 中預先加載的數(shù)據(jù)和規(guī)則,用戶可以檢索漏洞數(shù)據(jù)并對漏洞的原因和影響進行推理,為實現(xiàn)信息安全自動化提供了一條有用途徑。但在實際應用中,該本體的概念層次需要進一步擴展,且編寫推理規(guī)則用于網(wǎng)絡(luò)本體語言描述邏輯(Web Ontology Language Description Logic,OWL-DL)推理任務(wù)時,需要增強其推理能力。Syed 等人[6]提出的統(tǒng)一的網(wǎng)絡(luò)安全本體論(Unified Cybersecurity Ontology,UCO)整合了來自不同網(wǎng)絡(luò)安全系統(tǒng)的異構(gòu)數(shù)據(jù)和知識模式,以及用于信息共享和交換的最常用網(wǎng)絡(luò)安全標準,包括結(jié)構(gòu)化威脅信息表示標準(Structured Threat Information eXpression,STIX)方面的映射,以及對CVE、公共配置枚舉(The Common Configuration Enumeration,CCE)、CVSS、CAPEC、通過關(guān)聯(lián)上下文觀察理解情境和威脅(Situation and Threat Understanding by Correlating Contextual Observations,STUCCO)及killChain的引用。該本體是一個可以支持更廣泛和多樣安全用例的網(wǎng)絡(luò)安全本體,但其沒有使用OWL 構(gòu)詞,降低了自身的推理能力,且當與推理機一起使用時,該本體對域和范圍的限制還將導致錯誤的分類。
Gregio 等人[7-9]提出了一種可以模擬惡意軟件行為知識的本體論作為未來研究推理和檢測程序的基礎(chǔ)。他們定義了惡意軟件主要行為的層次結(jié)構(gòu),其中的每個主要行為都由一系列可疑活動組成,以根據(jù)表現(xiàn)出來的行為識別未知的惡意軟件。之后,該工作得到進一步擴展,提出了一種新穎的本體——惡意軟件行為本體(Malware Behavior Ontology,MBO)[10],用于解決現(xiàn)代復雜惡意軟件家族的檢測問題。該本體定義了可疑事件及其相關(guān)行為的類的層次結(jié)構(gòu),并為惡意程序主要行為中的每個可疑活動定義了推理規(guī)則和風險級別。通過在本體中應用SWRL 規(guī)則進行推理,使其能夠檢測現(xiàn)代復雜惡意軟件家族。實驗結(jié)果表明,基于本體的方法具有改善惡意軟件行為分析的潛力,但在性能上無法實時檢測到惡意軟件,且存在誤報與假陰性。
Ding 等人[11]將本體技術(shù)引入惡意軟件檢測領(lǐng)域,通過構(gòu)建一個惡意軟件知識庫來表示和存儲惡意軟件及其家族的行為知識,并使用本體推理技術(shù)來識別未知惡意軟件家族。該本體根據(jù)惡意軟件行為的組成分為惡意軟件類(行為的執(zhí)行者)和計算機系統(tǒng)組件類(行為的目標)兩類。作者使用數(shù)據(jù)挖掘算法挖掘同一惡意軟件家族的常見行為,通過定義與惡意軟件家族常見行為等效的EquivalentClass 公理來推斷惡意軟件所屬的家族。該本體結(jié)構(gòu)較為簡單,但只將惡意軟件行為描述為粗粒度行為(系統(tǒng)行為),無法提供有關(guān)病毒感染過程和惡意軟件破壞程度的準確信息。
陳劍鋒等人[12]將本體的概念引入了威脅情報體系之中,能夠?qū)崿F(xiàn)多個情報個體之間信息的共享,并指出這是數(shù)據(jù)驅(qū)動安全的發(fā)展趨勢。
陳光等人[13]采用基于推理規(guī)則進行知識推理的方式來補全知識圖譜知識,在其進行的知識圖譜推理實踐中,基于自定義的SWRL 推理規(guī)則,有效地實現(xiàn)了從低級傳感數(shù)據(jù)到高級系統(tǒng)工作知識的推理,以及系統(tǒng)狀態(tài)的自動感知和故障的推理判斷。
周亮等人[14]基于OWL 語言構(gòu)建了故障樹領(lǐng)域本體,然后將故障樹中事件之間的邏輯關(guān)系轉(zhuǎn)化成SWRL 規(guī)則語言,最后將故障樹領(lǐng)域本體和SWRL規(guī)則放入Jess 推理機中進行推理,能夠挖掘出故障樹中的隱含知識,但該本體制定的SWRL 規(guī)則僅用到簡單的邏輯與非關(guān)系,而構(gòu)建更為普遍使用的故障樹本體及相應的SWRL 規(guī)則還需要進行大量工作。
徐順航等人[15]基于OWL 語言構(gòu)建了面向智慧旅游的文物領(lǐng)域本體,通過將自定義的SWRL 推理規(guī)則加載到Pellet 推理機中完成基于語義的信息檢索,可根據(jù)用戶輸入的文物信息推理得到文物領(lǐng)域本體中的隱含知識反饋給用戶,以滿足用戶的潛在需求。孔令龍等人[16]構(gòu)建了一種智能家庭的本體模型,通過采集機器人服務(wù)系統(tǒng)的歷史信息和實時信息,并將歷史上下文信息轉(zhuǎn)換為SWRL 推理規(guī)則后,利用Jess 推理引擎結(jié)合實時的上下文信息與生成的規(guī)則庫的匹配,來實現(xiàn)機器人進行家庭服務(wù)的實時推理,進一步提高了機器人服務(wù)的智能性。
最后,通過對相關(guān)工作的研究,發(fā)現(xiàn)惡意軟件檢測大多依據(jù)行為進行惡意軟件程序分類,且目前的惡意軟件本體并不能涵蓋網(wǎng)絡(luò)威脅情報所需的所有信息,也無法正式表示收集到的領(lǐng)域?qū)I(yè)知識。而基于MAEC 語言構(gòu)建惡意軟件本體則可以全面而結(jié)構(gòu)化地表示惡意軟件特征,并進行惡意軟件信息的關(guān)聯(lián)分析。同時,將本體結(jié)合SWRL 推理規(guī)則,可以實現(xiàn)惡意軟件知識的推理,從提取到的低級別操作信息中推理出行為、能力等高級語義,進而可以為惡意軟件防御提供更多的有效信息。
在領(lǐng)域本體的構(gòu)建過程中,斯坦福大學醫(yī)學院開發(fā)的“七步法”[17]具有較高的參考價值。而根據(jù)“七步法”以及研究需求,本文需解決以下兩個主要問題。
在本文的研究過程中,本體屬性詞匯表主要是基于MAEC 官方文檔提供的惡意軟件特征詞匯建立的,但由于外部參考的存在,這些詞匯顯然是遠遠不夠的。因此,本文在此基礎(chǔ)上參考了其他共享標準定義的詞匯,對現(xiàn)有詞匯表進行擴充。其擴充來源如下:
(1)從Cuckoo 簽名庫中去掉安卓平臺和無行為信息的簽名類后剩余的330 個有效簽名類中提取的屬性詞匯;
(2)從ATT&CK 技術(shù)矩陣的222 個技術(shù)和12個Tactic 中提取的屬性詞匯;
(3)從Autoruns 實用程序中劃分的19 類自啟動項中提取的屬性詞匯;
(4)從本體通過technique_refs、capability_refs、family_refs、analysis_refs 等對象屬性關(guān)聯(lián)引用的實體類中提取的屬性詞匯。
在此過程中,由于不同標準的詞匯之間存在含義交叉與重疊的現(xiàn)象,因此,本文在處理過程中對重疊詞匯進行了合并,并對含義相近的詞匯建立了從屬關(guān)系,例如:
(1)persistence 詞匯存在于多個標準之中,因此,本文在建立詞匯表時將多個標準的該詞匯合并為一個詞匯,即persistence;
(2)多個標準中分別含有anti-behavioralanalysis、anti-emulation、anti-memory-forensics 和anti-vm 這些屬性詞匯,但由于它們含義相近又各自略有差異,因此,本文在處理過程中進行了歸類劃分,在它們之間建立起了從屬關(guān)系,即在本體屬性詞匯表中,以anti-behavioral-analysis 為父詞匯,而其他詞匯為該詞匯的子詞匯。
(3)最后,在MAEC 官方文檔的基礎(chǔ)上,本文又擴充了571 個behavior 屬性詞匯、71 個capability屬性詞匯和222 個external_reference 屬性詞匯。
本文在構(gòu)建本體模型的過程中,主要是基于Cuckoo 沙箱[18]獲取本體數(shù)據(jù)源。通過Cuckoo 沙箱獲取的惡意軟件分析報告轉(zhuǎn)換成的MAEC 報告包含大量低級別的動態(tài)操作信息,且對應實例數(shù)據(jù)基本沒有MAEC 高層語義數(shù)據(jù)。因此,本文采用本體推理的方式進一步挖掘?qū)嵗龜?shù)據(jù)中隱含的惡意軟件知識,并從中抽取相關(guān)高級語義。同時,根據(jù)對相關(guān)工作的研究,本文選擇使用SWRL 規(guī)則語言進行推理規(guī)則的制定。
目前,SWRL 推理規(guī)則的定義方式主要有根據(jù)專家經(jīng)驗進行編寫和根據(jù)外部輸入進行推理規(guī)則的自動提取兩種。這兩種方式都需要遵循“一條規(guī)則包含一個body 和一個head,當body 中所有條件均成立時,head 中的所有結(jié)論也必須成立,且head中的變量一定是要出現(xiàn)在body 中的”規(guī)則。而從現(xiàn)實條件出發(fā),基于對規(guī)則自定義的準確性與效率的需求,本文主要針對自動提取方式展開研究。
在實際推理規(guī)則自定義過程中,MAEC 本體推理邏輯上是由進行了敏感操作的低級實體推理出高級實體的,但在一些推理過程中,head 中的高級實體并未出現(xiàn)在body 中,例如:
可見,該條規(guī)則并不符合SWRL 語法。因此,為解決此問題,本文將head 中高級實體的實例寫入body 中,并根據(jù)name 屬性唯一地確定此行為實例。于是,經(jīng)過改寫,正確的SWRL 規(guī)則書寫如下:
最后,本文針對性地制定了如下SWRL 推理規(guī)則:
(1)每個Cuckoo 簽名文件的Signature 類對應一個MAEC behavior,其中推理規(guī)則的提取如圖1所示。同時,根據(jù)Signature 類的categories 字段還可對應得到MAEC capability。
圖1 從Cuckoo 簽名文件中提取SWRL 推理規(guī)則的映射推理關(guān)系
(2)每個ATT&CK技術(shù)對應一個MAEC behavior,推理規(guī)則的提取如圖2 所示。其中,MAEC behavior 實體實例的technique_refs 屬性由ATT&CK 技術(shù)的Technique ID 直接映射而來,而name 屬性則由att&ck_Technique ID 映射而來。同時,根據(jù)ATT&CK 技術(shù)所屬的Tactic 還可對應得到MAEC capability。
圖2 從ATT&CK 庫中提取SWRL 推理規(guī)則的映射推理關(guān)系
(3)每個被Autoruns 工具檢測到的自啟動條目均可推理出“persistence”能力屬性。
相較于目前存在的網(wǎng)絡(luò)安全領(lǐng)域本體,本文研究的MAEC 本體有其自身的獨特優(yōu)勢,且通過與SWRL 推理規(guī)則相結(jié)合實現(xiàn)語義推理,彌補了MAEC 格式報告中高級別惡意軟件知識的缺失。
根據(jù)“七步法”,本文在確定本體模型之后,首先根據(jù)MAEC 規(guī)范文檔運用自頂向下的方式定義了maec_package、maec_objects、observable_objects、external_reference、capability 和Process Tree Node 等MAEC Type 實體6 個大類,具體如表1 所示;其次,根據(jù)MAEC 文檔定義了類的338 個數(shù)據(jù)屬性和84 個對象屬性,并使用Protégé依據(jù)類及其相關(guān)的從屬子類以及相應的類的屬性進行本體構(gòu)建;再次,將獲取的本體數(shù)據(jù)導入模型進行實例創(chuàng)建;最后,依據(jù)2.2 節(jié)所述,為使自定義的推理規(guī)則滿足語法,本文又進一步擴充本體模型,進行了高級語義詞匯對應的高級語義實體的實例創(chuàng)建。
表1 MAEC 類型的含義及其相關(guān)信息
針對前文中提取出的推理規(guī)則,通過Jena 通用推理引擎加載自動提取的規(guī)則庫就可以對惡意軟件實例隱含的惡意軟件行為進行推理,而通過建立behavior 實例和capability 實例之間的映射關(guān)系等則能夠進一步推理出惡意軟件實例具有的能力及其技術(shù)手段。
編寫程序從2.2 節(jié)所述的3 個外部輸入源中自動提取推理規(guī)則,提取結(jié)果如表2 所示。
表2 自動提取SWRL 推理規(guī)則實驗結(jié)果
(1)在Cuckoo 簽名庫中按照前文所述5 個類別,共提取出851 條對惡意軟件行為進行推理的實用SWRL 規(guī)則,且其中有284 條使用了正則表達式,同時,根據(jù)Signature 類的名稱(即類別)還提取出了246 個behavior 實例和74 個capability 實例用于擴充MAEC 本體模型;
(2)針對ATT&CK 技術(shù)矩陣,通過爬取針對Windows 平臺的網(wǎng)頁數(shù)據(jù),共提取出40 個behavior實例和12 個capability 實例用于擴充MAEC 本體模型,而根據(jù)前文所述方法則自動生成了118 條針對behavior的推理規(guī)則(針對注冊表的規(guī)則40 條、針對實用程序的規(guī)則78 條),同時,通過ATT&CK技術(shù)矩陣能夠很方便地推導出每個behavior 實例與capability 屬性的映射關(guān)系;
(3)通過爬取Autoruns 實用程序的自啟動條目,自動生成了具有自啟動行為的推理規(guī)則158條,且其中9 條使用了正則表達式,而根據(jù)推理規(guī)則的自動提取,涉及的自啟動類可轉(zhuǎn)換得到15 個behavior 實例,且這些實例均具有“persistence”能力屬性。
在基于Cuckoo 沙箱獲取的本體數(shù)據(jù)源中,本文抽取了其中的1 047 個惡意樣本對應的MAEC 報告進行測試,經(jīng)過推理發(fā)現(xiàn),平均每份分析報告約可推理得到6 條behavior 實例以及4 條capability 實例,具體統(tǒng)計情況如表3 和表4 所示。
表3 測試樣本推理得到behavior 實例的情況
表4 測試樣本推理得到capability 實例的情況
通過結(jié)果可以看出,推理機能夠有效地抽取出惡意軟件中隱含的高級語義信息。
本文通過建立MAEC 本體模型結(jié)合SWRL 推理規(guī)則進行惡意軟件知識抽取的方法為相關(guān)研究工作提供了新思路,為惡意軟件檢測的關(guān)聯(lián)分析提供了更多的可能。一方面,本文在進行本體詞匯表的建立過程中吸收了源于多個標準的詞匯并進行了整合,實現(xiàn)了不同標準之間的詞匯共享;另一方面,本文在制定推理規(guī)則的過程中實現(xiàn)了有針對性的推理規(guī)則的自動提取,并建立了自己的推理規(guī)則庫,為低級別語義信息轉(zhuǎn)化為高級別語義信息提供了更多的便利。未來,相關(guān)工作將在以下3 個方面繼續(xù)展開:
(1)進一步研究實現(xiàn)本體屬性詞匯表的半自動化甚至是自動化的建立與擴充;
(2)在推理規(guī)則的自動提取方面展開進一步研究,以實現(xiàn)自動提取推理規(guī)則的普適性;
(3)在保證功能的情況下,進一步提高推理機的推理性能。