楊頻,李孟銘
(四川大學網(wǎng)絡空間安全學院,成都610065)
為了應對快速發(fā)展的網(wǎng)絡安全威脅,網(wǎng)絡安全研究從業(yè)者以報告和記錄的形式在個人博客、公司網(wǎng)站上分享最新發(fā)生的網(wǎng)絡安全事件。這些報告既包含有所發(fā)生事件詳細經(jīng)過以及所發(fā)現(xiàn)的。通過收集、利用這些報告中所含有的IP、域名等低級IOC 數(shù)據(jù)和攻擊者所使用的攻擊技巧等高級IOC,各類網(wǎng)絡安全防御產(chǎn)品能夠做出及時調整以應對最新的網(wǎng)絡安全威脅。隨著網(wǎng)絡安全事件頻頻發(fā)生,相關事件報告也在不斷發(fā)布,以人工閱讀的方式提取報告中出現(xiàn)的攻擊技巧將給網(wǎng)絡安全人員帶來較大的工作量,同時又可能因為個人經(jīng)驗的不足引入難以預計的誤差。因此自動提取網(wǎng)絡安全事件報告中的攻擊技巧,成為開源威脅情報應用于網(wǎng)絡防御的重要技術手段。
根據(jù)MITRE 公司的定義[1],攻擊技巧是指攻擊者在網(wǎng)絡安全事件中所采取的方法、或者攻擊者嘗試獲取的目標信息。例如,APT28 組織在對美國民主黨總部進行攻擊的初始階段,通過魚叉鏈接的方式入侵目標網(wǎng)絡。在這個例子中,魚叉鏈接這種方法就是攻擊者所采用的攻擊技巧之一。目標信息被看作是一種攻擊技巧,是由于特定信息可以幫助網(wǎng)絡安全研究人員更好地理解攻擊者的行動目的。但是在網(wǎng)絡安全研究人員分享最新網(wǎng)絡安全事件的過程中,很少有安全人員會去參考現(xiàn)攻擊技巧標準,如CAPEC[2]、ATT&CK[1]等,只有少數(shù)報告會明確標注攻擊者所使用的攻擊技巧。
為了更好地利用網(wǎng)絡中現(xiàn)有的網(wǎng)絡安全事件報告,本文提出一種結合機器學習算法和自然語言處理技術的攻擊技巧提取方法。該方法將攻擊技巧提取問題視為一種有監(jiān)督的多標簽機器學習問題,首先使用隱藏語義分析算法從文章中提取關鍵詞組,再通過計算各關鍵詞詞組與各個攻擊技巧之間的關系獲得語義相似度,并將該語義相似度作為特征進行機器學習。經(jīng)實驗驗證,本文所提出的攻擊技巧提取方法準確率達到60%以上,該準確率在多標簽學習領域已屬于令人滿意的結果。深入實驗表明,本文所提出的方法在攻擊技巧提取方面,具有直接和間接的參考借鑒價值。
從網(wǎng)絡安全事件報告中提取攻擊技巧正成為學術界研究的熱點。
Husari 提出一種基于本體的方法來提取同攻擊技巧[3]。該方法首先通過人工方式構建若干攻擊技巧本體,然后從文本中通過關鍵字匹配的方式提取與本體相關的動詞作為候選詞,再通過計算語義相似度的方式判斷該候選詞是否為所定義的攻擊技巧。該方法所定義的攻擊技巧并沒有包含如目標信息類的、常常以名詞形式出現(xiàn)的攻擊技巧。Noor 等人也提出一種基于語義相似度的方法來從與APT 組織有關的報告中收集攻擊技巧進而進行攻擊事件溯源的方法[4]。該方法使用隱藏語義分析方法來發(fā)現(xiàn)一組與某一APT 組織相關的報告中,攻擊者常用的攻擊技巧,并利用提取的攻擊技巧做特征,進行機器學習,對發(fā)生的網(wǎng)絡安全事件進行溯源。
本文所提出的攻擊技巧提取方法,可以劃分為三個部分,包括文章主題提取、語義相似度計算和多標簽機器學習分類方法。首先,本文使用隱藏語義分析算法從與網(wǎng)絡安全事件有關的文章中提取文章主題詞;然后,使用語義相似度方法,計算文章主題詞與各個ATT&CK 標準之間的相似度;最后,將提取出的相似度作為文章特征,利用多標簽機器學習算法,提取文章所含有的攻擊技巧。
對文章中所含的網(wǎng)絡攻擊技巧進行提取,首先需要對網(wǎng)絡攻擊技巧進行明確定義。目前被學術界、產(chǎn)業(yè)界廣泛接受的網(wǎng)絡攻擊技巧包括美國國土安全部推出的CAPEC 標準和MITRE 公司推出的ATT&CK 標準。由于ATT&CK 提出時間較晚且更新頻次更快,更能適應當前網(wǎng)絡安全趨勢的發(fā)展,因此本文選取ATT&CK 作為攻擊技巧標準。
本文使用隱藏語義分析算法(Latent Semantic Analysis,LSA)提取文章的主題詞。LSA 算法是一種常用的主題詞提取算法,常被用于文本數(shù)據(jù)挖掘。LSA算法假設文章中語義相近的詞匯將分布于文章的同一位置,并根據(jù)該假設對一組文章的單詞進行聚類、過濾以獲得一組文章中所含有的不同類別的主題詞組合。在網(wǎng)絡安全事件相關的文章中,通常對攻擊者實施的某一手法、采用的某一工具的詳細描述集中在文章中的某一段落中,且語言力求正式、明確。為將LSA 算法應用于提取文章主題詞,本文作了如下假設:每一篇文章都是由主題相同或不同的“短文”組成,每一個段落是包含一個或多個主題的“短文”,文章的每一句話都是對于一個具體主題的描述。
基于LSA 算法和以上假設,本文應用LSA 算法從網(wǎng)絡安全事件文章中提取不同類別的主題詞。首先,針對一篇文章所包含的“短文”組構建詞頻矩陣。在詞頻矩陣中,每一行向量代表一個“短文”中出現(xiàn)的各個單詞的詞頻,每一列向量代表一個單詞在不同“短文”中出現(xiàn)的頻次。然后,對所構建的詞頻矩陣進行奇異值分解,獲得一個比原詞頻矩陣要小得多的語義空間,實現(xiàn)不同類別主題詞提取。如果一篇文章詳細描述攻擊者使用了基于附件的釣魚攻擊技巧,同時使用DNS隱蔽信道技術構建受害者與控制服務器之間的通信,則通過LSA 算法提取出的主題詞組可能包含有(“phishing”,“email”,“attachment”)和(“DNS”,“connection”,“C&C”)。
本文通過計算關鍵詞與各個攻擊技巧之間的語義相似度作為多標簽機器學習的特征向量。如前文所述,本文選取ATT&CK 標準作為攻擊技巧標準并通過構建詞頻矩陣和計算余弦相似度的方法獲取語義相似度。
本文從所選取的各個攻擊技巧標準集合中構建詞頻矩陣。首先,所有文本都按照Bag-of-Words 模型構建詞典,然后計算詞典中每個單詞在不同攻擊標準中出現(xiàn)的頻次,最后將所獲取的詞頻數(shù)值進行歸一化。所構建的詞頻矩陣,每一行代表不同攻擊技巧標準所含詞匯的詞頻特征,每一列代表某一詞匯在不同攻擊技巧中出現(xiàn)的歸一化頻次。在構建詞頻矩陣后,對待查詢的關鍵詞進行檢索,獲取該關鍵詞詞組的向量表示,并計算該向量與詞頻矩陣每一行之間的余弦相似度。
計算關鍵詞詞組所對應的不同攻擊技巧的向量和,即可求出該文章的特征向量。假設共有4 類攻擊技巧,基于隱藏語義分析方法從文章中提取出3 組關鍵詞,通過計算余弦相似度,可以獲取三組特征值,如(0.11,0.06,0.25,0.05),(0.02,0.12,0.04,0.31)和(0.13,0.05,0.11,0.21),則能夠代表該文章的特征向量可以表示為(0.26,0.23,0.40,0.57)。
在傳統(tǒng)的單一標簽文本分類任務種,一個文檔只與一個標簽相關。包括二分類機器學習和多分類機器學習都屬于單一標簽分類任務。在多標簽分類任務中,一個文檔可能同時屬于多個標簽類別。常用的多標簽任務解決策略包括BR(Binary Relevance)法和LP(Label Powerset)法。BR 法按照標簽數(shù)量構造相互獨立的二分類機器學習模型,而LP 法將每一個標簽組合視為一個標簽組,將問題轉換為針對標簽組的多分類問題。考慮到一次安全事件中出現(xiàn)的攻擊技巧組合的隨機性,本文選用BR 法作為解決多標簽分類問題的策略。
由于多標簽分類問題與單一標簽分類問題的不同,多標簽分類問題的分類評估方法也需要做出改變。針對多標簽問題,常用的評價標準包括分類準確率、回歸率和F-1 值。設D 為樣本總和,T 為第i 個樣本所含有的真正的標簽集合,P 代表通過多標簽分類模型預測出的標簽集合,則該模型分類結果的準確率(Precision)、回歸率(Recall)和F-1 值可以分別通過式(1-3)求得。

本文對所提出方法的有效性進行實驗驗證。實驗首先驗證不同多標簽問題解決策略下,使用多種機器學習算法取得的效果;然后研究多標簽機器學習分類模型對于不同類型攻擊技巧的分類效果。本實驗所使用的數(shù)據(jù)集合為SCU-iGroup 整理的Attack-Technique-Dataset 數(shù)據(jù)集[5]。該數(shù)據(jù)集包含有55 篇網(wǎng)絡安全事件相關的報告,共有10 種攻擊技巧,這10 類攻擊技巧包括信息混淆、附件形式的魚叉攻擊和用戶執(zhí)行等。
本文選擇支持向量機算法、樸素貝葉斯算法和決策樹作為基本的機器分類模型,將所選的三類分類器模型分別按照BR 策略和LP 策略構建多標簽分類模型。經(jīng)過10 折交叉驗證,結果如表1 所示。根據(jù)結果可知,BR 策略整體上優(yōu)于LP 策略,且在BR 策略下,支持向量機算法能夠獲取最好的F-1 值,決策樹算法能夠獲取最好的分類準確率。同時,本文所提出的方法整體接近在60%的分類準確率,在多標簽機器學習領域也屬于較好的結果。

表1 BR 策略與LP 策略對比
實驗選取BR 策略下的支持向量機算法,采用10折交叉驗證方法,統(tǒng)計各類攻擊技巧的提取結果,結果如表2 所示。結果表明,針對每類攻擊技巧,本文提出的方法有不同的表現(xiàn)效果。對于如魚叉攻擊類型的攻擊技巧,本方法能夠取得較好效果;但是對于如遠程文件復制以及用戶執(zhí)行這類的攻擊技巧卻沒有取得理想結果。這是由于報告的作者并沒有詳細地描寫攻擊者的此類行為,更多作者都忽略了此類攻擊技巧,限制LSA 算法的效果。

表2 不同攻擊技巧的提取效果
本文提出了基于多標簽機器學習的攻擊技巧提取方法,并通過實驗驗證了所提出算法的實現(xiàn)效果,實驗結果表明所提出的攻擊技巧提取方法可以用來從開源網(wǎng)絡安全事件報告中收集與攻擊者攻擊手法相關的信息,具有一定的應用價值。進一步,可以通過在關鍵詞提取、語義相似度計算和數(shù)據(jù)集標注方面進行深入探究,提升分類效果。