史飛洪,李敏芳
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,網(wǎng)絡(luò)安全問題變得日益嚴重。結(jié)合深度學習技術(shù)對網(wǎng)絡(luò)安全態(tài)勢進行感知并以此解決網(wǎng)絡(luò)安全問題,具有廣闊的應用前景。一般來說,網(wǎng)絡(luò)安全態(tài)勢感知具有態(tài)勢要素提取、態(tài)勢理解以及態(tài)勢預測三個核心要素[1],具體如圖1 所示。
圖1 態(tài)勢感知三級模型
現(xiàn)在,大多網(wǎng)絡(luò)安全問題都是由Web 攻擊引起的,如SQL 注入、Web 后門以及代碼執(zhí)行等。而Web 攻擊數(shù)據(jù)基于超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)請求,是文本數(shù)據(jù)的一個類型。在基于深度學習的文本分析研究上,最初,由于循環(huán)神經(jīng)網(wǎng)絡(luò)(Rerrent Neural Network,RNN)能夠記憶序列信息的上下文語義信息,所以其應用范圍為文本數(shù)據(jù)[2]。但是,RNN 存在梯度消失和梯度爆炸的問題[3]。為解決這一問題,此后出現(xiàn)了長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)[4]和引入了門控循環(huán)單元(Gated Recurrent Unit,GRU)的RNN 神經(jīng)網(wǎng)絡(luò)[5]。兩者都是通過引入門的機制來解決RNN 的梯度消失和梯度爆炸問題,只不過GRU 在保證性能的同時,比LSTM 具有更少的門。但兩者都是RNN 的變種,因此也存在無法并行訓練、訓練效率低等問題。隨著訓練復雜度的增加以及訓練數(shù)據(jù)規(guī)模的日益增大,這一弊端越來越明顯?;诖?。KIM[6]將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)應用到文本分類任務(wù)。針對CNN 并不能很好地捕獲特征圖的重要信息問題,引入了SEnet[7]中的SE(Squeeze-and-Excitation)模塊注意力機制,獲取特征的重要程度。
綜上所述,GRU 雖然能夠獲取文本的上下文語義信息,但是存在無法并行訓練、效率低以及不能有效注意到單詞的重要程度的問題。而SEnet 雖然能解決上述問題,但是同樣不能充分提取單詞自身的語義信息。針對上述問題,本文提出了E-SECNN 模型。首先利用Embedding 層獲取單詞自身的語義信息,其次利用CNN 解決無法并行訓練、效率低的問題,最后利用SE 模塊給予CNN 提取到的特征圖不同的權(quán)重,來注意到不同單詞的重要程度。為驗證E-SE-CNN 的模型的有效性,本文在基于告警日志構(gòu)建的Web 攻擊數(shù)據(jù)集的基礎(chǔ)上,設(shè)計了5組實驗來進行對比。
E-SE-CNN 模型包含輸入模塊、Embedding 模塊、SE-CNN 模塊以及輸出模塊,具體如圖2 所示。
圖2 E-SE-CE 模型結(jié)構(gòu)圖
經(jīng)過處理的告警日志數(shù)據(jù)集的輸入序列長度為300,所以輸入模塊的輸入詞向量序列長度為300,記為X300=w1,w2,w3,…,w300,用于輸入Embedding 模塊中。
Embedding 模塊輸入為X300,即長度為300 的token序列,輸出為token 序列的分布式表示矩陣X300,224。具體來說,這一模塊主要是用來對輸入的詞向量序列進行分布式表示,使其能夠包含充足的語義信息。輸入模塊的詞向量序列輸入到Embedding 模塊最終獲得的詞向量序列的分布式表示如式(1)所示:
式中:X300為經(jīng)過詞向量化之后的長度為300 的token 序列,每條數(shù)據(jù)包含300 個單詞;X300,224為經(jīng)過Embedding操作之后,這300 個單詞的分布式表示矩陣。
SE-CNN 模塊的輸入為token 序列的分布式表示矩陣X300,224,輸出則為帶有權(quán)重的特征圖。具體由圖2 可知,SE-CNN 模塊分別由兩個CNN block和SE block 交叉連接組成,每個CNN block 由若干個卷積層、池化層及批歸一化層組成,每個SE block則由通道注意力機制和殘差機制組成。SE-CNN 模塊主要是對輸入token 序列分布式表示矩陣進行特征圖提取、變換以及為不同通道的特征圖賦予不同權(quán)重,以期注意到更加重要的單詞。其中,CNN 部分主要負責特征圖的提取、變換;SE 部分主要負責對CNN提取、變換后的特征圖通道賦予不同的權(quán)重。SE 部分的結(jié)構(gòu)如圖3 所示,它主要通過殘差連接的方式對每個通道賦予權(quán)重。假設(shè)輸入特征圖尺寸為C×H×W(其中C是特征圖的通道數(shù),H為特征圖的高度,W為特征圖的寬度),這一特征圖先經(jīng)過通道注意力機制獲取每個通道的權(quán)重值Cw,再通過殘差連接的方式進行對原來特征圖的通道賦予權(quán)重Cw,獲取到賦予通道權(quán)重的特征圖。
圖3 SE block 結(jié)構(gòu)圖
SE block 的具體機制如下。
首先,對卷積層CL 層輸出的特征圖通過GAL層進行全局平均池化,以完成對特征圖在空間維度的壓縮,只保留通道維度,特征圖的尺寸由原來的C×H×W變?yōu)镃×1×1:
其次,通過全連接層FL1,經(jīng)過ReLU 激活進行非線性變換后,將通道維度壓縮,以減少參數(shù)量和計算量,具體為:
輸出模塊的輸入為SE-CNN 模塊的輸出(SE block2 的輸出SLout),輸出為每個標簽的概率。由圖2 可知,輸出模塊由Flatten 層、Sigmoid 層以及分類結(jié)果三部分組成。其中,F(xiàn)latten 層主要做展平操作,對SE-CNN 模塊輸出的特征圖展平成一維;Sigmoid 層對展平后的特征向量進行歸一化(由于任務(wù)是多標簽分類,因此選取的是Sigmoid 函數(shù));分類結(jié)果則輸出滿足閾值的標簽,完成對Web 攻擊數(shù)據(jù)的多標簽分類。
由于本文是某運營商的一個大數(shù)據(jù)分析與挖掘項目的一個模塊,因此本研究的數(shù)據(jù)集為該運營商網(wǎng)絡(luò)安全設(shè)備產(chǎn)生的Web 攻擊日志數(shù)據(jù)。數(shù)據(jù)集包含了從2021 年5 月—2021 年11 月共6 個月的告警日志數(shù)據(jù),共計約2 400 萬條數(shù)據(jù),脫敏后的數(shù)據(jù)集共有12 個屬性。數(shù)據(jù)集的具體詳情如表1 所示。
實際上,Web 攻擊日志數(shù)據(jù)是網(wǎng)絡(luò)安全設(shè)備通過對每條請求數(shù)據(jù)進行專家系統(tǒng)的規(guī)則匹配而生成的。結(jié)合表1 可以得知,除了dip,dport,sip,sport,request_head,time 這6 個屬性,其余的屬性都是基于網(wǎng)絡(luò)安全設(shè)備的專家系統(tǒng)生成的。因此,本文以專家系統(tǒng)生成的可信度較高且經(jīng)過網(wǎng)絡(luò)安全管理人員檢查過的Web 攻擊日志數(shù)據(jù)為指導,學習原始數(shù)據(jù)中的規(guī)律,并訓練出網(wǎng)絡(luò)安全態(tài)勢預測模型。
表1 數(shù)據(jù)集詳情
通常情況下,大規(guī)模的數(shù)據(jù)集存在很多失真的數(shù)據(jù)。除此之外,原始數(shù)據(jù)集本身的數(shù)據(jù)形式并不符合模型的輸入格式。因此,必須對獲取到的數(shù)據(jù)進行初步的篩選,也就是預處理。在本文中,數(shù)據(jù)預處理主要包含數(shù)據(jù)清洗、特征選擇及特征重構(gòu)三部分。數(shù)據(jù)清洗主要負責清洗掉置信度較低且未經(jīng)過網(wǎng)絡(luò)安全管理人員檢查的Web 攻擊日志數(shù)據(jù),清洗之后,數(shù)據(jù)集由原來的2 400 萬條縮小到約900萬條;特征選擇主要選擇合適的屬性作為本文模型的輸入和標簽,這里選擇了request_head 這一屬性作為模型的輸入,attack_mode_name_cn(攻擊列表)屬性作為數(shù)據(jù)集的標簽;特征重構(gòu)主要負責重構(gòu)模型的輸入和標簽數(shù)據(jù),這里對文本類型的request_head(請求頭)數(shù)據(jù),根據(jù)專家意見制定了若干個正則規(guī)則用來切分數(shù)據(jù),從而構(gòu)建字典完成request_head 的詞向量化(長度為300 的token 序列),同樣對文本類型的attack_mode_name_cn(攻擊列表)數(shù)據(jù)進行了標簽化(由于其總共有56 類,因此標簽為長度為56 的向量)。經(jīng)過上述三步預處理操作后的數(shù)據(jù)如表2 所示。
表2 預處理后的數(shù)據(jù)
本文的實驗環(huán)境為:Ubuntu 操作系統(tǒng),CPU為9 核Intel(R) Xeon(R) Silver 4210R CPU@2.40 GHz,內(nèi)存為256 GB,顯卡為RTX 3090,顯存為24 GB,編程語言為Python 3.7,深度學習框架為Tensorflow 和Keras。
本文采取F1score 作為評估指標。若該指標較高,表示模型在高占比的標簽上具有良好的表現(xiàn)。除此之外,也保留了Recall和Precision作為評估指標。同樣,為了客觀地評價模型的性能,本文分別計算了BCE Loss(Binary Cross Entropy Loss)和Hamming Loss。這5 個評估指標的計算式分別如下。
式中:n表示類別個數(shù),在本研究中是56;m表示樣本數(shù),yj為樣本j的標簽,y^j為樣本j的預測結(jié)果;yij表示樣本j在第i類上的標簽,y^ij表示樣本j在第i類上的預測結(jié)果。
為了評估Embedding 層對token 序列進行分布式表示是否對語義信息的表示有益,本文設(shè)計了兩個網(wǎng)絡(luò)模型做了一組對比實驗。這兩個模型分別為MLP 和E-MLP。MLP 是一個簡單的多層感知機,輸入的是token 序列。E-MLP 是經(jīng)過Embedding 層之后MLP 網(wǎng)絡(luò)輸入的分布式表示的token 序列特征圖。圖4 給出了在Web 攻擊數(shù)據(jù)集上,訓練過程中驗證集上hamming loss 變化曲線。由圖4 可知,E-MLP 能夠更快地收斂,且損失值遠遠低于MLP的損失值。圖4 中的曲線比較平滑、看不出波動的原因是,E-MLP 和MLP 的損失值差距過大,而波動相對于這個差距是很小的一個數(shù)字,所以會看起來很平滑,實際上是存在波動的。
圖4 MLP 和E-MLP 驗證集漢明損失變化圖
表3 的結(jié)果展示了引入了Embedding 層后的E-MLP 網(wǎng)絡(luò)在測試集上的5 種評估指標均遠遠高于未引入Embedding 層的MLP 網(wǎng)絡(luò),并且在推理速度上相等。實驗表明,Embedding 層對token 語義信息的提取具有非常積極的意義。
表3 Embedding 層對Web 攻擊分類結(jié)果的影響
為了評估CNN 相對于GRU 在訓練速度上是否有提升以及表現(xiàn)性能的變化,本文設(shè)計了兩個網(wǎng)絡(luò)模型做了一組對比實驗。這兩個網(wǎng)絡(luò)模型分別為E-GRU和E-CNN。E-GRU是通過Embedding層之后,GRU 網(wǎng)絡(luò)輸入的分布式表示的token 序列特征圖,E-CNN 是經(jīng)過Embedding 層之后,CNN 網(wǎng)絡(luò)輸入的分布式表示的token 序列特征圖。圖5 給出了在Web 攻擊數(shù)據(jù)集上訓練過程中驗證集上hamming loss變化曲線。由圖5可知,E-CNN能夠更快地收斂,且損失值低于E-GRU 的損失值。
圖5 E-GRU 和E-CNN 驗證集漢明損失變化圖
表4 的結(jié)果展示了E-GRU 和E-CNN 兩個網(wǎng)絡(luò)在測試集上的表現(xiàn)。在5 種評估指標上,E-CNN在其中4 種上略微高于E-GRU,說明CNN 神經(jīng)網(wǎng)絡(luò)對語義特征具有較強的提取表征能力。值得注意的是,E-CNN 在測試集上的速度相較于E-GRU 提升約21%。實驗表明,相較于GRU,CNN 對于訓練推理速度有顯著提升,且性能有略微提升。
表4 CNN 相對于GRU 對Web 攻擊分類結(jié)果的影響
為了評估通道注意力機制對Web 攻擊分類結(jié)果的影響,本文設(shè)計了兩個網(wǎng)絡(luò)模型做了一組對比實驗。這兩個網(wǎng)絡(luò)模型分別為E-CNN和E-SE-CNN。E-CNN 不具有通道注意力機制,E-SE-CNN 帶有通道注意力機制。圖6 給出了在Web 攻擊數(shù)據(jù)集上的訓練過程中驗證集上hamming loss 變化曲線。由圖6 可知,E-SE-CNN 能夠更快地收斂,且損失值低于E-CNN。
圖6 通道注意力機制-驗證集上漢明損失變化圖
表5 的結(jié)果展示了在引入了通道注意力機制后的E-SE-CNN 網(wǎng)絡(luò)在測試集上的5 種評估指標均高于未引入通道注意力機制的E-CNN 網(wǎng)絡(luò)。由于引入了通道注意力機制,增加了計算量,因此在推理訓練速度上有一定程度的增加。實驗結(jié)果表明,通道注意力機制對重要語義信息的提取具有一定的積極的意義。
表5 通道注意力機制對Web 攻擊分類結(jié)果的影響
為了進一步對比所有模型在Web 攻擊數(shù)據(jù)集上的表現(xiàn),且為了消除MLP 損失值過大對量綱的影響,詳細觀察Hamming Loss 變化,去除MLP 的損失變化后,整體損失變化曲線如圖7 所示。
圖7 所有模型在驗證集漢明損失變化圖
由圖7 可知,在所有模型中,E-SE-CNN 具有最快的收斂速度和最低的損失值。其次是E-CNN。這表明在收斂速度上,CNN 具有較大的優(yōu)勢,并且性能表現(xiàn)也較好。
表6 的結(jié)果展示了所有模型在Web 攻擊數(shù)據(jù)集上5 種評價指標的表現(xiàn)。其中,引入了Embedding 層、CNN 及通道注意力機制的E-SECNN 具有最佳的表現(xiàn),相較于E-GRU,性能有較高的提升,同時訓練推理速度并沒有增加。實驗結(jié)果表明,Embedding 層對于語義信息的表征具有極大的積極意義,CNN 對于訓練推理速度的提升具有較大的影響,通道注意力機制對于重要語義信息的提取具有一定的積極意義。
表6 所有模型在Web 攻擊數(shù)據(jù)集上的表現(xiàn)
針對GRU 神經(jīng)網(wǎng)絡(luò)不能很好地注意到關(guān)鍵詞且訓練速度較慢的問題,本文提出了一種融合詞嵌入和通道注意力機制的網(wǎng)絡(luò)安全態(tài)勢預測模型E-SE-CNN。該模型首先利用Embedding 層進行詞嵌入獲取token 序列的分布式語義表示矩陣,利用該矩陣構(gòu)建token 序列的二維特征圖,其次基于此引入2D 卷積對特征圖進行語義提取和尺寸變換,最后引入通道注意力機制(SE)實現(xiàn)對重要語義信息的關(guān)注。E-SE-CNN 的優(yōu)勢在于,在保證了訓練推理速度的同時,充分提取了token 序列的語義信息,較好地關(guān)注了重要的語義信息,進而提升了模型的性能。實驗結(jié)果表明,該模型在5 種評價指標上都具有較好的表現(xiàn),其中F1score 達到了0.998 621,充分表明了該模型的有效性和可行性。
本文在設(shè)計卷積神經(jīng)網(wǎng)絡(luò)時,僅僅考慮了單支卷積神經(jīng)網(wǎng)絡(luò),并沒有充分利用CNN 結(jié)構(gòu)靈活的特性,設(shè)計多支交叉融合的CNN,進一步提升模型的性能,加快模型的訓練推理速度。由于時間原因,模型的驗證工作僅在自建的Web 攻擊數(shù)據(jù)集上進行。在未來的研究工作中,將結(jié)合現(xiàn)有的優(yōu)秀的CNN 網(wǎng)絡(luò)結(jié)構(gòu),設(shè)計參數(shù)量更少、訓練推理速度更快、性能更好的多支交叉融合的CNN 模型,進一步提升模型的表現(xiàn)。同時,為了進一步驗證模型的表現(xiàn),將會對模型在公共數(shù)據(jù)集上進行驗證。