【论文阅读】HTTP 流量和恶意 URL 的异常检测
Part 1關(guān)于論文
基本信息
題目:HTTP 流量和惡意 URL 的異常檢測(cè) 源碼:sec2vec源代碼
摘要
在本文中,我們將展示如何利用自然語(yǔ)言處理(NLP)中已知 的方法來(lái)檢測(cè) HTTP 請(qǐng)求中的異常情況和惡意 URL。目前大 多數(shù)針對(duì)類似問(wèn)題的解決方案要么基于規(guī)則,要么使用人工 選擇的特征進(jìn)行訓(xùn)練。然而,現(xiàn)代 NLP 方法在深入理解樣本 并因此改進(jìn)分類結(jié)果方面具有巨大潛力。其他依賴于類似想法 的方法往往忽略了結(jié)果的可解釋性,而這一點(diǎn)在機(jī)器學(xué)習(xí)中 非常重要。我們正試圖填補(bǔ)這一空白。此外,我們還展示了 所提出的解決方案在多大程度上能夠抵御概念漂移。在我們 的工作中,我們比較了三種不同的矢量化方法:簡(jiǎn)單 BoW、 fastText 和當(dāng)前最先進(jìn)的語(yǔ)言模型 RoBERTa。獲得的向量隨 后將用于分類任務(wù)。為了解釋我們的結(jié)果,我們使用了 SHAP 方法。我們?cè)谒膫€(gè)不同的數(shù)據(jù)集上評(píng)估了我們方法的可行性 :CSIC2010, UNSW-NB15, MALICIOUSURL 和 ISCXURL2016.前兩個(gè)與 HTTP 流量有關(guān),另外兩個(gè)包含惡意 URL 。我們展示的結(jié)果與其他結(jié)果不相上下,甚至更好,最重要 的是,這些結(jié)果是可解釋的。
關(guān)鍵點(diǎn)
NLP機(jī)器學(xué)習(xí)的可解釋性 抵御概念漂移 比較了三種矢量化方法:簡(jiǎn)單 BoW、 fastText 和當(dāng)前最先進(jìn)的語(yǔ)言模型 RoBERTa
1. 什么是機(jī)器學(xué)習(xí)的的解釋性?
關(guān)于機(jī)器學(xué)習(xí)可解釋性(Interpretability),又或者是XAI(Explainable Artificial Intelligence )其實(shí)就是搞機(jī)器學(xué)習(xí)的研究者們始終存在的一個(gè)擔(dān)憂:很多現(xiàn)在的深度神經(jīng)網(wǎng)絡(luò)沒(méi)有辦法以一種從人類角度完全理解模型的決策。我們知道現(xiàn)在的模型既可以完勝世界圍棋冠軍電競(jìng)冠軍,圖形識(shí)別語(yǔ)音識(shí)別接近滿分,然而我們對(duì)這些預(yù)測(cè)始終抱有一絲戒備之心,就是我們因?yàn)椴煌耆私馑麄兊念A(yù)測(cè)依據(jù)是什么,不知道它什么時(shí)候會(huì)出現(xiàn)錯(cuò)誤。這也是現(xiàn)在幾乎所有的模型都沒(méi)法部署到一些對(duì)于性能要求較高的關(guān)鍵領(lǐng)域,例如運(yùn)輸,醫(yī)療,法律,財(cái)經(jīng)等。(引用自https://zhuanlan.zhihu.com/p/141013178)
2. 什么是概念漂移?
如果要對(duì)概念漂移下定義的話,它的定義是:概念漂移是一種現(xiàn)象,即目標(biāo)領(lǐng)域的統(tǒng)計(jì)屬性隨著時(shí)間的推移以一種任意的方式變化。 下面這張圖很直觀: 當(dāng)模型學(xué)到的模式不再成立時(shí),就會(huì)發(fā)生概念漂移。 這種變化可快可慢,比如慢一點(diǎn)的情況: 宏觀經(jīng)濟(jì)條件不斷變化。隨著一些借款人拖欠貸款,信用風(fēng)險(xiǎn)被重新定義。計(jì)分模型需要學(xué)習(xí)它。 而突然變化的案例就是,covid-19,幾乎在一夜之間,流動(dòng)性和購(gòu)物模式發(fā)生了轉(zhuǎn)變。它影響了各種模式,甚至是原本 "穩(wěn)定 "的模式。 家居服,隨著*的隔離政策頒布,開始銷量猛增,口罩也是一樣。 簡(jiǎn)而言之一句話,數(shù)據(jù)沒(méi)有變化,但是世界變了。 (引用自:https://zhuanlan.zhihu.com/p/406281023)
解決的問(wèn)題
目前NLP檢測(cè)方法基于規(guī)則和人工特征工程進(jìn)行訓(xùn)練
Part 2背景
當(dāng)前研究進(jìn)度
自然語(yǔ)言處理(NLP)的快速發(fā)展,已經(jīng)開發(fā) 出了許多文本矢量化方法,其中既有簡(jiǎn)單的方法,如 bag-of-words、 tf-idf 或 bag-of-n-grams ;也有更先進(jìn)的方法,如 Doc2Vec、 fastText、ELMo 或 BERT。其中一些已成功用于解決 HTTP 流量或惡意 URL 中的異常檢測(cè)問(wèn)題。
當(dāng)前相關(guān)方法的優(yōu)缺點(diǎn)
缺少可解釋性 沒(méi)有討論概念漂移的問(wèn)題--分類器運(yùn)行的環(huán)境是不斷變化的, 很難說(shuō)這會(huì)如何影響其有效性。
Part 3本文主要方法
(1)我們提出了一種 HTTP 流量和惡意URL 的矢量化方法,稱為 "Sec2vec"("Security to vector"), 它建立在 RoBERTa 模型的基礎(chǔ)上。我們將其與簡(jiǎn)單的 BoW 和 fasText 方法進(jìn)行了比較。我們使用隨機(jī)森林( Random Forest)在下游分類任務(wù)中對(duì)這些模型進(jìn)行了評(píng)估。
(2) 為了驗(yàn)證我們的矢量化模型(概念漂移)的通用性,我們?cè)诓煌臄?shù)據(jù)集上對(duì)其進(jìn)行了驗(yàn)證(這就是為什么我們需要 至少兩個(gè)同類數(shù)據(jù)集)。
(3) 我們還展示了如何利用矢量表示 法來(lái)分析數(shù)據(jù),并識(shí)別與所發(fā)現(xiàn)的異常情況相關(guān)的可解釋標(biāo)記模式。
對(duì)比三種方法
在我們的工作中,我們比較了下面描述的三種流行的矢量化方法。
BoW。BoW(Bag-of-words)是一個(gè)簡(jiǎn)單的模型,它使用單詞的頻率(獲得的向量中的每個(gè)位置對(duì)應(yīng)一個(gè)單詞)來(lái)表示文檔,或者在我們的示例中,使用從標(biāo)記化階段獲得的標(biāo)記來(lái)表示文檔。矢量大小僅使用最常見(jiàn)的標(biāo)記進(jìn)行限制。此外,在我們的實(shí)現(xiàn)中,我們決定在向量的最后一個(gè)位置表示詞匯外 (OOV) 標(biāo)記。
什么是OOV?
未登錄詞就是訓(xùn)練時(shí)未出現(xiàn),測(cè)試時(shí)出現(xiàn)了的單詞。在自然語(yǔ)言處理或者文本處理的時(shí)候,我們通常會(huì)有一個(gè)字詞庫(kù)(vocabulary)。這個(gè)vocabulary要么是提前加載的,或者是自己定義的,或者是從當(dāng)前數(shù)據(jù)集提取的。假設(shè)之后你有了另一個(gè)的數(shù)據(jù)集,這個(gè)數(shù)據(jù)集中有一些詞并不在你現(xiàn)有的vocabulary里,我們就說(shuō)這些詞匯是Out-of-vocabulary,簡(jiǎn)稱OOV。
fastText。fastText [1] 是一個(gè)類似于 word2vec 的詞矢量化模型。fastText 的主要功能是利用每個(gè)標(biāo)記的內(nèi)部表示,使用有關(guān)其 n-gram 的信息。每個(gè) n-gram 的表示由所有令牌共享,部分解決了 OOV。在我們的工作中,標(biāo)記被矢量化,然后它們的平均值產(chǎn)生線向量,這些線向量用于生成最終的表示向量。
RoBERTa。RoBERTa[14]是一種基于transformer神經(jīng)網(wǎng)絡(luò)架構(gòu)的語(yǔ)言模型。它是對(duì) BERT [4] 的修改——作者刪除了下一句話預(yù)測(cè) (NSP) 目標(biāo),并決定使用更大的小批量和學(xué)習(xí)率進(jìn)行訓(xùn)練。刪除 NSP 目標(biāo)可以在缺乏明確句子邊界的文檔中更好地表示標(biāo)記——從我們的任務(wù)角度來(lái)看,這很重要。在我們的工作中,最終表示向量是樣本中每條線的平均值,每條線都是標(biāo)記表示的平均值。令牌表示是通過(guò)連接模型的最后四層來(lái)獲得的(如原始 BERT 論文中所建議的那樣)。模型的選擇大小為“基本”,最大序列長(zhǎng)度為 512,層數(shù)設(shè)置為 6,以及 12 個(gè)注意頭和 15% 的掩蔽標(biāo)記。
Part 4實(shí)驗(yàn)
1 數(shù)據(jù)集
工作重點(diǎn)是不利用特征工程的半監(jiān)督方法的可解釋性。這方面在文獻(xiàn)中經(jīng)常被忽略,但可解釋性技術(shù)的使用在任何IDS的實(shí)施、維護(hù)和使用中都具有相當(dāng)大的潛力。盡管如此,我們的目標(biāo)是我們的結(jié)果不會(huì)比表中顯示的結(jié)果更差。這個(gè)目標(biāo)已經(jīng)實(shí)現(xiàn)。
2 過(guò)程
首先,我們使用不同的向量長(zhǎng)度(即:96、192、384、768、1536、3072)多次訓(xùn)練矢量化模型(BoW、fastText、RoBERTa)。這個(gè)想法背后的主要?jiǎng)訖C(jī)是展示分類分?jǐn)?shù)如何隨著特征空間的維度而變化。
圖 2 顯示了被視為正類(跨越 5 個(gè) k 倍)的異常類的平均 F1 分?jǐn)?shù)與測(cè)試向量大小之間的關(guān)系。可以看出,最簡(jiǎn)單的矢量化方法(BoW)幾乎總是能給我們帶來(lái)最好的結(jié)果(盡管所有分類器都表現(xiàn)良好,但差異幾乎不明顯)。這證明數(shù)據(jù)集實(shí)際上很容易處理,并且分詞器會(huì)產(chǎn)生有意義的(至少對(duì)于分類器而言)標(biāo)記。請(qǐng)記住,此矢量化器不是上下文相關(guān)的(如 fastText 或 RoBERTa),因此只有“單詞”的頻率很重要。此外,向量大小的增加會(huì)導(dǎo)致模型未知值的減小(OOV – BoW 實(shí)現(xiàn)中的最后一個(gè)位置)。還值得注意的是,僅在正常樣本上訓(xùn)練的矢量化器似乎也顯示出高效率。
最容易解釋的模型是 BoW,因?yàn)樯傻南蛄恐械拿總€(gè)位置都有意義——它以表格形式描述樣本中給定標(biāo)記的頻率(因此,無(wú)需從語(yǔ)言模型中重新推斷修改后的樣本)。圖 3 顯示了分類器的前五個(gè)特征(基于使用 SHAP 庫(kù)獲得的重要性)。在縱軸上顯示所選的標(biāo)記(例如,在CSIC2010數(shù)據(jù)集中,重要的標(biāo)記是:“OOV”、“%”、“/”、"<s>"、“modo”)。
顏色編碼給定標(biāo)記的數(shù)量,與異常類的相關(guān)性由正 SHAP 值給出。可以很容易地看出,這些特征(標(biāo)記)與模型輸出密切相關(guān)。例如,如果“/”符號(hào)的數(shù)量很高(紅色),則很可能是異常。為了進(jìn)一步研究這些標(biāo)記的重要性,我們決定構(gòu)建一個(gè)僅基于它們的簡(jiǎn)單決策樹。表 4 顯示了我們的發(fā)現(xiàn)——盡管新構(gòu)建的分類器無(wú)法正確地為 MALICIOUSURL 數(shù)據(jù)集分配標(biāo)簽,但這些數(shù)據(jù)集非常容易分類。請(qǐng)注意,事實(shí)上,這是 RoBERTa 矢量化器表現(xiàn)最好的唯一數(shù)據(jù)集。為了解釋fastText或RoBERTa,我們使用了SHAP方法。該庫(kù)能夠通過(guò)屏蔽樣本中的每個(gè)標(biāo)記并重新計(jì)算分類概率來(lái)生成文本的特征重要性。由于這個(gè)過(guò)程很耗時(shí),我們決定只分析每個(gè)數(shù)據(jù)集的一個(gè)子集。我們只展示了CSIC2010數(shù)據(jù)集的發(fā)現(xiàn),但我們得出的結(jié)論也適用于所有其他數(shù)據(jù)集。首先,我們從CSIC2010數(shù)據(jù)集中選擇一個(gè)隨機(jī)異常樣本,然后使用RoBERTa模型和歐幾里得距離生成其鄰域。如表5所示(請(qǐng)注意,樣本相似,與注入攻擊有關(guān))。然后,我們計(jì)算了上述的 SHAP 值。表 6 顯示了與攻擊相關(guān)的標(biāo)記的標(biāo)準(zhǔn)化總和。 RoBERTa 模型的結(jié)果比 BoW 的結(jié)果直觀得多,因?yàn)樵摫戆黠@與注入攻擊相關(guān)的標(biāo)記(例如“DROP”)。此外,得分最高的特征可以與百分比編碼字符相關(guān)聯(lián),這些字符通常用于繞過(guò)輸入過(guò)濾(input sanitation)。另一方面,BoW 方法的重要性分?jǐn)?shù)向我們展示了我們已經(jīng)建立的東西——如果“/”的數(shù)量很高(或者“Accept-Language”標(biāo)頭設(shè)置為“en”),那么樣本很可能是異常。雖然它不是一個(gè)毫無(wú)意義的陳述,但此功能在很大程度上依賴于給定的數(shù)據(jù)集。這種方法還允許對(duì)任何樣品中的重要區(qū)域進(jìn)行著色——如圖 4 所示。
樣本“0”,其中包含使用 SHAP 獲得的彩色相關(guān)標(biāo)記。第一張圖片(從上到下)與BoW模型相關(guān),第二張圖片與fastText相關(guān),第三張圖片與RoBERTa相關(guān)。紅色表示應(yīng)與異常相對(duì)應(yīng)的標(biāo)記,藍(lán)色表示樣本的“正常”部分
可以看出,在RoBERTa模型中,樣本的整個(gè)異常部分以紅色突出顯示(查詢的正常部分以藍(lán)色標(biāo)記,大部分是正確的)。fastText 和 BoW 模型都不是這種情況。在這一點(diǎn)上,我們表明,盡管 RoBERTa 沒(méi)有得到最佳結(jié)果,但是分類所基于的特征是可解釋的(分類并非純粹基于數(shù)據(jù)中的強(qiáng)偽影)。與BoW一樣,fastText模型獲得的特征也是不可解釋的(可能是由于多次平均操作)。
這里強(qiáng)調(diào)RoBERTa模型獲得的效果雖然不是很好,但是結(jié)果都是可解釋的。
討論
更詳細(xì)討論的一個(gè)主題是分詞器訓(xùn)練過(guò)程。一般來(lái)說(shuō),如果標(biāo)記是未知的,它們要么被分成更小的塊,要么被替換為“〈unk〉”標(biāo)記(這種情況很少見(jiàn)),因此,表 6 將更難解釋(例如,單詞“DROP”可以分解為單個(gè)字母)。為了證明這一點(diǎn),我們只使用“訓(xùn)練”部分?jǐn)?shù)據(jù)來(lái)訓(xùn)練我們的分詞器,并重新運(yùn)行我們的實(shí)驗(yàn)。表8給出了新獲得的全局(與表6中相同的子集)重要性。盡管所呈現(xiàn)的令牌不再與攻擊明確相關(guān),但它們?nèi)匀槐仁褂酶玫淖值洌ɡ纾俜直染幋a字符)的 BoW 方法更令人信服。針對(duì)先前引入樣本(圖 6)的新生成的局部重要性仍然有用(異常部分標(biāo)記得很好),盡管分類器也考慮了它的其他部分。大多數(shù)分類分?jǐn)?shù)保持穩(wěn)定(表7),盡管RoBERTa模型的CSIC2010數(shù)據(jù)集的結(jié)果有所下降。
圖6中原始選擇的特征
圖8中的新特征
Part 5結(jié)果
我們得到的結(jié)果非常接近所有樣本都被歸類為異常時(shí)得到的結(jié)果。這表明,領(lǐng)域的快速變化可能會(huì)對(duì)分類產(chǎn)生可怕的后果。另一方面,我們還在真實(shí)世界的未標(biāo)記數(shù)據(jù)(服務(wù)器日志)上測(cè)試了其中一個(gè) RoBERTa 模型(和相關(guān)分類器),我們成功發(fā)現(xiàn)了 50 次新 Log4j 漏洞利用嘗試中的 47 次(圖 5)和許多更常見(jiàn)的攻擊嘗試(使用預(yù)測(cè)概率作為異常分?jǐn)?shù))。
對(duì)于四個(gè)數(shù)據(jù)集中的三個(gè)數(shù)據(jù)集,分類結(jié)果保持在同一水平,但是,CSIC2010問(wèn)題為概念漂移帶來(lái)了另一個(gè)方面。盡管 RoBERTa 解決了詞匯量不足的問(wèn)題,但從我們?nèi)蝿?wù)的角度來(lái)看,所有標(biāo)記的知識(shí)仍然很重要。為了克服這個(gè)問(wèn)題,需要一個(gè)更好的分詞器。一種解決方案是使用其他數(shù)據(jù)源(例如 SQL 查詢)對(duì)其進(jìn)行訓(xùn)練。理想情況下,應(yīng)該有公開可用的數(shù)據(jù)集,其中包含來(lái)自各個(gè)網(wǎng)絡(luò)安全領(lǐng)域的文本樣本。另一種選擇是手動(dòng)擴(kuò)展詞匯表或構(gòu)建也可以利用 BBPE 的自定義分詞器。由于HTTP請(qǐng)求結(jié)構(gòu)良好,使用語(yǔ)法樹似乎是一個(gè)很有前途的研究方向。然而,在現(xiàn)實(shí)中,字典中缺少特定的令牌不應(yīng)該是一個(gè)常見(jiàn)的問(wèn)題 - 新的攻擊很少引入許多以前看不見(jiàn)的攻擊(在我們的實(shí)驗(yàn)中,模型不知道單個(gè)惡意令牌,但成功標(biāo)記了異常)。在現(xiàn)實(shí)世界中,嵌入的二進(jìn)制數(shù)據(jù)(例如,會(huì)話 ID、cookie 的內(nèi)容、base64)可能是一個(gè)更大的問(wèn)題。為了保持解決方案的質(zhì)量,可能應(yīng)該將其替換為自定義令牌,特別是為此目的創(chuàng)建的令牌。僅就較差的分類結(jié)果而言,微調(diào)應(yīng)該會(huì)增加它們,但全局解釋仍然不清楚。請(qǐng)注意,微調(diào)意味著將分類器與語(yǔ)言模型一起訓(xùn)練。在我們的實(shí)驗(yàn)中,我們決定使用凍結(jié)表示,因?yàn)橐粋€(gè)沒(méi)有被引入異常概念的功能良好的語(yǔ)言模型,能在一個(gè)完全無(wú)監(jiān)督的系統(tǒng)中帶來(lái)了更大的潛力。這是我們未來(lái)的工作之一。
Part 6總結(jié)
我們認(rèn)為,獲得良好的矢量表示是構(gòu)建正確 IDS 系統(tǒng)的關(guān)鍵。我們?cè)谘芯恐惺褂玫姆诸惼鲙缀鯚o(wú)關(guān)緊要,因?yàn)楂@得的特征提供了精細(xì)的類別分離。請(qǐng)記住,我們以完全無(wú)監(jiān)督的方式訓(xùn)練矢量化器。獲得的模型可以很容易地應(yīng)用于其他情況。因此,未來(lái)最重要的任務(wù)是準(zhǔn)備一個(gè)基于各種來(lái)源的數(shù)據(jù)進(jìn)行訓(xùn)練的RoBERTa模型。
我們相信,它可以像自然語(yǔ)言模型一樣使用——作為任何其他主題相關(guān)任務(wù)的堅(jiān)實(shí)基礎(chǔ)。其次,我們想僅使用無(wú)監(jiān)督的下游方法來(lái)檢查這種模型的有效性,因?yàn)楫?dāng)前的方法需要標(biāo)簽來(lái)訓(xùn)練分類器。這也是我們沒(méi)有將RoBERTa模型與分類器一起訓(xùn)練的原因之一(另一個(gè)是與其他模型進(jìn)行公平的比較),盡管性能可能會(huì)提高。然而,展示盡可能高的結(jié)果并不是我們的目標(biāo)(但我們給出的分?jǐn)?shù)是令人滿意的)。接下來(lái),正如我們?cè)谏弦还?jié)中所描述的,開發(fā)一個(gè)更好的分詞器也很重要。最后,值得如何以增量方式訓(xùn)練模型(和分類器)。換句話說(shuō),如何提高準(zhǔn)確性以及如何處理真實(shí)場(chǎng)景中的概念漂移。
END
一個(gè)只記錄最真實(shí)學(xué)習(xí)網(wǎng)絡(luò)安全歷程的小木屋,最新文章會(huì)在公眾號(hào)更新,歡迎各位師傅關(guān)注!
公眾號(hào)名稱:奇怪小木屋
博客園主頁(yè):
博客園-我記得https://www.cnblogs.com/Zyecho/
總結(jié)
以上是生活随笔為你收集整理的【论文阅读】HTTP 流量和恶意 URL 的异常检测的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: flash怎么简单制作一个小水滴
- 下一篇: java信息管理系统总结_java实现科