A Deep Learning Approach to Fast, Format-Agnostic Detection of Malicious Web Content

一種快速、不區分格式的檢測惡意Web內容的深度學習方法

作者:fish@DAS

原文作者:Joshua Saxe(主頁[1]), Richard Harang, Cody Wild, Hillary Sanders

原文標題:A Deep Learning Approach to Fast, Format-Agnostic Detection of Malicious Web Content.

原文會議:2018 IEEE Security and Privacy Workshops (SPW)

原文鏈接:https://arxiv.org/abs/1804.05020

一、論文主要內容:

本文主要內容是使用深度學習檢惡意Web內容,提出的方法是直接使用簡單正則表達式從靜態HTML文件中提取的與語言無關的token流來表示HTML,再將該HTML文檔的特徵表示輸入到神經網絡中。該方法具有快速、不區分格式等特點,適合部署於終端、防火牆與web代理中。

二、作者的工作:

2.1問題提出

惡意Web內容是網絡攻擊的一大方式,利用惡意web內容的攻擊在當今的網絡上非常普遍。作者認爲檢測和阻止此類惡意內容存在以下挑戰:

•首先,檢測方法必須在用戶終端和防火牆中的硬件上快速運行,以免影響用戶的瀏覽體驗。•其次,方法必須能夠抵禦惡意Web內容中的語法和語義變化,從而避免諸如Javascript模糊處理和文本隨機化之類的對抗性規避技術。•最後,檢測方法必須能夠處理局部惡意內容的情況:嵌入正常的Web內容中的小段惡意代碼。因爲當今的許多網絡攻擊都是在良性網頁中通過惡意的廣告網絡或評論來實現的。

爲了解決這些挑戰,本文提出了一種用於檢測惡意Web內容的深度學習方法。

2.2模型設計

設計思想

首先對於局部惡意片段,作者認爲要確定給定的文檔是惡意的,需要模型在多個層次規模上檢查該文檔。這是因爲惡意Javascript代碼段的大小範圍很小,但是HTML文檔的長度差異很大,所以惡意內容部分在整個HTML文檔比例中是可變的。

作者還認爲不應該顯式分析HTML文檔(HTML,Javascript,CSS和原始數據的集合),願意是實現起來複雜,需要大量的計算開銷,並且會在檢測器自身內部打開攻擊頁面,這有可能潛在地被攻擊者利用。事實上web頁面中可執行部分是有JavaScript控制的,因此也不應該在HTML文檔中進行Javascript的仿真,靜態分析或符號執行。

到此,思路清晰。作者僅僅對HTML文檔計算詞袋樣式的token,並且不只使用表示整個文檔token流,還使用多個不同層次規模大小的表示文檔的token流。

具體實現

本文方法包括一個特徵提取器和一個神經網絡模型,特徵提取器即從HTML文檔中解析出一系列token,神經網絡模型通過使用多個層次規模的聚合特徵的共享權重來進行分類。其中神經網絡模型部分包括兩個邏輯組件:

•inspector,它以不同層次規模大小的文檔按比例應用共享權重,並將有關文檔的信息聚合爲1024長度的向量。•master network,該網絡使用inspector的輸出爲輸入,進行最終分類決策。

Feature extraction模塊:

原始數據爲HTML文檔,使用正則([^\x00-\x7F]+|\w+)對文檔進行分割,這個正則表達式的意思是匹配除了ASCII值從0-127的字符外的字符或者匹配包括下劃線的任何單詞字符(等價於’[A-Za-z0-9_]’)二者之一。簡單說就是去掉了大部分標點符號。

我們將token流分成16個等長的連續塊,其中每個塊的長度定義爲token數,如果文檔中的令牌數不能被16整除,則最後一個塊中的token數會比其他塊少。

img

最後使用散列方法,將每個token塊散列到1024個分區,16個塊則表示爲16X1024的向量,該向量表示一個HTML文檔的詞袋樣式的token。

img

Inspector模塊:

img

將16個token塊分成8份、4份、2份、1份四個不同大小。一共就是31個token塊。Inspector具有兩個全連接層,每層具有1024個ReLU單元,使用歸一化來防止梯度消失,dropout設置爲0.2。經過上述過程,31個塊每個都輸出爲1024維的向量,過最大池化得到一個輸出。

Master模塊:

img

最後一層是26個Sigmoid函數,其中1個用於判斷該Web是否爲惡意,其餘25個用於判斷具體類別。

三、實驗

3.1實驗數據

作者使用從威脅情報站點VirusTotal收集的數據。VirusTotal每天接收數萬個新的HTML文件,使用來自數十家安全供應商的60個Web威脅掃描程序掃描它們。作者所在的Sophos公司訂閱了VirusTotal的付費威脅情報服務,會收到提交給VirusTotal的每個HTML文件及其相應的掃描結果。本文中使用的實驗數據集是在2017年前10個月從VirusTotal Feed中收集的。

訓練/測試劃分是根據文件在VirusTotal上首次報告的時間計算的。此過程確保

•訓練和測試集是不同的•訓練和測試過程近似於實際的部署方案

數據的標籤是從掃描器的綜合結果得出,標記規則爲:

•Benign: receiving 0 detections from security vendors•Malicious: receiving 3 or more detections•Indeterminate: received 1 or 2 detections, and did not use them

img

這種標記方法帶來的弊端是隻會簡單地記住安全廠商產品已經能檢測出惡意web內容的知識,而不是學習新的檢測功能,以檢測廠商社區可能會錯過的惡意軟件。

實驗將9月1日之前的數據用於訓練,9月1日之後的數據用於測試。這樣切分數據集有助於減輕供應商社區可能會錯過的惡意Web內容的能力的問題。這是因爲使用的測試集是訓練集中未見過的文件。爲了證明提出的方法的有效性,作者還手動檢查了樣本,標籤爲良性,但是將其分配爲惡意的可能性很高,即誤報率較高,他們發現這些假陽性文件中的大多數都明顯是惡意或垃圾內容。

3.2實驗步驟

作者進行了五個對比實驗,其中三個測試了本文的方法相對於其他模型的有效性,剩下兩個探索了模型的內部工作原理。

三個測試模型有效性的對比實驗:

•LR-BoT:Elastic Net regularized logistic regression on bag of token features.•FF-BoT:A feed-forward architecture using the 16284-length feature hashed bag of tokens feature representation used above.•XGBoost-BoT:A gradient boosted decision tree (XG-Boost) model using the same feature input as FF-BoT.

img

兩個驗證模型內部結構對實驗結果的影響的對比實驗:

•FlatSequential:刪除了平均池化步驟,即在輸入到Inspector模型的31個聚合表示中,該模型只使用了最初的16個連續塊。該對比模型檢驗了使用不同層次規模的文檔對檢測結果的準確率有所提升。•FlattenedFF:使用相同的特徵表示,但沒有Inspector模塊,即沒有應用共享權重,而是簡單地將16x1024的token向量的轉換爲單個16384長的向量,並將其輸入到前饋神經網絡中,使用單獨權重。該對比模型檢驗了共享權重對檢測結果的準確率有所提升。

img

3.3實驗結果

作者提出的方法誤報率爲0.1%,ROC曲線爲97.5%,對小規模的網頁能以每秒超過100條的速度進行分類,能夠檢測到安全社區遺漏的未知惡意Web內容。進一步地,對不同惡意家族也能進行區分,對XSS注入、瀏覽器漏洞利用和iFrame操縱攻擊檢測結果突出,但對釣魚網站的表現最差。

img

四、總結

文章沒有使用常規的詞袋模型用於提取數據特徵,而是使用hash對原始HTML文檔進行處理,並考慮了不同層次規模大小的劃分,以往的研究多是直接使用一個整體,沒有考慮局部的一些特徵,這也許會錯過有效信息導致檢測結果的偏差。這篇文章的對數據的處理這塊想法新穎,不過模型訓練部分屬於常規操作,實驗結果表現良好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章