當前位置:
首頁 > 最新 > 利用機器學習檢測HTTP惡意外連流量

利用機器學習檢測HTTP惡意外連流量

1. 背景

攻擊者為控制遠程的受害主機,必定有一個和被控主機的連接過程,一般是通過在被控主機中植入後門等手段,由受控主機主動發出連接請求。該連接產生的流量就是惡意外連流量,如圖1.1所示。目前檢測惡意外連流量的主要方式有兩種,一種是基於黑名單過濾惡意域名,另一種是使用規則匹配惡意外連流量。這兩種方案都有一定的局限性,基於黑名單過濾的方案,只能識別連接已知惡意網站時的惡意外連流量,對於域名變化沒有任何感知。而基於特徵檢測的方案,需要安全從業人員逐一分析樣本,會消耗較大的人力,並且難以檢測變種的惡意外連流量。

作為已有技術的補充,可以通過機器學習來檢測惡意流量。利用機器學習來發現惡意流量間的共性,並以此為依據檢測惡意流量,一個好的演算法可以大大減少安全從業人員的工作量。

現在已經有不少關於採用機器學習檢測惡意流量的文獻資料,思路也各有千秋,如有根據流量內容進行檢測的,還有根據流量變化來進行檢測的。本文主要受ExecScent這篇論文的啟發。

圖1.1 惡意外連流量示意圖


實驗室目前積累了大量的惡意樣本,部分如圖2.1所示。通過在沙箱中運行惡意樣本收集產生的外連HTTP流量。這些外連流量中只有部分是惡意的,中間仍摻雜著不少白流量。通過人工分析確認,將產生的外連流量分為惡意流量和白流量。最後利用已積累的威脅情報信息將惡意流量打上惡意家族信息。最終用於訓練的數據如圖2.2所示。

圖2.1 惡意樣本示意圖

圖2.2 用於訓練的數據信息


通過分析採集到的惡意外連流量信息,發現來自同一家族的惡意外連流量間具有明顯的相似性。如圖3.1是通過兩個不同的惡意樣本產生的惡意外連信息,經過人工分析,判定兩個惡意流量均是來自LokiBot惡意家族。可以看到兩個流量間的相似性極高。圖3.2則是兩個來自Generic Trojan家族的惡意外連流量,同樣有極高的結構相似性。

分析同一家族惡意流量,發現同一家族的惡意流量有以下特點①其url路徑結構一致,具體路徑信息儘管不同,但是都具有相同的數據類型。比如圖3.1中url路徑中的bugs和job都是字元串,圖3.2url中1b50500dad和106042bd2e都是16進位小寫類型;②url的參數相似;③請求頭欄位基本相同,且內容高度重合。

由於同一家族的惡意外連流量具有上述的相似性,因此可以使用聚類演算法將同一家族的惡意流量聚為一類,提取它們的共性模板,最後利用模板檢測新的惡意外連流量。

圖3.1 LokiBot家族惡意外連流量

圖3.2 Generic Trojan家族惡意外連流量


演算法主要包括惡意http外連流量模板生成和未知http流量檢測兩個部分,兩個部分的流程分別見圖4.1和圖4.6。下面分別介紹這兩個部分。


模板生成流程包括請求頭欄位提取,泛化,相似性計算,層次聚類,生成惡意外連流量模板5個步驟,如圖4.1所示。

圖4.1模板生成流程

4.1.1 提取請求頭欄位

將http流量劃分為url、url參數,user-agent、host、content-length等結構化欄位。方便後續處理。

4.1.2 泛化

同一家族的惡意流量結構一致,但是有部分具體細節不同。將http流量中的數字部分、字母部分、字母數字混合部分、十六進位部分、base64部分分別用特殊字元替換,取消它們的差異性部分。比如對圖3.2中流量的url部分泛化,將字母轉換為*,十六進位部分轉換為@,數字部分轉換為$,泛化後的效果如圖4.2,可以看,通過泛化,兩個url的結構特徵得以保留,而具體內容的差異則被忽略了。

圖4.2 泛化效果

4.1.3 相似度計算

為聚類惡意流量,需要計算流量間的相似度,便於後續提取惡意流量模板。在計算相似度的過程中,惡意流量中不同欄位的重要性是不同的。如圖3.2中所示的惡意流量,明顯url部分更加特別,不易與白流量中的url重疊。而Accept, User-Agent等欄位內容則是常見值,無論是否是惡意流量都有可能出現。因此,在計算圖3.2所示流量的相似度時,url應該有更大的權重,即url相似時表明它們更有可能來自同一惡意家族。而Accept,User-Agent等欄位則應該分配較小的權重,因為難以通過這些欄位內容區分惡意流量和白流量。

為了更好的決定各個欄位在相似度中應該佔有的權重,需評估每個欄位的特異性,欄位內容特異性越高,則其惡意特徵越明顯,相應的就應該賦予更高權重。圖4.3給出了相似度計算的具體過程。

圖4.3 相似度計算

各個欄位的特異性權重計算包括以下幾個方面:

Url路徑特異性:根據url路徑複雜度定義,如圖4所示。惡意流量中的url路徑越複雜越難以與白流量重疊。

Url參數特異性:根據參數數量定義,如圖4所示。惡意流量中的參數數量越多,特徵越明顯。

其他常見請求欄位特異性:如User-Agent, Connection, Cache-Control等欄位。統計所有惡意流量和白流量中出現過的欄位信息集合以及對應的出現次數。如果欄位內容出現頻率低,則認為特異性高。

特殊欄位特異性:如圖1流量中的Content-Key欄位。統計所有流量中出現過的欄位信息。將出現頻率低的欄位標記為特殊欄位。對於有特殊欄位的流量,認為其特異性高。

圖4.4 Url路徑和參數特異性

4.1.4 層次聚類

根據步驟3計算的相似度矩陣,利用層次聚類演算法將請求頭劃分為若干類。每一類中的請求頭都具有相似的結構,用於後續生產惡意流量模板。圖4.5是採用10%的樣本用於訓練時生成的層次聚類圖。

圖4.5 惡意流量層次聚類圖

4.1.5 生成惡意流量模板

對聚類後的每一類,都是結構和內容相似的惡意流量。對其中的每一個請求頭欄位,獲取聚類中該欄位內容的並集作為該欄位在模板中的值。相當於把訓練集中重複的部分做了去重處理。


圖4.6未知http流量檢測

如圖4.6所示,模板匹配過程主要包括包括待測流量請求頭欄位提取,泛化,模板匹配,判別流量性質四個部分。

其中欄位提取,泛化過程和4.1節中完全相同。模板匹配過程也是計算待檢測請求頭與惡意外連流量模板的相似度,最後加權平均的相似度即為待測流量與模板匹配的相似度。具體相似度的計算與模板生成過程中4.1.3基本一致,唯一的區別是,模板中同一個請求頭欄位可以有多個值,在計算時取其中相似度最高的值。最終,如果未知流量與模板的相似度大於預設值,則認為未知流量為惡意外連流量。


採用80%的黑樣本作為訓練集,20%的黑樣本及全部白樣本作為測試集,測試演算法效果,繪製匹配閾值的PRC曲線如圖5.1。可以看到隨著召回率的提升,演算法一直保持著較高的精度。最終選擇了0.8作為匹配閾值,此時演算法精度為93.56%,召回率為97.14%,F-值為0.9532。

圖5.1 PRC曲線

此外,分別用10%,20%,30%…, 90%的黑樣本作為訓練集,匹配閾值採用0.8測試其他樣本數據,分別統計檢測的惡意流量正確率,白流量正確率以及誤報率,結果如圖5.2。可以看到演算法對白樣本的檢測正確率一直維持在99%以上。而對於黑樣本,其檢測正確率是建立在模型多樣性的基礎上的。在訓練集只有10%,模型數據不足的情況下,演算法仍檢測出了77.65%的黑樣本,說明演算法對於惡意流量的變種有較好的泛化能力。

圖5.2 訓練集佔比對黑白測試樣本檢出率影響

表5.1給出了不同訓練集佔比下,檢出率和誤報率的具體數值。可以看到,隨著訓練集佔比的提高,檢出率大幅度上升,這是由於演算法是建立在模型基礎上的。當訓練集少時,樣本的多樣性不足,獲取到的模板少,從而檢出率較低。隨著訓練樣本的增加,更多的模板特徵被獲取,檢測率也逐漸提高。而誤報率隨著訓練集的擴大而略有上升,這是由於隨著模板的增多,白流量匹配到模板的概率也逐漸變大了。但整體誤報率的增加並不多,仍在可接受範圍。

目前還實現了一個簡易的測試頁面,可以通過上傳pcap來檢測其中是否包含惡意流量,效果如圖5.3和5.4所示。該頁面後續將開放。表5.1 不同訓練集佔比下的檢出率和誤報率

圖5.3 檢測惡意流量頁面

圖5.4檢測結果頁面


【1】Nelms T, Perdisci R, Ahamad M. ExecScent: Mining for New C&C Domains in Live Networks with Adaptive Control Protocol Templates[C]//USENIX Security Symposium. 2013: 589-604.

【2】Egele M, Scholte T, Kirda E, et al. A survey on automated dynamic malware-analysis techniques and tools[J]. ACM computing surveys (CSUR), 2012, 44(2): 6.

【3】Gu G, Perdisci R, Zhang J, et al. BotMiner: Clustering Analysis of Network Traffic for Protocol-and Structure-Independent Botnet Detection[C]//USENIX security symposium. 2008, 5(2): 139-154.

【4】Zhao D, Traore I, Sayed B, et al. Botnet detection based on traffic behavior analysis and flow intervals[J]. Computers & Security, 2013, 39: 2-16.

【5】Wurzinger P, Bilge L, Holz T, et al. Automatically generating models for botnet detection[C]//European symposium on research in computer security. Springer, Berlin, Heidelberg, 2009: 232-249.

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

機器學習背景下的哈希演算法
針對模型降階的機器學習

TAG:機器學習 |