[2017CCS]DECANTERR:通過被動應用程序指紋檢測異常的HTTP流量

摘要

通過http流量對每個主機的每個應用程序都生成一組指紋,其中不包含任何的惡意軟件流量。在測試模塊中,提取最近X分鐘在網(wǎng)絡中看到的指紋集。接下來,檢測模塊通過不同的相似性檢驗來驗證這些新提取的指紋是否異常。

我們介紹了DECANTeR,這是一個檢測異常出站HTTP通信的系統(tǒng),該系統(tǒng)可以被動地為受監(jiān)視主機上運行的每個應用程序提取指紋。

我們系統(tǒng)的目標是檢測主機網(wǎng)絡流量中提取的未知指紋所指示的未知惡意軟件和后門通信。我們使用來自國際組織的真實數(shù)據(jù)和由惡意流量組成的數(shù)據(jù)集評估原型。我們表明,我們的系統(tǒng)對441臺受監(jiān)視的主機實現(xiàn)了誤報率0.9%,平均檢測率97.7%,并且使用簡單的回避技術(shù)(例如使用已知的瀏覽器用戶代理值)無法被惡意軟件回避。

1 介紹

當前的大多數(shù)網(wǎng)絡安全設備都使用惡意軟件特征來識別惡意通信。主要地,這是通過兩種不同的方式實現(xiàn)的?;诤灻募夹g(shù)依賴于已知惡意軟件樣本的數(shù)據(jù)集,并且它們提取表征惡意軟件的已知模式。這些技術(shù)也可以自動化,從惡意軟件集群中生成簽名[20-22]。與經(jīng)典簽名相比,差異在于,自動生成的簽名對惡意軟件變種更為健壯,因為它們對一組或多組惡意軟件共享的某些流量特征進行編碼。該技術(shù)之所以有效,是因為許多惡意軟件共享相同的代碼。第二類技術(shù)是基于異常的檢測。主要目標是基于一組表征特定威脅的功能(例如僵尸網(wǎng)絡[4、10、11]或Web攻擊[16])創(chuàng)建網(wǎng)絡流量模型。大多數(shù)相關(guān)工作屬于異常檢測的子類別,我們將其稱為特定于威脅的異常檢測,因為所有這些工作要么創(chuàng)建使用惡意數(shù)據(jù)訓練的模型,要么著重于通過特定模式識別的特定威脅。

現(xiàn)有問題:

1:基于一組惡意軟件生成的分類器或簽名無法識別與該組沒有通用性的新的未知惡意軟件。

2.由于缺乏清晰的模式,因此很難建模某些威脅,例如數(shù)據(jù)泄露或通用后門。例如,數(shù)據(jù)滲漏可以是數(shù)小時內(nèi)以小塊形式進行的數(shù)據(jù)庫混淆傳輸,也可以是單個請求中的加密密鑰對。

為了解決這些問題,研究人員提出了一種基于異常的檢測方法,該方法只能從每臺特定機器的良性網(wǎng)絡數(shù)據(jù)中生成模型[5,24]。我們將此類別稱為特定于主機的異常檢測,它不同于用于分析機器內(nèi)部狀態(tài)的技術(shù)中通常使用的術(shù)語“基于主機”。

不幸的是,現(xiàn)有方法在現(xiàn)實情況下無法提供強大的檢測性能,因為它們很容易逃避,或者它們不適應隨時間變化的主機行為,或者會觸發(fā)過多的誤報(FP)。

貢獻:

在這項工作中,我們提出了DECANTeR,該系統(tǒng)使用被動應用程序指紋技術(shù)僅對良性流量建模,因此不依賴任何惡意樣本。對于每個受監(jiān)視的主機,DECANTeR會為從主機進行通信的每個應用程序被動生成指紋。指紋由描述應用程序網(wǎng)絡行為的不同HTTP請求功能組成。我們的解決方案使用一種混合方法,因為指紋的特征集可以動態(tài)地適應應用程序的類型,并且特征的內(nèi)容代表從流量中提取的靜態(tài)模式。直覺是主機以一組已安裝的應用程序為特征。因此,如果惡意軟件在主機上運行,??它可能會生成新的指紋,這些指紋顯示出與代表主機應用程序不同的模式。

我們選擇專注于HTTP流量,因為它是惡意軟件常用的協(xié)議[28,34]。我們將在第2節(jié)中更詳細地討論這一選擇。這項工作的新穎之處在于,通過從主機的網(wǎng)絡流量中識別主機的不同的基于HTTP的應用程序來被動地模仿良性行為,并使用這些模型在主機通信中來識別異常行為??偠灾?,我們做出了以下貢獻:

?我們提出了DECANTeR,一種用于檢測出站異常HTTP連接的解決方案,該解決方案基于被動應用指紋技術(shù)。我們的方法會自動從網(wǎng)絡流量中生成指紋,從而識別受監(jiān)控主機的異常通信。我們還將討論DECANTeR如何隨著時間的推移適應主機的行為變化。

2 系統(tǒng)和威脅模型(system and threat model)

我們主要關(guān)注HTTP流量的原因有兩個:

1)大多數(shù)惡意軟件都使用HTTP [28,34],以與其C&C服務器通信或泄露數(shù)據(jù),因為它可以偽裝在良性流量中并避免檢測;?

2)許多企業(yè)防火墻實施嚴格的過濾規(guī)則,以阻止非Web流量,這迫使惡意軟件避免使用自定義協(xié)議并使用HTTP或HTTPS。

此外,許多企業(yè)在其網(wǎng)絡中部署了TLS中間人(TLS-MITM)代理[8]。這使我們的方法也適用于基于HTTPS的惡意軟件,盡管由于安全和隱私問題,它不是最佳解決方案。具有證書固定功能的基于HTTPS的惡意軟件會在無法檢測到中間人的誘惑時決定不進行通信,因此無法在具有類似設置的企業(yè)網(wǎng)絡中運行。最后,由于大量數(shù)據(jù)與大量的良性HTTP數(shù)據(jù)融合在一起,因此HTTP也被用作數(shù)據(jù)泄露的協(xié)議。這使得對于基于簽名的方法,數(shù)據(jù)泄漏的檢測極具挑戰(zhàn)性,特別是如果惡意軟件混淆了數(shù)據(jù),實際上基于HTTP的數(shù)據(jù)泄漏仍然被認為是一個開放的問題。我們假設惡意軟件可以使用壓縮,編碼或加密的任何組合來轉(zhuǎn)換數(shù)據(jù)以隱藏內(nèi)容。

3 our approach

我們的工作直覺如下:特定主機生成的所有流量都是由安裝在主機上的一組應用程序A = {a1,..an}產(chǎn)生的網(wǎng)絡活動的結(jié)果。每個ai都具有特定的網(wǎng)絡特性,則可以為每個ai創(chuàng)造一個指紋Fai, 主機H被定義為所有應用程序指紋的集合,即H=U Fai(從1到n的指紋的集合).惡意軟件也有它特定的指紋,因此,當惡意軟件感染了主機的時候,他們的指紋是不一樣的??梢杂弥讣y來區(qū)分惡意流量。

盡管直覺似乎很簡單,但仍有一些挑戰(zhàn)需要解決。傳統(tǒng)的指紋識別解決方案從脫機且通常是完整的數(shù)據(jù)集創(chuàng)建指紋,其中根據(jù)不同的輸入動態(tài)分析應用程序,以觸發(fā)嵌入其中的所有可能的行為[30]。在我們的設置中,這需要對所有現(xiàn)有HTTP客戶端(不僅是瀏覽器)進行先驗分析,這是不現(xiàn)實的。因此,一項挑戰(zhàn)是從實時流量中生成應用程序的指紋,該指紋很可能是不完整的(由于捕獲時間有限)和異構(gòu)的(由于同一應用程序隨時間變化的消息不同)。其次,系統(tǒng)應提供一種更新機制,以防由于主機上安裝了新軟件而導致創(chuàng)建新指紋。在這項工作中,我們應對兩個挑戰(zhàn)。

3.1 系統(tǒng)構(gòu)造:

http data ----訓練階段【打標簽,生成指紋】---測試階段【打標簽,生成指紋,檢測】。

訓練階段:對http流量根據(jù)User-Agent標頭字段將其聚類,【良性應用程序通常使用User-Agent來被Web服務器識別,因此幾乎可以保證所有這些請求都是由同一應用程序生成的,因此,這是在流量分析期間進行聚合的一種非常有效的方式?!咳缓蠓治雒總€群集,并根據(jù)其應用程序類型【瀏覽器,后臺】為它分配一個標簽,根據(jù)應用程序及其http請求創(chuàng)建指紋。結(jié)果是生成每個受監(jiān)控的主機的一組指紋,且訓練時主機均不存在惡意行為。

該模塊運行特定的超時時間,我們稱為聚合時間t。在測試模式下,t是X分鐘的固定時間窗口,而在訓練模式下,t與訓練周期的長度匹配。當t結(jié)束時,每個標記的簇將傳遞到下一個模塊。

測試階段:打標簽和生成指紋行同訓練階段,標簽和指紋生成模塊提取最近X分鐘在網(wǎng)絡中看到的指紋集。接下來,檢測模塊通過不同的相似性檢驗函數(shù)來驗證這些新提取的指紋是否異常。

3.2 系統(tǒng)細節(jié)

1.標記:

對http流量根據(jù)User-Agent標頭字段將其聚類,分析每個群集,并根據(jù)其應用程序類型【瀏覽器,后臺】為它分配一個標簽。

2.應用程序的類型:

后臺 background:?background類型代表流量內(nèi)容和目的地不受用戶輸入直接影響的那些應用程序(例如,抗病毒更新查詢)。這些應用程序具有可預測的行為,并在其通信中顯示出固定的模式。他們經(jīng)常使用HTTP標頭具有相同的結(jié)構(gòu),通信通常使用相同的域集,并且請求的大小和內(nèi)容相當相似。

瀏覽器 browser:瀏覽器類型表示W(wǎng)eb瀏覽器,它們生成HTTP流量,其內(nèi)容是不可預測的且是動態(tài)的,因為它直接取決于用戶操作和特定的訪問網(wǎng)站,尤其是考慮到動態(tài)Web內(nèi)容的廣泛使用。

3.標記的方法:創(chuàng)建了引用者圖的一種新方法 : Referrer Graph【具體我沒看】

標記方法的目的是區(qū)分后臺和瀏覽器這兩個應用程序集群。我們通過利用瀏覽器流量的動態(tài)行為來實現(xiàn)這一目標。例如,當用戶訪問網(wǎng)站時,瀏覽器會生成對網(wǎng)頁(通常為HTML)的請求。下載HTML頁面后,瀏覽器會生成其他HTTP請求,以檢索其他信息,例如圖像,腳本,CSS等。需要此信息才能正確呈現(xiàn)網(wǎng)頁。此行為是瀏覽器特有的,并且在后臺應用程序中不存在,因此可以將其與這兩種應用程序類型區(qū)分開。

DECANTeR中的一個核心組件是Referrer Graph,它試圖通過利用瀏覽器生成的下載網(wǎng)站資源的請求來抽象化瀏覽器動態(tài)特性,以區(qū)分后臺和瀏覽器這兩個應用程序。

4.指紋的生成過程:

該模塊將來自標記模塊的已標記簇作為輸入,并針對每個簇通過提取一組特定的特征來生成指紋,這些特征隨簇標簽而變化。

我們要創(chuàng)建依賴于應用程序網(wǎng)絡流量的多個特征的指紋。因此,即使惡意軟件正確猜出了User-Agent,我們?nèi)匀豢梢詫阂庵讣y識別為異常,因為其他功能可能與實際應用程序指紋不匹配。

我們選取的特征如下:

1)主機:存儲在HTTP字段“主機”中的一組域。更具體地說,我們僅考慮頂級和第二級域。直覺:我們發(fā)現(xiàn)許多通常作為后臺服務運行的應用程序大多與同一組域通信。

(2)恒定報頭字段:簇請求中始終存在的報頭字段集。直覺:許多應用程序(尤其是非瀏覽器應用程序)針對它們生成的每個請求系統(tǒng)地使用一組固定的標頭字段,這使其具有獨特的特征。該功能不是新功能,但以前它是用來對惡意通信建模的,[18]而我們卻是用它來對良性軟件通信進行建模的。

(3)平均大?。篐TTP請求的平均大小,由所有HTTP請求的大?。ò祟^和正文大?。┯嬎愕贸?。直覺:盡管內(nèi)容可能因請求而異,但某些應用程序通常會生成大小非常相似的請求,尤其是系統(tǒng)生成的請求。

(4)用戶代理:請求字段用戶代理的字符串。直覺:對于每個良性應用程序,此值通常是唯一的。

(5)語言:Accept中存在的一組Accept?-Language?HTTP字段。直覺:Web瀏覽器使用此字段在HTTP中宣傳他們喜歡的自然語言響應。該字段不僅描述了瀏覽器,還有用戶設置。

(6)外發(fā)信息:總數(shù)的近似值屬于集群的所有請求傳輸?shù)男畔⒘俊4斯δ軆H在測試階段使用。直覺:我們想跟蹤集群中的請求已傳輸了多少信息。

已經(jīng)表明,依賴單個功能的方法,例如User-Agent字符串,是無效的[15]。因此,我們要創(chuàng)建依賴于應用程序網(wǎng)絡流量的多個特征的指紋。因此,即使惡意軟件正確猜出了User-Agent,我們?nèi)匀豢梢詫阂庵讣y識別為異常,因為其他功能可能與實際應用程序指紋不匹配。

5. 檢測

檢測模塊將一組應用指紋Ftest = {Fa1,..Fan}作為輸入,將每個指紋Fai與在訓練模式Ftrain = {Fb1,...Fbz}期間生成的指紋進行比較。通過計算特定于應用程序類型的特定相似性函數(shù)來完成比較。如果Fai與Ftrain中的任何指紋都不相似,則DECANTeR會將Fai視為新的應用程序。找到新的應用程序后,DECANTeR會驗證新的指紋是否為軟件更新(請參閱第3.2.4節(jié))。如果Fai不是更新,則如果滿足以下兩個條件之一,則會發(fā)出警報:1. Fai的傳出信息量在閾值σ之上;2. Fai中的user-agent和瀏覽器的user-agent字符串相似。

使用檢測檢查1)和2)的原因如下:對于1),我們想知道計算機上的新應用程序是否正在通過Internet傳輸過多的數(shù)據(jù)。這可能表明主機上安裝了惡意軟件,開始竊取數(shù)據(jù)。 2)我們要確定那些試圖模仿瀏覽器的應用程序。該檢查基于常見的惡意軟件行為,該行為試圖使用已知瀏覽器的用戶代理字符串隱藏自身[23,34]。因此,應將新的瀏覽器外觀指紋視為異常。

6.指紋更新


7.后臺相似性功能

指紋由一組特征代表。讓我們將Fa和Fb分別視為在Ftest和Ftrain中生成的兩個后臺應用程序指紋。 Fa和Fb具有相同的標簽。后臺相似性函數(shù)可驗證Fa和Fb是否代表同一應用程序的流量。該函數(shù)定義為

后臺相似性函數(shù)

其中Si是用來檢查第i個特征是否相似的函數(shù),只有當S back (Fa,Fb)大于等于a的時候Fa,Fb才相似。

8.瀏覽器相似性功能

瀏覽器相似功能。 瀏覽器相似性函數(shù)易于計算,因為只有兩個功能需要評估: sbrow(Fa,F(xiàn)b)= s4(Fa4,F(xiàn)b4)+ s5(Fa5,F(xiàn)b5) 其中s4與背景設置相同。 如果兩個指紋的語言匹配,則功能s5分配1點,否則分配0。 當且僅當sbrow(Fa,F(xiàn)b)=β時,指紋Fa和Fb才被認為是相似的,其中β是眉毛的相似閾值。對于瀏覽器,兩個功能應完全匹配,因此β=2。較低的β將導致更寬松的檢查,允許使用其中之一 這兩個功能不匹配,這將導致攻擊者更容易逃避。


4 實驗

5 評估

6 討論

6.1 指紋技術(shù)

6.2 被動應用程序指紋

DECANTeR可被認為是將基于主機的基于異常的檢測付諸實踐的重要步驟。結(jié)果顯示出相對于現(xiàn)有技術(shù)的巨大改進,并且他們表明該方法是可行的。在當前階段,我們認為DECANTeR的最佳用途是監(jiān)視主機的子集,尤其是那些已知存儲敏感數(shù)據(jù)或執(zhí)行敏感活動的主機(例如,董事會成員工作站,管理員)。

6.3 用戶案例:數(shù)據(jù)泄漏

我們相信DECANTeR非常適合檢測數(shù)據(jù)泄漏,因為檢測是獨立于通信內(nèi)容(即有效負載)進行的,而通信的內(nèi)容通常被攻擊者(例如,使用隱寫術(shù)[36])混淆為主要機制,以避免通過網(wǎng)絡進行檢測。

從網(wǎng)絡角度來看,無法確定特定通信是否被混淆時是否包含敏感數(shù)據(jù)。這是當前解決方案[2、12、14、25-27]失敗的主要原因,因為當它們通過網(wǎng)絡傳輸時,它們試圖識別并停止敏感數(shù)據(jù),但是數(shù)據(jù)已經(jīng)被混淆并且無法識別。嘗試檢測異常的加密出站通信的方法[1、13]也失敗了,因為它們依賴于加密或壓縮的高熵值。但是,當惡意軟件在加密后使用編碼時,熵會急劇下降,并且不會檢測到滲透。量化泄漏信息量的方法似乎更合適[6]。 DECANTeR將泄漏量化方法與應用程序指紋相結(jié)合,以檢測新的軟件泄漏數(shù)據(jù)。通過檢測96.8%的信息竊取者樣本,這種組合已顯示出良好的性能,而當前最新的主機特定方法僅達到40%。


7相關(guān)工作

在本節(jié)中,我們討論有關(guān)特定威脅和特定主機方法的相關(guān)工作。

Threat-Specific Approaches : 特定于威脅的方法。

1. 從惡意軟件群集自動生成簽名:研究人員提出了幾種根據(jù)網(wǎng)絡功能對惡意軟件樣本進行群集的方法,并從這些群集中生成簽名[18,20-22]。 Rafique和Caballero提出了FIRMA [22],該工具可根據(jù)相似的協(xié)議(例如HTTP,SMTP和IRC)功能將惡意軟件樣本聚合到各個家族中,并為每個家族生成一組網(wǎng)絡簽名。 Perdisci等。 [20,21]提出了一種根據(jù)URL相似性將惡意軟件聚類的技術(shù),并從URL中提取子令牌,這些子令牌用于識別網(wǎng)絡上的惡意通信。 Nelms等。 [18]提出了一種基于自適應模板的技術(shù),該模板是根據(jù)對已知僵尸網(wǎng)絡流量的觀察而創(chuàng)建的,可用于檢測實時網(wǎng)絡中的僵尸程序,甚至識別它們屬于哪個家族。 Zand等。 [33]提出了一種通過識別和排名惡意流量中最相關(guān)和最頻繁的字符串來生成簽名的方法。 Zarras等。 [34]提出了BOTHOUND,一種提取良性和惡意軟件的所有標頭鏈(即HTTP請求中的標頭字段集)的系統(tǒng),如果惡意請求的標頭鏈與已知的良性軟件不同,或者如果它們的標頭鏈不同,則可以識別惡意請求。匹配,但其HTTP模板與現(xiàn)有的惡意模板匹配。 DECANTeR與這些技術(shù)不同,因為DECANTeR不會從已知的惡意軟件樣本集中創(chuàng)建簽名。

2. 基于異常的特定威脅檢測:幾項研究研究了基于異常的技術(shù)來識別網(wǎng)絡中的僵尸網(wǎng)絡流量[4,10,11]。這些技術(shù)利用了僵尸網(wǎng)絡顯示的特定網(wǎng)絡模式,并使用惡意樣本來訓練其檢測模型。例如,同一僵尸網(wǎng)絡感染的網(wǎng)絡中的多個主機具有通用的通信模式。 Bartos等。 [3]建立了一個識別惡意行為的分類器,并對其進行了優(yōu)化,使其對于惡意軟件行為的改變是不變的。但是,這種方法在分類器訓練期間也需要惡意軟件。許多其他研究提出了基于異常的檢測技術(shù),該技術(shù)分析了可以代表特定威脅行為的不同特征。它適用于Web攻擊[16],分布式拒絕服務[9],加密數(shù)據(jù)滲透[13]等環(huán)境。盡管我們也使用基于異常的檢測方法,但我們既不使用特定功能來檢測特定威脅,也不使用已知惡意樣本來訓練我們的模型。 DECANTeR專注于僅對良性行為建模,并通過觀察異常來識別惡意流量。

Host-Specific Approaches: 特定于主機的方法。

此類別包含的方法僅對主機生成的正常網(wǎng)絡行為建模,而無需了解威脅或已知惡意軟件樣本的其他信息。在[35]中,Zhang等。提出了一種基于用戶意圖的方法來檢測隱形惡意軟件的通信。提出的方法監(jiān)視網(wǎng)絡和主機活動,并創(chuàng)建一個觸發(fā)關(guān)系圖(TRG),該圖將一組HTTP請求綁定到觸發(fā)它們的用戶操作。這種方法可以檢測到惡意軟件,因為其HTTP流量與用戶活動無關(guān)。但是,它使用基于主機的信息(例如,進程ID),這在我們的系統(tǒng)模型之外。 WebTap [5]是一種根據(jù)不同功能(例如,標題信息,帶寬,請求大小和請求規(guī)則性)創(chuàng)建用戶瀏覽行為的統(tǒng)計模型的工具。 WebTap使用此信息來識別未知的HTTP通信并檢測秘密通信。但是,它的誤報率很高,為12%,因為該工具僅對瀏覽器流量進行建模,因此背景流量被視為異常。這使WebTap不切實際。 Schwenk和Rieck提出了DUMONT [24],該系統(tǒng)可檢測HTTP上的秘密通信。通用方法類似于WebTap,但是它們使用一類SVM分類器來構(gòu)建用戶的HTTP流量模型。 DUMONT僅使用HTTP標頭的幾種數(shù)字功能,其最終目標是為每次使用描述“平均” HTTP請求。檢測性能比WebTap差(平均檢測率89.3%),但是DUMONT產(chǎn)生的誤報數(shù)量要少得多,并且遭受的回避嘗試也較少。 DECANTeR與WebTap和DUMONT有所不同,因為它使用一種新技術(shù)來建模良性流量:被動應用程序指紋識別。此外,與WebTap和DUMONT相比,DECANTER提供了一些機制來使指紋適應主機行為的變化。

8結(jié)論

在這項工作中,我們展示了如何對基于HTTP的應用程序進行指紋識別并用于檢測異常通信。 在培訓階段可以使用這種技術(shù)而無需使用惡意數(shù)據(jù),因此可以避免來自特定惡意軟件樣本的任何可能的偏差。 而且,所提出的技術(shù)獨立于其有效載荷來檢測異常通信,從而成為用于數(shù)據(jù)泄露和未知惡意軟件的有前途的解決方案。 這將我們的工作與大多數(shù)現(xiàn)有解決方案區(qū)分開來,后者通常對網(wǎng)絡流量進行建模以檢測特定的攻擊或惡意軟件行為(從已知惡意軟件的群集中提取),或嘗試識別網(wǎng)絡有效負載內(nèi)的敏感數(shù)據(jù)。 我們已經(jīng)在稱為DECANTeR的系統(tǒng)中實施了該技術(shù),并且我們對其進行了評估,與其他最新解決方案相比,它具有更好的檢測性能。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容