高級持續(xù)性威脅擁有著形式多變、持久化、對抗性與隱蔽性強等特點,是目前各大企業(yè)在威脅監(jiān)測方面所面臨的一項嚴(yán)峻挑戰(zhàn)。而AI技術(shù)的賦能,能夠使高級威脅檢測技術(shù)的檢測效率與準(zhǔn)確性大幅提升。在不久前的【T·Talk】系列技術(shù)分享活動的第十期中,我們特別邀請到了金睛云華技術(shù)總監(jiān)富吉祥為廣大聽眾分享如何利用AI技術(shù)解決傳統(tǒng)特征檢測技術(shù)難以解決的安全問題?!?span style="color: #333333;">T·Talk】也將本期分享的核心內(nèi)容進行了整理,希望能為大家?guī)硪恍﹩l(fā)。
?
高級威脅檢測技術(shù)挑戰(zhàn)
高級持續(xù)性威脅通常指有組織的團隊,針對特定目標(biāo),綜合利用其所了解的信息,構(gòu)造相應(yīng)的武器和攻擊手段,在長周期中對目標(biāo)進行持續(xù)滲透的網(wǎng)絡(luò)攻擊活動。攻擊鏈包括不同階段,例如掃描探測、嘗試攻擊、漏洞利用、木馬下載、遠(yuǎn)程控制、橫向滲透、行動收割。整個攻擊過程是復(fù)雜的,攻擊手段、攻擊武器與載荷是高明的。業(yè)內(nèi)通常將這類威脅定義為高級持續(xù)性威脅。
在高級持續(xù)性威脅的攻擊過程中,需要對攻擊手段進行檢測和發(fā)現(xiàn),以便對其進行響應(yīng)和處置。但目前傳統(tǒng)的特征檢測技術(shù),并沒有辦法很好地應(yīng)對其中的高級攻擊。傳統(tǒng)的攻防手段對抗過程,通常是在一個新的威脅產(chǎn)生后,防守方要想辦法獲得樣本,再基于樣本對其進行特征分析并識別威脅,最后更新到可以對威脅進行防御或檢測的網(wǎng)絡(luò)安全設(shè)備中,升級后具備檢測能力。
但在升級安全防護或檢測設(shè)備前,未知威脅存在防御真空期。此外,還有一些惡意代碼的變種,例如目前互聯(lián)網(wǎng)上有很多惡意樣本、木馬病毒。攻擊者會賦予樣本繞過防御手段或者檢測手段的能力。在這個過程中,攻擊者會改造樣本,把能被殺軟發(fā)現(xiàn)的特征隱藏或混淆,將樣本進行變種。在此之后,殺軟、文件哈希碼或特征碼就已經(jīng)無法再對其進行有效檢測了。
在整個攻擊鏈條的過程中,有些行為是容易被檢測引擎或不同手段發(fā)現(xiàn)的。但在過程中也會存在一些難以發(fā)現(xiàn)的隱藏部分,對攻擊過程的判斷同樣是非常重要的。例如目前很多的網(wǎng)絡(luò)攻擊已經(jīng)采用了加密手段,在整個網(wǎng)絡(luò)流量中,我們只能看到一些握手交互和證書信息。僅通過這些信息并沒有辦法判斷加密的流量載荷是否存在問題,以及是否潛藏木馬與惡意攻擊行為。
當(dāng)攻擊入侵成功之后,會與其命令控制服務(wù)器進行回聯(lián),以時刻保持通信的暢通,并接收攻擊者下一步的攻擊指令。防火墻是目前常見的網(wǎng)絡(luò)安全設(shè)備,它通常不會對DNS、HTTP、ICMP等常用協(xié)議進行攔截或者深度檢查。因此在上述的回連過程中,如果想去隱蔽的通信,使用標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議去進行命令與控制通信會是一種比較好的手段。
而惡意的加密代理會將整個會話過程完全加密。像比較常見的的洋蔥頭、暗網(wǎng)瀏覽器,可以隱蔽訪問行為和訪問的內(nèi)容。Open VPN也可以很好地將通信行為隱蔽掉。這些線索就是發(fā)現(xiàn)整個攻擊鏈條的關(guān)鍵。
人工智能技術(shù)在高級威脅檢測領(lǐng)域的實踐
網(wǎng)絡(luò)中的行為是通過協(xié)議進行交互的,訪問網(wǎng)站、發(fā)送消息或郵件,都會在網(wǎng)絡(luò)中產(chǎn)生雙向的交互行為,客戶端和要訪問的服務(wù)端,之間會有多輪的交互。在這個過程中,發(fā)送的請求信息通常比較少,網(wǎng)站端返回的信息則比較多。針對這一過程,我們可以將其可視化的呈現(xiàn)出來,并對網(wǎng)絡(luò)行為進行建模。
在木馬數(shù)據(jù)外泄的過程中,也涉及多輪的數(shù)據(jù)交互。這個過程中會話數(shù)據(jù)在時間和數(shù)據(jù)包大小上的分布,會形成一個顯性的模式。在對這個模式進行識別的過程中,需要想辦法去對整個流量的模式進行構(gòu)建。對此,可以通過人工智能建模的方法將這一模式學(xué)習(xí)下來。
現(xiàn)階段多應(yīng)用人工智能技術(shù),例如蘋果的siri語音識別。首先捕獲語音,然后將語音信號轉(zhuǎn)化成數(shù)字信號,再對其進行線性參數(shù)提取,目標(biāo)是要將其通過多維的數(shù)據(jù)形成特征向量。最后再交由人工智能算法對其進行建模。建立好模型后,就可以對訓(xùn)練過的語音進行有效識別。
同理,當(dāng)需要識別網(wǎng)絡(luò)流量模式時,也可以借助相似的過程。首先采集樣本,包括上行和下行這種雙向的網(wǎng)絡(luò)會話包,然后對其進行數(shù)字化,以解析數(shù)據(jù)包中的內(nèi)容。再通過不同方式,例如網(wǎng)絡(luò)層、傳輸層和應(yīng)用層的協(xié)議解析,解析其中的內(nèi)容。在這個過程中也可以對數(shù)據(jù)包進行統(tǒng)計,再使用預(yù)先調(diào)制好的算法對數(shù)據(jù)進行學(xué)習(xí),最后將其應(yīng)用到檢測和防御的網(wǎng)絡(luò)安全設(shè)備之中。
在上述過程中,首先需要關(guān)注的就是數(shù)據(jù)的來源?;ヂ?lián)網(wǎng)上很多木馬外聯(lián)的時候是外發(fā)的加密流量。在這種情況下,可以將木馬樣本捕獲,并將其放到沙箱集群環(huán)境中,讓其與互聯(lián)網(wǎng)產(chǎn)生網(wǎng)絡(luò)流量,并對加密的PCAP流量進行捕獲。同時,許多網(wǎng)站或?qū)W術(shù)的機構(gòu)也會公開一些加密的PCAP流量,包括公司或?qū)W術(shù)組織也會積累一些在此研究領(lǐng)域的惡意加密流量,這些都是有效的數(shù)據(jù)來源。
當(dāng)然,并不是所有原始流量或文件都可以直接應(yīng)用的。在完成捕獲后,還需要對其進行分析,判斷數(shù)據(jù)質(zhì)量并篩選數(shù)據(jù)。將流量通過標(biāo)準(zhǔn)引擎或安全設(shè)備引擎進行解析,以便提取其中的特征數(shù)據(jù)和統(tǒng)計數(shù)據(jù)。獲取到數(shù)據(jù)后,AI工程師對數(shù)據(jù)進行判斷,并將數(shù)據(jù)分成幾類,用幾個模型或算法對其進行識別與分類。
分類的第一個維度是判斷流量中是否存在相關(guān)的其他協(xié)議流量。很多木馬會考慮模擬正常的web訪問行為,以降低其惡意行為的被發(fā)現(xiàn)概率。這種情況下,可以將會話相關(guān)的DNS上下文捕獲,并對其進行分析與數(shù)據(jù)提取。第二個維度是會話要先進行TLS的加密身份認(rèn)證,部分會話沒有完成認(rèn)證過程,部分會話完成了身份認(rèn)證過程,這樣可以獲得不同類型的交互數(shù)據(jù)。
我們可以根據(jù)上述的兩個維度:DNS是否有關(guān)聯(lián),還有其身份認(rèn)證是否完整,去進行實踐。把數(shù)據(jù)分成四組,后續(xù)通過這些數(shù)據(jù)進行分別訓(xùn)練,讓不同模型對相應(yīng)的子類別的數(shù)據(jù)進行有效的識別。
對數(shù)據(jù)進行分類后,就需要提取特征以構(gòu)建特征向量。首先可以根據(jù)是否有DNS關(guān)聯(lián)的數(shù)據(jù)來區(qū)分它要提的內(nèi)容。如沒有DNS關(guān)聯(lián)的數(shù)據(jù),則提取它的統(tǒng)計數(shù)據(jù)和TLS協(xié)議數(shù)據(jù)。其次是加密證書相關(guān)的數(shù)據(jù)。將這些數(shù)據(jù)合在一起,生成特征向量。對于有DNS關(guān)聯(lián)類別的數(shù)據(jù),則要考慮將DNS相關(guān)的域名長度、域名后綴、TTL等字段進行提取,以形成特征向量。
接下來,在建模與訓(xùn)練前還需要進行可視化的數(shù)據(jù)降維分析。判斷AI算法是否能有效地將數(shù)據(jù)進行分類。AI算法要對數(shù)據(jù)做分類,從降維數(shù)據(jù)圖來看,實際上可以理解為在找一個曲線或曲面,其能夠?qū)深悢?shù)據(jù)很好地區(qū)分開。降維的算法有很多,例如PCA算法等,可以根據(jù)不同的實踐過程選用不同的算法。
接下來則是建模的過程。人工智能有不同的算法類別,例如傳統(tǒng)的機器學(xué)習(xí)以及近幾年熱門的深度學(xué)習(xí)。對惡意加密流量識別效果更好一些的是通過集成學(xué)習(xí)的算法,在一個集成學(xué)習(xí)模型里使用多個機器學(xué)習(xí)算法,或用一個機器學(xué)習(xí)算法去建立多個子模型。集成環(huán)境下的識別效果和準(zhǔn)確率會更高。
第二類問題,高級威脅其中一種是惡意文件的變種,其變化速度很快。傳統(tǒng)的特征碼很難跟得上樣本新變種的產(chǎn)生速度。對此,可以將文件轉(zhuǎn)化成圖像,并通過卷積神經(jīng)網(wǎng)絡(luò)對圖像的識別能力來對文件本身進行間接識別。相比于傳統(tǒng)的特征檢測算法,使用卷積神經(jīng)網(wǎng)絡(luò)對圖像識別,它的計算復(fù)雜性并沒有那么高。
這里首先需要將惡意代碼映射為灰度圖像,并提取其灰度圖像特征。而后利用惡意代碼灰度圖像特征進行聚類,將聚類結(jié)果進行惡意代碼家族標(biāo)注。再建立卷積神經(jīng)元網(wǎng)絡(luò)CNN模型,并設(shè)置網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)和訓(xùn)練參數(shù)。接著利用惡意代碼家族灰度圖像集合訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),并建立檢測模型。最后利用檢測模型對惡意代碼及其變種進行家族檢測。
另一類問題是目前很多惡意程序從企業(yè)內(nèi)部向外通信的時候,會使用隱蔽隧道。其中,DNS隱蔽隧道可以將待外泄數(shù)據(jù)以BASE64編碼后作為子域名,利用DNS協(xié)議穿過防火墻將數(shù)據(jù)傳送到受控服務(wù)器。也可以使用DNS協(xié)議的TXT等記錄類型發(fā)送請求和響應(yīng)。同理,黑客注冊這個域的解析服務(wù)器,以獲取想要的數(shù)據(jù)內(nèi)容。
ICMP隧道是比較常用的手段之一。它主要可以利用ICMP的Echo、Reply的數(shù)據(jù)包,找到其中的字段,然后將我們的數(shù)據(jù)進行填充。同理,也可以去通過編碼或者加密將外發(fā)數(shù)據(jù)轉(zhuǎn)化形式,然后通過一次次的多頻次的外發(fā),將數(shù)據(jù)外發(fā)到受控的控制端上去。
HTTP隧道同樣是一種常用的隱蔽隧道。HTTP是一個應(yīng)用層協(xié)議,應(yīng)用層協(xié)議在兩端建立好訪問通道之后,我們可以用HTTP隧道去承載一些傳輸層、TCP/IP層的數(shù)據(jù),其實就是通過上層的應(yīng)用層去承載數(shù)據(jù)。在這樣的情況下,防火墻很難去對它進行有效攔截。
針對上述問題的建模,第一步是要獲得相應(yīng)的工具流量或真實的隧道流量。之后對DNS等協(xié)議流量的特征向量進行提取,提取的內(nèi)容包括協(xié)議本身的內(nèi)容,以及統(tǒng)計的特征值,共同構(gòu)成特征向量。最后再給到機器學(xué)習(xí)模型或集成學(xué)習(xí)算法模型進行訓(xùn)練。模型訓(xùn)練好之后,就可以有效地對前面提到的這些工具進行流量的模式識別。
上述所提到的模型,可以使用一些方式提升其準(zhǔn)確率。與人工智能相關(guān)的是,可以使用不同的算法針對一個細(xì)分問題的不同類別數(shù)據(jù)進行分別建模,再將模型集成應(yīng)用?;蚴褂猛粋€算法針對不同數(shù)據(jù)進行建模,再將模型并行使用。除了使用人工智能方式外,我們也可以考慮利用黑名單或白名單等手段提升模型準(zhǔn)確度。
在建模的整體過程中,其實需要大量的流程和工具,可以通過建模平臺和工具腳本將整個過程串聯(lián)起來。目前許多算法平臺以及TensorFlow、MLlib等庫都是可以應(yīng)用的。后續(xù)也可以通過多輪地迭代,去持續(xù)提升模型對新的樣本類別的適應(yīng)性或降低模型的誤報率。
應(yīng)用案例與實踐效果解析
應(yīng)用層面,如果數(shù)據(jù)輸入來源是流量,則可以將訓(xùn)練后的模型放到設(shè)備之中,而后將原始的網(wǎng)絡(luò)流量給到設(shè)備,這樣設(shè)備就可以去用內(nèi)置解析引擎對流量進行協(xié)議解析,特征向量提取,之后可以給到AI模型檢測。
在對模型的訓(xùn)練過程中,特別是神經(jīng)網(wǎng)絡(luò)這類深度學(xué)習(xí)算法對算力的要求比較高,可以使用多臺設(shè)備或多塊顯卡進行訓(xùn)練,機器學(xué)習(xí)算法對算力要求不高。同時,也可以使用一個分布式的架構(gòu)對模型進行應(yīng)用,前端設(shè)備專門進行流量的協(xié)議解析,解析之后生成元數(shù)據(jù),后端的設(shè)備提取特征向量,再將特征向量給到模型進行檢測。
針對威脅的判斷過程中,不光可以用AI模型,也可以綜合其他的檢測手段。例如殺毒軟件引擎、Yara、特征、情報等,都可以去綜合地結(jié)合在一起應(yīng)用,而不僅是使用AI模型的檢測效果。針對惡意加密流量,可以在現(xiàn)網(wǎng)中應(yīng)用,但對惡意加密流量在現(xiàn)網(wǎng)中的應(yīng)用會有一個困難,就是如果發(fā)現(xiàn)了問題,很難去判斷這個問題是否真實存在,對此可以通過其他的間接手段來進行校驗。
例如發(fā)現(xiàn)內(nèi)部主機訪問了外部的服務(wù)器,產(chǎn)生了惡意加密流量的告警行為。則可以對原主機進行判斷,確認(rèn)其近期是否受過攻擊,是否存在惡意樣本或病毒木馬,是否受到過漏洞攻擊成功的行為。同時,遠(yuǎn)端可以根據(jù)IP或域名情報判斷遠(yuǎn)程的服務(wù)器是否存在問題,如果兩端存在問題,則整個事件是惡意的概率就會比較大。
如果是web類的攻擊,我們則可以去提取它的載荷,比如它是SQL注入,SQL注入之后,在流量中能提取到它注入的內(nèi)容,經(jīng)過解碼之后,就可以看到它注入的語句。像Webshell也是可以看到它里面的內(nèi)容是否是一個不正常的訪問行為,XSS等威脅同理。
用AI算法進行威脅檢測后,也可以通過智能方法將威脅和我們所關(guān)注的資產(chǎn)、資產(chǎn)的網(wǎng)絡(luò)行為以及外部的威脅情報等不同維度的元素進行關(guān)聯(lián),并利用知識圖譜技術(shù),形成了一張動態(tài)圖。相對于只看表單數(shù)據(jù),然后在不同數(shù)據(jù)間進行關(guān)聯(lián),智能關(guān)聯(lián)能夠有效提升分析溯源的效率,是提升運營效率的一個有效手段。
最后列舉一個案例,下圖是一個完整的攻擊過程。一個勒索軟件被投遞到內(nèi)部關(guān)注的資產(chǎn),資產(chǎn)進行了DNS的解析行為,得到了IP,再之后發(fā)生了HTTP的隱蔽隧道,整個流程中不同的事件都會被原始地記錄下來。同時,系統(tǒng)自動將不同的事件串起來,形成一個更高級的告警。同時整個過程也可以可視化的動態(tài)的展示出來,便于我們理解、回溯到底哪些資產(chǎn)、哪些外部的IP或設(shè)備與我們產(chǎn)生了聯(lián)系。
?
嘉賓介紹
富吉祥,畢業(yè)于東北大學(xué)信息安全專業(yè)。曾就職于KDDI中國、華為、盛邦安全,目前在金睛云華任職售前負(fù)責(zé)人和技術(shù)總監(jiān),從事產(chǎn)品與解決方案工作。具有超過10年的網(wǎng)絡(luò)安全領(lǐng)域經(jīng)驗,擅長人工智能、大數(shù)據(jù)和網(wǎng)絡(luò)流量分析技術(shù)高級威脅檢測分析領(lǐng)域的應(yīng)用。歷年來以演講嘉賓身份受邀出席ISC網(wǎng)絡(luò)安全大會、XCon安全焦點信息安全技術(shù)峰會,接受權(quán)威媒體安全?!杜H嗽L談》專訪,在《企業(yè)高級威脅防護指南》報告發(fā)布會上做演講分享,在業(yè)界享有良好口碑。