來源:Detection of advanced persistent threat using machine-learning correlation analysis
高級(jí)持續(xù)性威脅(Advanced Persistent threat, APT)作為最嚴(yán)重的網(wǎng)絡(luò)攻擊類型之一,在全球范圍內(nèi)引起了廣泛關(guān)注。APT是指一種持續(xù)的、多階段的攻擊,目的是對(duì)系統(tǒng)進(jìn)行破壞,從目標(biāo)系統(tǒng)中獲取信息,具有造成重大損害和經(jīng)濟(jì)損失的可能性。APT的準(zhǔn)確檢測(cè)和預(yù)測(cè)是一個(gè)持續(xù)的挑戰(zhàn)。本文提出了一種新的基于機(jī)器學(xué)習(xí)的MLAPT系統(tǒng),該系統(tǒng)能夠系統(tǒng)地準(zhǔn)確、快速地檢測(cè)和預(yù)測(cè)APT攻擊。MLAPT經(jīng)過三個(gè)主要階段:(1)威脅檢測(cè),其中開發(fā)了八種方法來檢測(cè)各種APT步驟中使用的不同技術(shù)。這些方法的實(shí)際流量的實(shí)現(xiàn)和驗(yàn)證是對(duì)當(dāng)前研究機(jī)構(gòu)的重要貢獻(xiàn);(2)預(yù)警關(guān)聯(lián),設(shè)計(jì)關(guān)聯(lián)框架,將檢測(cè)方法的輸出鏈接起來,識(shí)別可能相關(guān)、屬于單一APT場(chǎng)景的預(yù)警;(3)攻擊預(yù)測(cè),根據(jù)關(guān)聯(lián)框架輸出,提出一種基于機(jī)器學(xué)習(xí)的預(yù)測(cè)模塊,由網(wǎng)絡(luò)安全團(tuán)隊(duì)用來確定早期預(yù)警的概率,從而發(fā)現(xiàn)一個(gè)完整的APT攻擊。對(duì)MLAPT進(jìn)行了實(shí)驗(yàn)評(píng)價(jià),該系統(tǒng)能夠?qū)PT進(jìn)行早期預(yù)測(cè),預(yù)測(cè)準(zhǔn)確率為84.8%。
一、介紹
網(wǎng)絡(luò)攻擊的數(shù)量、復(fù)雜性和多樣性不斷增加。這一趨勢(shì)目前正受到網(wǎng)絡(luò)戰(zhàn)和物聯(lián)網(wǎng)興起的推動(dòng)[1-3]。2015年網(wǎng)絡(luò)攻擊的年成本為3萬億美元,到2021年預(yù)計(jì)將增加到6萬億美元以上。這一高昂的成本為研究和投資開發(fā)新的網(wǎng)絡(luò)攻擊防御方法和技術(shù)帶來了極大的興趣[5-8]。雖然病毒掃描器、防火墻和入侵檢測(cè)和預(yù)防系統(tǒng)(IDPSs)已經(jīng)能夠檢測(cè)和預(yù)防許多網(wǎng)絡(luò)攻擊,但網(wǎng)絡(luò)犯罪分子反過來開發(fā)了更先進(jìn)的方法和技術(shù)來入侵目標(biāo)的網(wǎng)絡(luò)并利用其資源,目標(biāo)既有有線通信,也有無線通信[9,10]。此外,許多針對(duì)網(wǎng)絡(luò)攻擊的防御方法都認(rèn)為這些攻擊是針對(duì)隨機(jī)網(wǎng)絡(luò)的,因此它們假設(shè)如果公司的網(wǎng)絡(luò)受到良好的保護(hù),攻擊者可以投降并轉(zhuǎn)移到更容易的目標(biāo)上。然而,根據(jù)Trend Micro[11]的一份技術(shù)報(bào)告,隨著有針對(duì)性攻擊、高級(jí)持續(xù)性威脅(APTs)的興起,這種假設(shè)不再成立。在APTs中,網(wǎng)絡(luò)罪犯和黑客都將目標(biāo)鎖定在特定的組織,并持續(xù)攻擊,直到他們實(shí)現(xiàn)目標(biāo)。
APT攻擊是針對(duì)特定組織的持續(xù)的、有針對(duì)性的攻擊,通過幾個(gè)步驟[12]執(zhí)行。APT的主要目的是進(jìn)行間諜活動(dòng),然后進(jìn)行數(shù)據(jù)泄露。因此,APT被認(rèn)為是一種新的、更復(fù)雜的多步攻擊。這些apt對(duì)當(dāng)前的檢測(cè)方法提出了挑戰(zhàn),因?yàn)樗鼈兪褂昧讼冗M(jìn)的技術(shù)并利用了未知的漏洞。此外,APT攻擊成功造成的經(jīng)濟(jì)損失也十分顯著。攻擊的潛在成本是投資于入侵檢測(cè)和預(yù)防系統(tǒng)[13]的主要?jiǎng)訖C(jī)。APTs是目前對(duì)企業(yè)和政府最嚴(yán)重的威脅之一。
APT檢測(cè)領(lǐng)域的研究大多集中于分析已識(shí)別的APTs[15-21],或者檢測(cè)使用特定惡意軟件[22]片段的特定APT。一些工作試圖檢測(cè)新的APT攻擊。但在實(shí)時(shí)檢測(cè)[23]、檢測(cè)所有APT攻擊步驟[23]、平衡假陽性和假陰性率[22]、關(guān)聯(lián)長(zhǎng)時(shí)間事件等方面存在嚴(yán)重缺陷[24,25]。現(xiàn)有的工作令人鼓舞。然而,準(zhǔn)確、及時(shí)地檢測(cè)APT仍然是一個(gè)挑戰(zhàn)。
在本項(xiàng)工作中,我們開發(fā)了一種基于機(jī)器學(xué)習(xí)的新型系統(tǒng)MLAPT,該系統(tǒng)能夠全面、準(zhǔn)確、快速地檢測(cè)和預(yù)測(cè)APT攻擊,為入侵檢測(cè)系統(tǒng)(IDS)領(lǐng)域做出了重要貢獻(xiàn)。MLAPT主要分為三個(gè)階段:威脅檢測(cè)、預(yù)警關(guān)聯(lián)和攻擊預(yù)測(cè),其主要貢獻(xiàn)包括:
威脅檢測(cè):第一階段的目標(biāo)是在多步APT攻擊中檢測(cè)威脅。我們已經(jīng)開發(fā)了8種方法/模塊來檢測(cè)APT攻擊步驟中使用的各種攻擊。其中包括偽裝的exe文件檢測(cè)(DeFD)、惡意文件哈希檢測(cè)(MFHD)、惡意域名檢測(cè)(MDND)、惡意IP地址檢測(cè)(MIPD)、惡意SSL證書檢測(cè)(MSSLD)、域通量檢測(cè)(DFD)、掃描檢測(cè)(SD)和Tor連接檢測(cè)(TorCD)。這個(gè)階段的輸出是警報(bào),也稱為事件,由各個(gè)模塊觸發(fā)。所有的方法都使用真實(shí)的網(wǎng)絡(luò)流量進(jìn)行了評(píng)估。
警報(bào)關(guān)聯(lián):警報(bào)關(guān)聯(lián)的第二階段打算將第一階段生成的警報(bào)與APT攻擊場(chǎng)景關(guān)聯(lián)起來。利用相關(guān)框架的主要目的是降低MLAPT檢測(cè)系統(tǒng)的假陽性率。這一階段的流程經(jīng)歷三個(gè)主要步驟:警報(bào)篩選(AF),以識(shí)別冗余或重復(fù)的警報(bào);警報(bào)聚類(AC),它們很可能屬于同一個(gè)APT攻擊場(chǎng)景;和關(guān)聯(lián)索引(CI),以評(píng)估每個(gè)聚類警報(bào)之間的關(guān)聯(lián)程度。
攻擊預(yù)測(cè):最后根據(jù)監(jiān)控網(wǎng)絡(luò)的歷史記錄,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于機(jī)器學(xué)習(xí)的預(yù)測(cè)模塊(PM)。網(wǎng)絡(luò)安全團(tuán)隊(duì)可以使用這個(gè)模塊來確定早期警報(bào)的概率,從而發(fā)現(xiàn)一個(gè)完整的APT攻擊。
提出的MLAPT系統(tǒng)能夠?qū)崟r(shí)處理和分析網(wǎng)絡(luò)流量,而不需要存儲(chǔ)數(shù)據(jù),使APT攻擊的早期預(yù)測(cè)成為可能,從而在攻擊完成生命周期之前做出適當(dāng)及時(shí)的響應(yīng)。
2. 相關(guān)工作
APT檢測(cè)是當(dāng)前入侵檢測(cè)系統(tǒng)(IDSs)面臨的一個(gè)挑戰(zhàn),針對(duì)這類多階段攻擊已經(jīng)進(jìn)行了大量的研究。表1描述了當(dāng)前APT檢測(cè)系統(tǒng),并指出了它們的局限性。
TerminAPTor,描述一個(gè)合適的APT探測(cè)器,在[26]。該檢測(cè)器使用信息流跟蹤來查找APT生命周期內(nèi)觸發(fā)的基本攻擊之間的鏈接。TerminAPTor取決于一個(gè)代理,它可以是一個(gè)標(biāo)準(zhǔn)的入侵檢測(cè)系統(tǒng),檢測(cè)這些基本攻擊。作者僅通過模擬兩種APT場(chǎng)景來評(píng)估TerminAPTor,并證明了APT檢測(cè)器需要通過過濾誤報(bào)來改進(jìn)。
介紹了一種基于C&C域檢測(cè)的APT檢測(cè)系統(tǒng)。本文分析了C&C通信的特點(diǎn),提出了C&C域的訪問是獨(dú)立的,而合法域的訪問是相互關(guān)聯(lián)的。盡管在公共數(shù)據(jù)集上驗(yàn)證該檢測(cè)系統(tǒng)取得了顯著的效果,但作者提到,當(dāng)受感染主機(jī)連接到C&C域,而用戶正在上網(wǎng)時(shí),該檢測(cè)很容易被逃避。此外,由于本系統(tǒng)僅檢測(cè)APT生命周期的一個(gè)階段,因此缺少對(duì)C&C域的檢測(cè)導(dǎo)致APT檢測(cè)失敗。
在[28]中探索了一種基于魚叉式釣魚檢測(cè)的APT檢測(cè)方法。這種方法依賴于數(shù)學(xué)和計(jì)算分析來過濾垃圾郵件。標(biāo)記被認(rèn)為是一組單詞和字符,如(點(diǎn)擊這里,免費(fèi),偉哥,副本),應(yīng)該為檢測(cè)算法定義,以區(qū)分合法和垃圾郵件。然而,魚叉式釣魚郵件可能不包括算法過程中所需要的任何符號(hào)。此外,APT檢測(cè)依賴于一個(gè)步驟,當(dāng)缺少該步驟時(shí),系統(tǒng)會(huì)失敗。
統(tǒng)計(jì)APT探測(cè)器,類似于TerminAPTor探測(cè)器,由[29]提出。本系統(tǒng)認(rèn)為APT有交付、利用、安裝、C&C和行動(dòng)五種狀態(tài);并且在每個(gè)狀態(tài)下進(jìn)行若干活動(dòng)。每個(gè)狀態(tài)中生成的事件都以統(tǒng)計(jì)方式相關(guān)聯(lián)。該系統(tǒng)的建立和維護(hù)需要大量的專家知識(shí)。
在[30]中提出了一種基于主動(dòng)學(xué)習(xí)的惡意pdf檢測(cè)框架。這些惡意pdf可以在APT的早期步驟中使用,以獲得入口點(diǎn)。系統(tǒng)收集通過網(wǎng)絡(luò)傳輸?shù)乃衟df文件,然后根據(jù)白名單、信譽(yù)系統(tǒng)和防病毒簽名庫(kù),通過“已知文件模塊”對(duì)所有已知的良性和惡意文件進(jìn)行過濾。接下來,將檢查其余“未知文件”作為可行PDF文件的兼容性。這種方法只檢測(cè)APT生命周期的一個(gè)步驟。
在[31]中提出了一種基于數(shù)據(jù)泄漏預(yù)防的方法。該方法重點(diǎn)檢測(cè)APT的最后一個(gè)步驟即數(shù)據(jù)溢出。利用DLP算法對(duì)數(shù)據(jù)流量進(jìn)行處理,檢測(cè)數(shù)據(jù)泄漏,根據(jù)泄漏特征生成“指紋”。該系統(tǒng)利用外部網(wǎng)絡(luò)反情報(bào)(CCI)傳感器來跟蹤泄漏數(shù)據(jù)的位置或路徑。該方法僅檢測(cè)APT的一個(gè)步驟,即數(shù)據(jù)泄露。此外,CCI分析單元需要等待來自傳感器的信息,無法實(shí)現(xiàn)實(shí)時(shí)檢測(cè)。此外,CCI傳感器不能保證能夠提供泄漏數(shù)據(jù)指紋所需的信息。這種方法還引入了隱私問題,CCI中的參與者可以訪問系統(tǒng)的所有用戶存儲(chǔ)和傳輸?shù)臄?shù)據(jù)。
在[23]中給出了一個(gè)工作原型SPuNge。該方法依賴于主機(jī)端收集的數(shù)據(jù),旨在檢測(cè)可能的APT攻擊。SPuNge經(jīng)歷了兩個(gè)主要階段,第一個(gè)階段是對(duì)檢測(cè)到的惡意url進(jìn)行分析。這些url可以通過主機(jī)的計(jì)算機(jī)通過HTTP與Internet瀏覽器連接,也可以通過安裝在受感染計(jì)算機(jī)上的惡意軟件連接。然后確定顯示類似活動(dòng)的計(jì)算機(jī)。本系統(tǒng)依賴于檢測(cè)APT攻擊的一個(gè)活動(dòng),即惡意URL連接,而不考慮APT的其他活動(dòng)。也就是說,如果檢測(cè)系統(tǒng)遺漏了惡意URL連接,將無法檢測(cè)到整個(gè)APT場(chǎng)景。此外,系統(tǒng)不能實(shí)現(xiàn)實(shí)時(shí)檢測(cè)。
[32]解釋了APT檢測(cè)的基于上下文的框架。該框架基于將APT建模為攻擊金字塔,金字塔的頂部表示攻擊目標(biāo),側(cè)向平面表示APT生命周期所涉及的環(huán)境。這個(gè)檢測(cè)框架需要大量的專家知識(shí)來建立和維護(hù)。
最后,現(xiàn)有APT檢測(cè)系統(tǒng)在實(shí)現(xiàn)實(shí)時(shí)檢測(cè)、假陽性率與假陰性率之間的平衡以及長(zhǎng)時(shí)間事件關(guān)聯(lián)等方面存在嚴(yán)重缺陷。針對(duì)這些不足,本文提出了一種新的APT檢測(cè)和預(yù)測(cè)方法。
3.一種基于關(guān)聯(lián)的APT實(shí)時(shí)檢測(cè)與預(yù)測(cè)系統(tǒng)
3.1 設(shè)計(jì)原理
APTs是多步驟攻擊,因此有效的檢測(cè)應(yīng)該通過檢測(cè)APT生命周期每個(gè)階段所使用的技術(shù)。應(yīng)該開發(fā)檢測(cè)模塊來檢測(cè)APT攻擊步驟中最常用的技術(shù)。
然而,檢測(cè)APT技術(shù)本身的一個(gè)階段并不意味著檢測(cè)APT攻擊。即使單個(gè)模塊警報(bào)指示了一種可能用于APT攻擊的技術(shù),但是這種技術(shù)也可以用于其他類型的攻擊,甚至可以是良性的攻擊。例如,用于APT攻擊的域流、端口掃描和惡意C&C通信,也可以用于僵尸網(wǎng)絡(luò)攻擊[33]。此外,Tor網(wǎng)絡(luò)連接在APT攻擊中用于數(shù)據(jù)外泄,也可以合法使用,保護(hù)用戶流量[34]的機(jī)密性。因此,這些檢測(cè)模塊單獨(dú)是無效的,應(yīng)該融合它們的信息來構(gòu)建關(guān)于APT攻擊的完整圖像。因此,需要建立一個(gè)關(guān)聯(lián)框架來鏈接檢測(cè)模塊的輸出,降低檢測(cè)系統(tǒng)的假陽性率。
在APT攻擊的早期階段對(duì)其進(jìn)行預(yù)測(cè),可以最大限度地減少攻擊造成的損失,防止攻擊者達(dá)到數(shù)據(jù)泄露的目的。利用相關(guān)框架輸出的歷史記錄,機(jī)器學(xué)習(xí)算法可以用來訓(xùn)練預(yù)測(cè)模型。由于預(yù)測(cè)模型的目的是對(duì)關(guān)聯(lián)框架的預(yù)警進(jìn)行分類,因此需要選擇分類算法對(duì)模型進(jìn)行訓(xùn)練。
3.2 MLAPT架構(gòu)
基于設(shè)計(jì)原理,本文提出的系統(tǒng)架構(gòu)如圖1所示。MLAPT經(jīng)過三個(gè)主要階段:威脅檢測(cè)、警報(bào)關(guān)聯(lián)和攻擊預(yù)測(cè)。
首先,對(duì)網(wǎng)絡(luò)流量進(jìn)行掃描和處理,以檢測(cè)APT生命周期中可能使用的技術(shù)。為此,開發(fā)了8個(gè)檢測(cè)模塊;每個(gè)模塊實(shí)現(xiàn)一個(gè)方法來檢測(cè)APT攻擊步驟中使用的一種技術(shù),并且它獨(dú)立于其他模塊。MLAPT實(shí)現(xiàn)了8個(gè)模塊,稍后在3.3節(jié)中介紹,用于檢測(cè)APT生命周期中最常用的技術(shù)。這個(gè)階段的輸出是警報(bào),也稱為事件,由各個(gè)模塊觸發(fā)。
然后,各個(gè)檢測(cè)模塊發(fā)出的警報(bào)被反饋到相關(guān)框架。關(guān)聯(lián)框架的目的是發(fā)現(xiàn)警報(bào)可能是相關(guān)的,屬于一個(gè)APT攻擊場(chǎng)景。此階段的流程經(jīng)歷三個(gè)主要步驟:警報(bào)篩選器來識(shí)別冗余或重復(fù)的警報(bào);最有可能屬于同一APT攻擊場(chǎng)景的警報(bào)集群;和關(guān)聯(lián)索引,以評(píng)估每個(gè)集群警報(bào)之間的關(guān)聯(lián)程度。
在最后階段,網(wǎng)絡(luò)安全團(tuán)隊(duì)使用一個(gè)基于機(jī)器學(xué)習(xí)的預(yù)測(cè)模塊來確定早期警報(bào)的概率,從而發(fā)現(xiàn)一個(gè)完整的APT攻擊。這使得網(wǎng)絡(luò)安全團(tuán)隊(duì)能夠在其早期步驟中預(yù)測(cè)APT攻擊,并在攻擊完成之前應(yīng)用所需的程序來阻止攻擊,并將損害最小化。APT的檢測(cè)不同于預(yù)測(cè)。當(dāng)APT的兩個(gè)或多個(gè)步驟相關(guān)時(shí),可以進(jìn)行檢測(cè)。但是,APT的前兩個(gè)步驟相關(guān)聯(lián)后,可以實(shí)現(xiàn)預(yù)測(cè)。檢測(cè)模塊已在[35-42]中提出,本文主要研究相關(guān)框架和預(yù)測(cè)模塊。
3.3 MLAPT檢測(cè)模塊
考慮APT步驟,表2給出了每個(gè)APT步驟的MLAPT檢測(cè)模塊。這些模塊有:
檢測(cè)偽裝的exe文件(DeFD):這個(gè)模塊檢測(cè)通信連接中偽裝的exe文件。換句話說,它檢測(cè)文件的內(nèi)容是否是exe而擴(kuò)展名不是exe。處理網(wǎng)絡(luò)流量,分析所有通信連接,過濾通過連接傳輸時(shí)識(shí)別的所有exe文件。此篩選基于文件內(nèi)容。接下來,應(yīng)該檢查文件名擴(kuò)展名,以決定是否對(duì)偽裝的exe文件檢測(cè)[35]發(fā)出警報(bào)。
惡意文件哈希檢測(cè)(MFHD):該模塊檢測(cè)網(wǎng)絡(luò)主機(jī)下載的任何惡意文件。它基于惡意文件散列的黑名單。處理網(wǎng)絡(luò)流量,分析所有連接,并為在連接上傳輸時(shí)標(biāo)識(shí)的每個(gè)新文件計(jì)算MD5、SHA1和SHA256散列。然后將計(jì)算的散列與黑名單[36]匹配。
惡意域名檢測(cè)(MDND):此模塊用于檢測(cè)到惡意域名的任何連接。它是基于惡意域名的黑名單。過濾DNS流量,分析所有DNS請(qǐng)求,并將查詢與黑名單[37]匹配。
惡意IP地址檢測(cè)(MIPD):該模塊檢測(cè)受感染主機(jī)和C&C服務(wù)器之間的任何連接。該檢測(cè)基于C&C服務(wù)器的惡意ip黑名單。MIPD處理網(wǎng)絡(luò)流量,以在源IP地址和目標(biāo)IP地址中搜索與IP黑名單[38]中的每個(gè)連接的匹配。
惡意SSL證書檢測(cè)(MSSLD):該模塊基于惡意SSL證書黑名單檢測(cè)C&C通信。這個(gè)黑名單包括兩種形式的SSL證書,SHA1指紋和serial & subject,它們與惡意軟件和惡意活動(dòng)有關(guān)。處理網(wǎng)絡(luò)流量并過濾所有安全連接。然后將每個(gè)安全連接的SSL證書與SSL證書黑名單[39]匹配。
域通量檢測(cè)(DFD):該模塊檢測(cè)算法生成的域通量,其中受感染的主機(jī)查詢存在大量域,而所有者只需注冊(cè)一個(gè)域。這導(dǎo)致許多DNS查詢失敗。DFD利用DNS查詢失敗來檢測(cè)域通量攻擊。處理網(wǎng)絡(luò)流量,特別是DNS流量。對(duì)所有DNS查詢失敗進(jìn)行分析,并對(duì)來自相同IP地址的DNS查詢失敗設(shè)置閾值,以檢測(cè)域通量攻擊并識(shí)別受感染主機(jī)[40]。
掃描檢測(cè)(SD): SD模塊檢測(cè)端口掃描攻擊,目的是識(shí)別值得注意的服務(wù)器和服務(wù),以便于未來的數(shù)據(jù)利用。SD基于跟蹤所有失敗的連接嘗試,并在特定的時(shí)間間隔內(nèi)為這些失敗的嘗試設(shè)置一個(gè)閾值,以檢測(cè)掃描攻擊并識(shí)別受感染的主機(jī)[41]。
Tor連接檢測(cè)(TorCD):這個(gè)模塊檢測(cè)到與Tor網(wǎng)絡(luò)的任何連接。它基于公開發(fā)布的Tor服務(wù)器列表。處理網(wǎng)絡(luò)流量,并將每個(gè)連接的源和目標(biāo)IP地址與Tor服務(wù)器列表[42]匹配。