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

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

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

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