牟宸洲,薛 質(zhì),2,施 勇,2
(1.上海交通大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,上海 200240;2.上海市信息安全綜合管理技術(shù)實(shí)驗(yàn)室,上海 200240)
入侵檢測即是對(duì)入侵行為的檢測,通過收集并分析已有的網(wǎng)絡(luò)審計(jì)數(shù)據(jù)、日志記錄以及用戶行為記錄等網(wǎng)絡(luò)信息以及計(jì)算機(jī)系統(tǒng)中可以收集到的信息數(shù)據(jù),檢查、判斷是否存在違反安全策略的攻擊行為。入侵檢測是一種主動(dòng)防護(hù)的保護(hù)措施,提供對(duì)包括外部攻擊、內(nèi)部攻擊以及內(nèi)部誤操作等情況的實(shí)時(shí)防護(hù),及時(shí)對(duì)入侵威脅做出響應(yīng)和警告。近年來,用戶行為異常檢測已經(jīng)成為入侵檢測研究的一個(gè)重要分支。由于用戶輸入具有多變、復(fù)雜的特性,且根據(jù)時(shí)間、工作任務(wù)、興趣等不確定性因素產(chǎn)生變化,針對(duì)用戶輸入的shell命令,單條命令與前后輸入命令之間相互關(guān)聯(lián),具備序列化和多樣化的特點(diǎn)。
用戶行為檢測的具體實(shí)現(xiàn)大體可以分為訓(xùn)練和檢測兩個(gè)階段。在訓(xùn)練階段,通過已有的用戶輸入經(jīng)過分類作為訓(xùn)練數(shù)據(jù)集,構(gòu)建模型區(qū)分正常輸入和異常輸入;在檢測階段,模型讀取當(dāng)前用戶輸入識(shí)別是否是異常數(shù)據(jù),可能是該用戶的誤操作,也有可能是外部入侵者進(jìn)行非法操作,從而引發(fā)告警。
針對(duì)用戶shell命令行為的異常檢測受到了不少科研人員的關(guān)注,成為近些年的研究熱點(diǎn)。國內(nèi)外已經(jīng)開展采用機(jī)器學(xué)習(xí)如貝葉斯模型、支持向量機(jī)(Support Vector Machine,SVM)以及Markov模型等技術(shù)在用戶偽裝攻擊檢測中的應(yīng)用研究。Lane等人[1-2]的研究展示基于隱Markov模型(Hidden Markov Model)和實(shí)例學(xué)習(xí)兩種針對(duì)用戶行為的異常檢測方法?;趯?shí)例的方法通過計(jì)算當(dāng)前行為與正常行為之間的相似度判斷是否為異常行為,原理較為簡單,多數(shù)情況下有效,但沒有考慮不同行為模式下不同行為具有不同的分布特征,因此檢測階段準(zhǔn)確率較低,泛化能力不強(qiáng)。而基于隱馬爾可夫鏈的方法雖然準(zhǔn)確率較高,但運(yùn)算效率較低。Schonlau等人[3]提出的異常檢測方法基于統(tǒng)計(jì)理論,綜合分析了6種不同統(tǒng)計(jì)方法的優(yōu)點(diǎn)和缺點(diǎn)。而Maxion等人[4]對(duì)Schonlau方法進(jìn)行改進(jìn),假定用戶以固定頻率進(jìn)行操作而與此前的所有歷史操作無關(guān),由此引入樸素貝葉斯分類器算法。Dash等人[5]提出延遲檢測概念,運(yùn)用改進(jìn)后的適應(yīng)性樸素貝葉斯分類方法進(jìn)行行為異常檢測,進(jìn)一步提高了檢測準(zhǔn)確率。Coull等人[6]采用命令分組(Command Grouping)和二元計(jì)分(Binary Scoring)的方法模擬變異(Mutation),把生物信息學(xué)的序列比對(duì)方法用于用戶行為異常檢測。Kim H S等人[7]和Shim C Y等人[8]研究了基于SVM支持向量機(jī)的方法。
長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)是循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的一種。LSTM由于設(shè)計(jì)特點(diǎn),非常適合處理如文本數(shù)據(jù)的時(shí)序數(shù)據(jù)的建模[9]。BiLSTM是Bi-directional Long Short-Term Memory的縮寫,即雙向長短期記憶網(wǎng)絡(luò),由前向LSTM與后向LSTM組合而成。兩者在自然語言處理任務(wù)中都常被用來建模上下文信息,在本研究中用于建模處理前后命令輸入的雙向關(guān)聯(lián)關(guān)系。
LSTM延續(xù)了RNN的連續(xù)結(jié)構(gòu)[10],具體結(jié)構(gòu)如圖1所示,不同之處在于LSTM網(wǎng)絡(luò)中增加了細(xì)胞狀態(tài)ct。ct會(huì)隨著時(shí)刻t傳遞給下一個(gè)細(xì)胞,即代表了長期記憶,而LSTM的關(guān)鍵是細(xì)胞狀態(tài)。在細(xì)胞序列的運(yùn)算過程中,細(xì)胞會(huì)獨(dú)立決定是否遺忘,因此可以較長時(shí)間地記憶以往信息。
圖1 LSTM細(xì)胞結(jié)構(gòu)
LSTM細(xì)胞在每輪更新中,接收上一個(gè)細(xì)胞的隱藏狀態(tài)ht-1與輸入xt,由遺忘門決定需要舍棄哪些信息,計(jì)算過程為:
輸入門決定當(dāng)前的細(xì)胞狀態(tài)ct,原理是通過一個(gè)包含激活函數(shù)的層決定保留的信息,然后生成當(dāng)前時(shí)刻t的細(xì)胞狀態(tài)ct,計(jì)算方法為:
輸出門決定輸出信息,計(jì)算過程為:
其中Wo為權(quán)重矩陣,bo為偏置項(xiàng),σ為激活函數(shù)。
平順縣隸屬于山西省東南部的長治市,位于太行山西側(cè),黃土高原東部邊緣,處于我國由華北平原向第二階梯過度的前沿,平均海拔高于1000m的地區(qū)占全縣總面積的70%以上(圖1)。全縣地勢南高北低、自東南向西北傾斜。境內(nèi)河流則有濁漳河,東部的虹霓河、南部宑底河系集東南部山地雨水形成,流域面積均較小[10]??h境內(nèi)地貌以山地為主,平原僅在濁漳河兩岸有少量分布[11]。
BiLSTM雙向長短期記憶網(wǎng)絡(luò)解決了LSTM不能編碼從后往前的信息,通過由前向LSTM與后向LSTM組合而成的BiLSTM可以更好地捕捉雙向語義依賴,提高預(yù)測的準(zhǔn)確率。
Attention注意力機(jī)制的目的可以通俗理解為模擬人把注意力集中在重要信息上,忽略次要信息[11]?;诓煌瑧?yīng)用場景,Attention機(jī)制可以分為空間和時(shí)間兩類,分別適用于圖像處理和文本處理。
在原始編解碼模型中,如圖2所示,編碼過程和解碼過程中間存在一個(gè)中間矢量C,用于保存編碼器從原始數(shù)據(jù)中得到的信息。模型中,該中間矢量的長度是固定的,即當(dāng)輸入數(shù)據(jù)量較大時(shí)不能保存得到的所有特征信息,也不能全部傳給解碼器,Attention注意力機(jī)制的設(shè)計(jì)目的是突破定長的中間矢量的限制[12]。
圖2 典型編碼器-解碼器結(jié)構(gòu)
Attention機(jī)制計(jì)算當(dāng)前輸入序列與輸出向量的匹配程度,從而計(jì)算得到輸入序列中不同元素的權(quán)重。匹配度越高,權(quán)重越高。模型在產(chǎn)生輸出的時(shí)候,還會(huì)根據(jù)權(quán)重產(chǎn)生注意力范圍表示接下來輸出的時(shí)候序列中不同元素的重要程度,然后根據(jù)關(guān)注的區(qū)域產(chǎn)生輸出,由此在解碼時(shí)每一步都會(huì)選擇性地從向量序列中挑選一個(gè)子集進(jìn)行一步處理。這樣在產(chǎn)生每一個(gè)輸出的時(shí)候,能夠充分利用輸入序列蘊(yùn)含的信息。
由于本研究目標(biāo)針對(duì)目錄遍歷攻擊、大量讀取、刪除文件以及反彈shell生成等特定攻擊場景,目前不存在針對(duì)性的shell命令數(shù)據(jù)集,因此自行根據(jù)已有的SEA實(shí)驗(yàn)數(shù)據(jù)——AT&T Shanon實(shí)驗(yàn)室數(shù)據(jù)[3]加以修改,以達(dá)到實(shí)驗(yàn)研究目的。SEA數(shù)據(jù)集的預(yù)處理格式較為簡單,僅保留shell命令名稱,不包含其他參數(shù),共包含50個(gè)不同用戶。每名用戶擁有15 000條命令記錄,其中前5 000條為本用戶輸入,而后10 000條包含其他用戶輸入。顯然,SEA數(shù)據(jù)集的內(nèi)容與本研究目的不符,目的不在于分辨是否為當(dāng)前用戶輸入的命令,而在于發(fā)現(xiàn)是否存在目錄遍歷攻擊、大量讀取、刪除文件以及反彈shell生成等特定攻擊場景。因此,將所有SEA數(shù)據(jù)集每50條命令視為一個(gè)數(shù)據(jù)塊,且所有數(shù)據(jù)塊均視為正常數(shù)據(jù),然后在部分?jǐn)?shù)據(jù)塊中替換部分shell命令記錄,使數(shù)據(jù)塊具有目錄遍歷攻擊、大量讀取、刪除文件以及反彈shell生成等特定攻擊場景,將這些修改過的數(shù)據(jù)塊視作異常數(shù)據(jù)。數(shù)據(jù)格式如圖3所示,其中標(biāo)簽設(shè)為1的即為包含目錄遍歷攻擊、大量讀取、刪除文件以及反彈shell生成等特定攻擊行為的異常數(shù)據(jù)塊。
圖3 數(shù)據(jù)集的數(shù)據(jù)格式
本研究的網(wǎng)絡(luò)模型結(jié)構(gòu)如圖4所示。
一個(gè)shell命令塊輸入網(wǎng)絡(luò)模型后,首先通過分詞器對(duì)文本中的詞進(jìn)行計(jì)數(shù)生成詞典文檔,將輸入的shell命令塊轉(zhuǎn)換為基于詞典位序的向量表示,輸入長度不足進(jìn)行填充,滿足長度要求。生成的命令塊矢量隨后進(jìn)入前向LSTM和后向LSTM,輸出的特征向量進(jìn)入Attention層。Attention層輸出的語義編碼經(jīng)過Dropout層后,在輸出層分類得到最終預(yù)測標(biāo)簽。
圖4 網(wǎng)絡(luò)結(jié)構(gòu)
本網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)擁有以下幾個(gè)優(yōu)點(diǎn):
(1)BiLSTM雙向長短期記憶網(wǎng)絡(luò)能夠結(jié)合上下文提供在特征向量中更豐富的語義信息。其中,前向長短期記憶網(wǎng)絡(luò)能夠提供輸入序列的上文信息,而后向長短期記憶網(wǎng)絡(luò)能夠提供輸入序列的下文信息,最后合并雙向網(wǎng)絡(luò)的狀態(tài)后將包含上下文語義編碼作為輸出層的輸入。
(2)Attention注意力機(jī)制的加入優(yōu)化了最終輸出給分類器的特征向量,解決了提取的特征向量無法完全代表整個(gè)長序列以及先輸入的信息被后輸入的信息覆蓋的兩大弊端。通過計(jì)算輸入信息節(jié)點(diǎn)對(duì)輸出向量的權(quán)重得到注意力概率分布,突出重點(diǎn)語義信息,從而得到更高質(zhì)量的特征向量,輸出更高質(zhì)量的語義信息,突破了定長的特征向量的限制。
(3)Dropout層在訓(xùn)練過程中概率性忽略部分特征提取器,減少了隱層節(jié)點(diǎn)的相互作用和過擬合現(xiàn)象。
本研究在基于SEA實(shí)驗(yàn)數(shù)據(jù)修改得到的針對(duì)目錄遍歷攻擊、大量讀取、刪除文件以及反彈shell生成等特定攻擊場景的新數(shù)據(jù)集上進(jìn)行試驗(yàn),網(wǎng)絡(luò)架構(gòu)基于雙向LSTM以及Attention注意力機(jī)制。經(jīng)過對(duì)超參數(shù)的不斷調(diào)整訓(xùn)練網(wǎng)絡(luò),最終在數(shù)據(jù)集上得到了較好的實(shí)驗(yàn)結(jié)果。最終的測試結(jié)果如圖5所示,混淆矩陣如表1所示。
圖5 測試結(jié)果
表1 混淆矩陣
可見,在存在或不存在攻擊異常行為的二分類問題中,本文提出的基于雙向長短時(shí)記憶網(wǎng)絡(luò)和Attention注意力機(jī)制的異常檢測方法顯示出較好的檢測能力。其中,在220個(gè)測試命令塊中準(zhǔn)確率(Precision)均值超過98%,召回率(Recall)超過了98%。由于召回率的定義為Recall=TP/(TP+FN),代表覆蓋面的度量即度量有正例被分為正確標(biāo)簽。準(zhǔn)確率和召回率都較高,代表著較低的誤報(bào)率和漏報(bào)率,展現(xiàn)出出色的預(yù)測能力。而F1-score是準(zhǔn)確率P和召回率R的調(diào)和平均值,定義為:
可知,F(xiàn)1-score綜合了準(zhǔn)確率P和召回率R的結(jié)果。較高的F1-score說明本文提出的方法有效。實(shí)際應(yīng)用中,準(zhǔn)確率和召回率往往是一對(duì)矛盾的值,想要保證準(zhǔn)確率需要舍棄一些召回率,但本文提出的基于雙向長短時(shí)記憶網(wǎng)絡(luò)和Attention注意力機(jī)制的異常檢測方法同時(shí)得到了較高的準(zhǔn)確率和召回率。
本文提出了一種高效的基于雙向長短時(shí)記憶網(wǎng)絡(luò)和Attention注意力機(jī)制的針對(duì)目錄遍歷攻擊、大量讀取、刪除文件以及反彈shell生成等特定攻擊場景的用戶行為異常檢測方法。LSTM本身較適用于時(shí)間離散序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),本研究利用BiLSTM雙向長短時(shí)記憶網(wǎng)絡(luò)結(jié)合上下文提供在特征向量中更豐富的語義信息,結(jié)合Attention注意力機(jī)制,突破了定長的特征向量的限制,得到了更高質(zhì)量的特征向量,輸出了更高質(zhì)量的語義信息,在針對(duì)目標(biāo)攻擊場景生成的基于SEA實(shí)驗(yàn)數(shù)據(jù)的數(shù)據(jù)集上得到了較高的準(zhǔn)確率和召回率,顯示出較高的綜合預(yù)測能力。下一步的研究目標(biāo)在于拓展到更多的攻擊場景,這對(duì)網(wǎng)絡(luò)模型提出了更高要求。