從kill-chain的角度檢測APT攻擊
前言
最近一直在考慮如何結合kill chain檢測APT攻擊。出發點是因為儘管APT是一種特殊、高級攻擊手段,但是它還是會具有攻擊的common feature,只要可以把握住共同特徵,就能進行檢測。而kill chain就是個非常好的common feature描述。
在預研期間看到了一些覺得比較好的工作,這裡和各位師傅一起分享下。如題所述,這篇文章是介紹如何如kill-chain的角度檢測APT攻擊的一個方案,其特點解決了三個痛點:1.在於針對大數據量的問題引入Pearson相關檢驗來減少處理數據量;2,使用基於貝葉斯演算法分類的優先順序選擇方法對訓練數據進行選擇,從而顯著降低訓練時間;3.利用層次分析法,對不同的警報進行分類,並確定各參數之間的相關性,最終提高所有攻擊數據類的檢測率。
kill-chain模型
kill-chain模型各位師傅應該都比較熟悉了,不過為了方便與後文的APT檢測對應起來,我們這裡還是簡單梳理下。
kill-chain模型有7個階段:(1) Reconnaissance, (2) Weaponization, (3) Deliver, (4) Exploitation, (5) Installation, (6) Command and Control (7) Actions on objectives
這7個連續的步驟為攻擊者提供了行動TTP(tactic,technique和procedure)
事實上,kill-chain模型不僅可以給攻擊者提供參考,也能給防禦者提供指引,從預防、檢測、分析每一步驟都有章可循。下面根據個人經驗簡單回顧一下。
Reconnaissance
第一階段偵查的主要目標就是收集目標的資訊,這一步說簡單也簡單,說難也難,相信做滲透的師傅們都深有體會。
Weaponization
第二階段Weaponization,即武器化,其目標是創建一個可以交付攻擊的惡意payload,這裡的payload可以分為兩種類型:
1.不需要與攻擊者通訊的payload,比如病毒、蠕蟲等
2.需要與攻擊者通訊的payload,比如帶有C&C功能的惡意軟體
其實關於這一階段的產物我們更熟悉的名詞應該叫做RAT(remote access Trojan),即遠控木馬
RAT需要客戶端和負責下發命令的伺服器。客戶端接收實際惡意payload,並被配置為能夠與C2伺服器通訊,伺服器位於網路上,由攻擊者控制。
比如在Reconnaissance階段,攻擊者注意到電子郵件系統不允許發送和接收exe文件,但允許發送pdf文件。另一方面,攻擊者注意到,教授經常通過電子郵件收到並打開學生的PDF文件。因此,攻擊者可以創建一個能夠與C2伺服器通訊的RAT文件,並將該RAT文件嵌入到一個偽裝為個人簡歷(比如要讀研的前來套磁的學生)的PDF文件中,然後將其以附件的形式發給教授。
Deliver
payload在上一階段被開發完成後就需要通過各種途徑投遞出去,這裡可以通過社會工程學的方法欺騙受害者進行交互,或者利用協議、軟體的缺陷自動投遞。在這一階段最重要的就是確保投遞時的隱蔽性,非交互就能投遞的話自然是最好的,可這也是最難的,所以在網上流傳很廣的那個報價表上’Zero-interaction’的漏洞價格一騎絕塵。
Exploitation
在利用階段,需要確保其擁有必要的許可權以在目標平台上運行,比如投遞的是elf文件,則肯定是不能在windows平台運行的;而且payload不能被檢測出來,否則kill-chain的鏈條到這裡就斷了。
這一步容易和下一步混淆,這一步是利用,下一步才是安裝。舉個簡單的例子,本來是沒有許可權安裝某個app的,但是同個exploition這個階段實現了提權、逃逸等操作,所以才能保證下一步installation的進行。
Installation
這一階段並不是必須,比如那些可執行文件或者以程式碼注入實現的攻擊。
如果涉及到這個階段的話,攻擊者就需要在deliver階段將dropper或者downloader放置在目標電腦上。這一步的關鍵不在於漏洞利用,而是在於持久化,能夠在受害者主機上存活下來。
Command and Control
這一階段是不可或缺的,因為很多攻擊活動的目的就是為了竊取資訊,那麼在本地拿到資訊後自然需要通過C2回傳,比如典型的Zeus等;此外對於殭屍網路還需要接收客戶端的命令以執行惡意操作,比如發動ddos攻擊,對於勒索軟體需要被下派指令激活以加密本地關鍵文件
在這一步,根據通訊特點也可以分為直接通訊和間接通訊兩類:
在直接通訊中,受害主機上的惡意軟體包含攻擊者控制的伺服器ip和控制列表,但是如果這個特定的ip被阻斷了,那麼攻擊者就失去了控制權;
在間接通訊中,攻擊者是利用合法的中間節點與受害者進行通訊的,他可以利用白站進行中轉,或者攻陷一些中間節點作為跳板,從而建立通訊路徑。
這一步其實非常靈活,攻擊者可以通過不同的方式進行通訊,比如使用郵件、使用http,dns等以及隱蔽信道。
但是這一階段的活動一定會產生網路流量,因為很多檢測工作都是在流量方面開展的。
Actions on objectives
這是kill-chain模型的最後階段。攻擊活動要麼會自主進行或者通過C2信道接收到命令後開始執行。這一階段的目標主要有三種:竊取資訊、勒索軟體、破壞系統。
回顧完了kill-chain,我們可以很直觀地感受到,這個連續模型,闡述了攻擊者是如何一步步實現攻擊的,其基於的假設就是攻擊者會以順序、遞進和高級的方式對受害者進行滲透,只要任一階段被阻斷,攻擊就不會成功。
檢測方案
檢測方案非常直觀,如下所示
在數據預處理階段採用Pearson相關檢驗,利用貝葉斯演算法優化訓練輸入資訊。接下來貝葉斯演算法根據檢測閾值、預測閾值和灰色結果三個組成部分對數據進行分類。然後,將剩餘的預處理數據作為實驗組件,將其輸出作為分析層次過程的輸入參數,對攻擊進行排序。此時會輸出包括一個已知攻擊優先順序的分類。
參數的預處理與聯繫
檢測APT攻擊時需要計算幾個參數,大部分研究中針對網路攻擊的類型和嚴重程度,已經引入了各種參數來評估和檢測網路攻擊。但這裡需要注意的是,檢查許多參數的話可能會增加開銷,並最終降低提出的入侵檢測解決方案的效率。
所以在這裡採用相關係數法減少檢測APT攻擊時使用的參數數量。
相關係數是確定兩個定量變數之間關係類型和程度的統計工具。同時,它也是決定兩個變數相關性的因素之一。它表明了關係的強度以及關係的類型。這個係數在−1到1之間。在兩個變數之間沒有關係的情況下,它等於0。
兩個變數之間的相關性可以用各種不同的計算方法來測量。皮爾遜相關係數、斯皮爾曼相關係數和Tau Kendall相關係數是計算變數之間相關關係最常用的方法。在這裡我們使用皮爾遜相關係數。一般來說,兩個隨機變數之間的皮爾遜相關係數等於它們的協方差除以它們的標準差的乘積。對於一個統計總體,相關係數可定義如下
對於有n個數據對的樣本的相關係數可以表示如下
進一步推導為
其中
接下來需要評估相關強度,根據給定的應用,提出了各種分類,這些分類用於關聯數據以及從大量數據中刪除無用數據。
對應的評估可以參考下表
利用貝葉斯演算法進行閾值訓練和評估
貝葉斯決策理論是一種概率推理方法。假設給定的變數遵循一定的概率分布,這些概率和觀察到的數據可以用來做決策。
樸素貝葉斯分類模型(NBC)是基於貝葉斯決策理論的一種基礎模型。該分類方法執行簡單,分類速度快,準確率高,是機器學習中應用最廣泛的分類模型之一。樸素貝葉斯分類基本思想:假設樣本屬性之間相互獨立,對於給定的待分類項,求解在此項出現的情況下其他各個類別出現的概率,哪個最大,就認為待分類項屬於那一類別。
比如大家都知道的郵箱內垃圾郵件的篩選即應用樸素貝葉斯演算法。我們這裡就用它。
其實現主要分成三個階段
第一階段,準備工作。根據具體情況確定特徵屬性,並對每一特徵屬性進行劃分,然後人工對一些待分類項進行分類,形成訓練樣本集合。這一階段的輸入是所有待分類數據,輸出是特徵屬性和訓練樣本。唯一需要人工處理的階段,品質要求較高。
第二階段,分類器訓練階段(生成分類器)。計算每個類別在訓練樣本中出現頻率及每個特徵屬性劃分對每個類別的條件概率估計,並將結果記錄。其輸入是特徵屬性和訓練樣本,輸出是分類器。
第三階段,應用階段。使用分類器對待分類項進行分類,其輸入是分類器和待分類項,輸出是待分類項與類別的映射關係。
理論上來說,樸素貝葉斯分類比其他分類演算法的錯誤率最低。
但是,很難假設實際的網路行為是獨立的。因為實際上每個電腦網路都有自己獨特的特點,這些特點直接影響入侵檢測方法的效果。因此,將一個加權特徵分配給簡單貝葉斯分類,在樸素貝葉斯分類中,對每個影響這些關係的屬性賦予不同的權重時,不同的權值會產生不同的結果,這些權值對入侵檢測方法有很大的影響。
在入侵檢測系統中,樸素貝葉斯分類的重點實際是用於是確定不同特徵權重。
通過公式計算得到的概率被用來確定閾值。通過對閾值進行評估,將結果表示為灰色閾值、預測閾值和檢測閾值三種模式。預測模式表示當前入侵資訊被檢測到的過程。檢測模式決定了入侵資訊被完全識別和檢測的過程。灰色模式表示當前資訊無法檢測到入侵。
模糊層次分析法
模糊層次分析法(FAHP)及計算過程層次分析法(AHP)是20世紀70年代美國運籌學T.L. Saaty教授提出的一種定性與定量相結合的系統分析方法。
該方法對於量化評價指標,選擇最優方案提供了依據,並得到了廣泛的應用。然而, AHP存在如下方面的缺陷:檢驗判斷矩陣是否一致非常困難,且檢驗判斷矩陣是否具有一致性的標準CR < 0. 1缺乏科學依據;判斷矩陣的一致性與人類思維的一致性有顯著差異。
在模糊層次分析中,作因素間的兩兩比較判斷時,如果不用三角模糊數來定量化,而是採用一個因素比另一個因素的重要程度定量表示,則得到模糊判斷矩陣。
其抽象結構如下所示
emmm,不好理解的話,我們里去哪裡旅遊的問題為例,可以把要考慮的因素都放上去進行計算,如下所示
用模糊層次分析法解決問題的一般步驟如下:
模糊層次分析法的基本思想是根據多目標評價問題的性質和總目標,把問題本身按層次進行分解,構成一個由下而上的梯階層次結構。因此在運用FAHP決策時,大體上可以可分為以下四個步驟。
(1)分析問題,確定系統中各因素之間的因果關係,對決策問題的各種要素建立多級(多層次)遞階結構模型。
(2)對同一層次(等級)的要素以上一級的要素為準則進行兩兩比較,並根據評定尺度確定其相對重要程度,最後據此建立模糊判斷矩陣。
(3)通過一定計算,確定各要素的相對重要度。
(4)通過綜合重要度的計算,對所有的替代方案進行優先排序,從而為決策人選擇最優方案提供科學的決策依據
在我們提出的方案中,模糊層次分析法是用於對不同的警報進行分類,並確定各參數之間的相關性,從而檢測出APT攻擊的。
該方法首先會對輸入數據進行模糊化處理,數值模糊化可以採用各種隸屬函數。隸屬度A(x)表示模糊集合A中元素x的隸屬度。如果一個元素的隸屬度為0,則該元素完全不在該集合中;如果隸屬度為1,則該元素完全在該集合中。當隸屬度在0到1之間時,表示隸屬度是漸進的。這裡我們可以使用三角隸屬函數對值進行模糊化處理。其公式如下
層次分析過程步驟如下:
•AHP建模過程-》創建兩兩比較決策矩陣-》計算每個選項的標準權重和得分,其最後一步涉及兼容性測試;其中涉及一致性指標(CI)和一致性比(CR)兩個參數,當CR小於0.1時,結果才是可接受的,否則就要重新執行
檢測效果
為了檢測方案的可行性,這裡使用了標準的公開數據集KDD CUP99進行評估
KDD CUP99是非常經典的數據集。該數據集是自1999年以來評估入侵檢測系統最常見和標準的數據集,是基於DARPA 98項目記錄的數據。該數據集包含由TCPDump軟體從網路流量中收集的大約4 GB的原始二進位數據。它還包含大約500萬條帶有連接向量的記錄,每條記錄的大小為100位元組和41個屬性,以及一個包含正常模式或攻擊模式的標籤。由於該數據集的容量很大,大多數研究都使用了標準數據集中提供的10%的子集。這個數據集包括494,021條記錄,包括23種攻擊類和2個普通類。
在該數據集中,將數據記錄分為拒絕服務(DoS)攻擊、獲取初始訪問(R2L)攻擊、提權(U2R)攻擊和探測攻擊(probing)四大類。在這裡,根據kill-chain的特性以及這些攻擊對kill-chain模型某些階段的適應性,以這些攻擊為例對APT攻擊進行了分析。我們考慮了DoS、R2L、U2R攻擊,以及資訊收集(「Reconnaissance」)、入侵(「weaponization」 和「Delivery)、部署(「「Exploitation」 和 「Installation」」)和資訊竊取(「Command and Control」 和 「Action on Objectives」)階段的探測(probing)。為了區分正常流量和攻擊流量,KDD99中每個網路通訊數據組件用41個屬性表示。此外,KDD99中的每個數據組件都被標記為攻擊預計或規範預警。數據集中的這23種網路攻擊類型都可以用於APT攻擊,每一種都屬於四種我們設計的攻擊類型中的一種。
因為使用了貝葉斯演算法和模糊層次分析法相結合的方法,這裡通過參數M負責控制這兩種演算法的收斂(M的值實際上表示Bayesian演算法下一步將用於訓練的數據點),為了確定M去哪個值更好,這裡分別作了實驗,效果如下
可以看到,M=4時效果是最好的
為了確定所提出的方案的效率更好,這裡可以對T2數據集提取混淆矩陣,如下所示。a是基礎方案,b是提出的方案.
在接下來的實驗中,我們把這裡提出的新的思路命名為APT-Dt-KC,然後與參考文獻5中提出的DT-EnSVM方法進行對標,從結果可以看到,新的方案全面勝出。
從上表可以看出來,現在的方案混淆矩陣在分類階段的效率比基礎方案要更優。
然後分別比較兩個方案在T1數據集和T2數據集上的結果,如下所示,第一個表示是在T1數據集上的結果,第二個表是在T2數據集上的結果
可以看到,現在的方案在檢出率、假陽性率和假陰性率方面均要更佔優勢。而且由於消除了預警的冗餘性,其訓練時間也更短。
兩個方案在兩個數據集上的準確率如下
可以看到,現在的方案在準確率上是遙遙領先。
但是這還沒有結束,對攻擊進行分類處理後,需要確定攻擊的級別和優先順序。
由於現在的方法採用了AHP演算法來考慮攻擊的級別,因此可以對不同的攻擊進行排序。因此,可以對所有攻擊進行分類、排序,並根據最可能發生的情況進行評估。T1數據集在攻擊檢測階段的實驗結果如下所示。
可以看到其假陽性率和假陰性率均小於基礎方法。
T1數據集中兩個方案的平均檢測率值如下所示
從表中可以看出,現在的方案在最終檢測率上也是優於基礎方法的。所以我們現在可以肯定地說,整個過程中我們提出的新方案有較好的檢測效果。
參考
1.Panahnejad M, Mirabi M. APT-Dt-KC: advanced persistent threat detection based on kill-chain model[J]. The Journal of Supercomputing, 2022: 1-34.
2.//www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html
4.Setiawan B, Djanali S, Ahmad T, et al. Assessing centroid-based classification models for intrusion detection system using composite indicators[J]. Procedia Computer Science, 2019, 161: 665-676.
5.Gu J, Wang L, Wang H, et al. A novel approach to intrusion detection using SVM ensemble with feature augmentation[J]. Computers & Security, 2019, 86: 53-62.
更多靶場實驗練習、網安學習資料,請點擊這裡>>