何 樞 銘
(中國電建集團(tuán)海外投資有限公司,北京 100048)
隨著信息時代的發(fā)展,網(wǎng)絡(luò)安全在我國電力行業(yè)的工業(yè)控制領(lǐng)域,有著舉足輕重且不可撼動的地位。同時,隨著信息化、數(shù)字化、自動化建設(shè)逐漸完善,數(shù)據(jù)成為了最重要的虛擬資產(chǎn)之一,做好網(wǎng)絡(luò)安全防護(hù)也等同于阻斷Web攻擊者對機(jī)密信息竊取的主要渠道。另外,一旦攻擊者入侵工業(yè)系統(tǒng)內(nèi)網(wǎng),取得了核心操作權(quán)限,就可以對軟硬件設(shè)施、工業(yè)設(shè)備進(jìn)一步控制或破壞,其后果不堪設(shè)想。因此,工業(yè)領(lǐng)域的網(wǎng)絡(luò)安全是不惜一切代價也要嚴(yán)格把控的一大關(guān)口。
本文將詳細(xì)介紹傳統(tǒng)的網(wǎng)絡(luò)攻擊檢測手段以及基于機(jī)器學(xué)習(xí)算法的Web攻擊檢測方案,并將兩種方法進(jìn)行比較,分析其優(yōu)勢與劣勢,最終總結(jié)出一套低成本、低消耗、執(zhí)行高效的網(wǎng)絡(luò)安全檢測方案。
“黑白名單”可謂是網(wǎng)絡(luò)安全領(lǐng)域中最傳統(tǒng)且實(shí)用的防御手段之一,其操作簡單有效,是Web防火墻WAF的重要配置選項(xiàng)。Web防火墻是信息安全的第一道防線,隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,新的黑客技術(shù)也層出不窮,采用“黑白名單”以及規(guī)則匹配方式的傳統(tǒng)防火墻受到了極大的挑戰(zhàn)。傳統(tǒng)防火墻應(yīng)對新黑客技術(shù)的缺陷主要表現(xiàn)在兩方面:一是在靈活的黑客面前,硬性的規(guī)則匹配會被輕松繞過。程序員在編寫防御規(guī)則時很難窮盡所有地羅列惡意攻擊行為。二是傳統(tǒng)防火墻是基于以往知識的規(guī)則集進(jìn)行防御的,這種方式不僅維護(hù)成本高,而且在沒有打補(bǔ)丁的情況下很難防范新鮮出爐的0Day漏洞,這就要求探索出一種低成本、動態(tài)且高效的方法來補(bǔ)足靜態(tài)防御的短板。
正則表達(dá)式是一種由多個特殊字符組成的邏輯公式,其主要功能是用來匹配一類特定字符串,完成對文本的篩選與過濾。在網(wǎng)絡(luò)安全應(yīng)用中,正則匹配是一種常用的傳統(tǒng)Web攻擊檢測手段,對于字符串形式的日志數(shù)據(jù)是一種強(qiáng)大的關(guān)鍵詞捕捉工具。比如,服務(wù)器受到Webshell通信攻擊時,Web日志中往往會出現(xiàn)類似”b374k”、“php”、“shell”的關(guān)鍵詞,隨后進(jìn)一步查看響應(yīng)代碼為200,這表明攻擊者大概率上傳了一個Webshell文件并且成功訪問了它。以上為Web服務(wù)器受到攻擊時自動寫入日志的數(shù)據(jù),如果我們采用正則匹配的手段來自動捕捉這些與惡意攻擊相關(guān)的關(guān)鍵詞,便可及時發(fā)現(xiàn)可疑的攻擊行為并采取相應(yīng)的防御措施。
在海量的日志數(shù)據(jù)中,單純靠規(guī)則匹配、“黑白名單”、策略控制等傳統(tǒng)方式是很難識別出變種攻擊行為的,但是萬變不離其宗,絕大多數(shù)攻擊都會在Web日志中留下蛛絲馬跡。倘若把Web攻擊者視為一個對象,該對象在攻擊時一定會發(fā)出某個網(wǎng)絡(luò)動作,而這些動作會在Web日志中留下攻擊者的“指紋”,包括用戶行為、交互IP、訪問次數(shù)等大量信息。作為防御者,我們通過這些信息背后的統(tǒng)計(jì)特征來推斷出網(wǎng)絡(luò)動作,并基于動作來判斷該行為是否屬于惡意的網(wǎng)絡(luò)攻擊行為。比如,在一段時間內(nèi)多次檢測到同一個IP訪問目標(biāo)網(wǎng)站說明有不良的網(wǎng)絡(luò)掃描與嗅探行為,相同URL接收到不同參數(shù)的情況下出現(xiàn)相同值的次數(shù)表明有口令猜解或者密碼爆破行為,不同域名下出現(xiàn)同一URL次數(shù)激增意味著有可疑用戶在嘗試猜測后臺登錄地址??傊?,基于數(shù)值統(tǒng)計(jì)方法,通過不同的網(wǎng)絡(luò)動作可以推測出用戶意圖,并及時動態(tài)更新黑白名單,采用新的WAF策略以加固防火墻。
為了彌補(bǔ)傳統(tǒng)規(guī)則集方法的不足,本文將基于機(jī)器學(xué)習(xí)算法的LSTM與SVM模型,針對大量Web日志數(shù)據(jù)進(jìn)行自動化學(xué)習(xí)和訓(xùn)練,從而達(dá)到區(qū)分正常樣本和攻擊樣本的目的,完成對海量日志數(shù)據(jù)的進(jìn)一步篩查。下文將簡單介紹該Web攻擊檢測方案的大致流程。
在獲取完整的Web日志文件后,將對每一條日志數(shù)據(jù)進(jìn)行關(guān)鍵字段提取。一般情況下,一條Web日志記錄的結(jié)構(gòu)如圖1所示。
其中,115.28.44.151表示發(fā)出請求的源IP地址,[28/Mar/2014:00:26:10 +0800]表示用戶發(fā)送請求的具體時間,“GET/manager/html HTTP/1.1”表示請求主體,404表示服務(wù)器響應(yīng)碼,162表示以字節(jié)為單位的請求報(bào)文長度,“Mozilla/3.0(compatible;Indy Library)”表示客戶端信息[1]。若想對日志數(shù)據(jù)進(jìn)行攻擊意圖識別,則需要將結(jié)構(gòu)化數(shù)據(jù)根據(jù)字符串的空格分段,并將各個關(guān)鍵詞存儲到相應(yīng)的變量中以準(zhǔn)備下一步的特征提取。值得注意的一點(diǎn)是,Web攻擊識別主要靠的是分析請求主體,需要提取主體的核心特征,才能準(zhǔn)確判斷出用戶意圖。
圖1 Web日志數(shù)據(jù)樣例
運(yùn)用機(jī)器學(xué)習(xí)算法的前提是構(gòu)造好特征向量。就像人類識別車輛類型一樣,短短一瞬間人的大腦會自動把一輛車拆解出多個特征,包括車的形狀,顏色,材質(zhì),輪胎數(shù)量,排氣管位置等等,只有當(dāng)大腦收集到足夠多的特征信息時才能做出合理判斷。同理,源IP地址、時間戳、請求主體、客戶端信息等關(guān)鍵詞同樣可以成為某個網(wǎng)絡(luò)行為的特征,而且這些特征也有優(yōu)劣或主次之分,應(yīng)該重點(diǎn)關(guān)注源IP、請求主體、客戶端這些信息,因?yàn)樗鼈兌际怯脩艨煽氐?。對于大多?shù)Web攻擊而言,攻擊者往往會嘗試修改以上這3個參數(shù),比如注入Payload惡意攻擊信息,這自然也成為了識別攻擊意圖的突破口。對于源IP、狀態(tài)碼這些包含純數(shù)字的特征,只需合理分段并填入相應(yīng)的特征槽便可完成特征向量的構(gòu)筑,然而對于處理“/manager/html“這種字符串特征,就需要手動設(shè)計(jì)特征,比如根據(jù)被訪問資源的敏感程度,量化給出不同的風(fēng)險等級,如果manager屬于極度敏感的信息,則賦予其特征值為9或10,反之若非核心的資源被訪問,風(fēng)險特征值則降為2或3,該特征的整個取值范圍是0~10。
以上是僅從單條日志本身便可提取的特征,然而如果從全局的數(shù)據(jù)來看,或許會獲得更加豐富且有用的信息。一方面,可以根據(jù)上文提到的數(shù)值統(tǒng)計(jì)構(gòu)造新特征,包括訪問的次數(shù)、深度、寬度統(tǒng)計(jì)、非200請求比、GET文件訪問比等,每種統(tǒng)計(jì)結(jié)果可以表示不同的網(wǎng)絡(luò)動作,從而判斷源IP是否具有攻擊意圖。另一方面,一旦獲取了全局?jǐn)?shù)據(jù),便可以進(jìn)一步構(gòu)造TF-IDF特征。詞頻-逆文檔頻率(TF-IDF)是一種從文本文檔提取并構(gòu)造每個單詞特征的簡單方法,它能夠?yàn)槊總€單詞計(jì)算出兩個統(tǒng)計(jì)值,分別是詞頻(TF)和逆文檔頻率(IDF),詞頻是每個詞在文檔中出現(xiàn)的頻率,逆文檔頻率表示在整個文檔中出現(xiàn)的頻繁程度[1]。就Web攻擊的案例來說,將整個日志看作一個完整的文檔或者語料庫,倘若一個關(guān)鍵詞在大多數(shù)正常流量的日志數(shù)據(jù)中均有出現(xiàn),則表示可疑程度較低,相反如果該關(guān)鍵詞在全局?jǐn)?shù)據(jù)中出現(xiàn)頻率很低,而偏偏在某個IP的網(wǎng)絡(luò)行為中頻頻出現(xiàn),則說明該用戶有可疑的非常規(guī)操作。由此可見,TF-IDF以犧牲一些計(jì)算時間和內(nèi)存空間為代價,提供了比較可靠的統(tǒng)計(jì)特征。
構(gòu)建拼接好特征之后,需要選擇一個合適的模型來將特征值映射到非0即1的輸出空間上,從而判斷該網(wǎng)絡(luò)行為是否可疑。文中采用了自然語言處理(NLP)領(lǐng)域的經(jīng)典序列模型LSTM外加傳統(tǒng)機(jī)器學(xué)習(xí)模型SVM來做分類預(yù)測,具體模型結(jié)構(gòu)如圖2所示。
圖2 LSTM+SVM模型示意
該模型將某個時間段內(nèi)來自同一IP地址的一連串網(wǎng)絡(luò)行為特征作為輸入,首先在“T1”的時間節(jié)點(diǎn),將“特征1”傳輸?shù)絃STM網(wǎng)絡(luò)層中,隨后經(jīng)過網(wǎng)絡(luò)層的線性變換提取出新特征后,生成新的離散向量“信息1”,在“T2”時間點(diǎn),將“信息1”和“特征2”結(jié)合并傳入LSTM網(wǎng)絡(luò)層以生成“信息2”,以此循環(huán)往復(fù)直到該用戶的網(wǎng)絡(luò)行為終止。最后,將綜合以上所有信息計(jì)算出信息和,并將其傳入SVM模型做一個簡單的二分類任務(wù),輸出為1則說明該IP具有可疑攻擊行為,反之輸出為0代表正常。本文只是從宏觀角度提出機(jī)器學(xué)習(xí)版本的Web攻擊檢測方案,欲了解LSTM或SVM模型的底層原理請閱讀參考文獻(xiàn)[2-3]。
上文主要介紹了兩種Web攻擊檢測手段,包括傳統(tǒng)方法和機(jī)器學(xué)習(xí)方法,藍(lán)方至今沒有舍棄傳統(tǒng)防御手段是因?yàn)樗鼈兿噍^于新技術(shù)而言具有某種不可替代性,換言之傳統(tǒng)方法和以機(jī)器學(xué)習(xí)為代表的新技術(shù)各有千秋,下文將深入討論這兩種方法的優(yōu)與劣:
傳統(tǒng)方式需要大量時間與人工成本來編寫新的正則匹配規(guī)則,不斷添加新的“黑白名單”,不停制定新的WAF策略,只要紅方不愿休戰(zhàn),藍(lán)方就需要持續(xù)消耗資源來做被動防御。然而,一旦完成瑣碎的準(zhǔn)備工作,傳統(tǒng)的防御策略執(zhí)行起來便會非常高效,并且對于已出現(xiàn)過的攻擊行為防守成功率極高。
機(jī)器學(xué)習(xí)方式雖然智能,但同樣少不了人工開銷,建模前需要投入大量的時間來收集各種類型、各個時間段的Web日志數(shù)據(jù),并且可能需要專業(yè)人士來制作標(biāo)簽以完成整個模型的訓(xùn)練或者學(xué)習(xí)過程。若想節(jié)省時間直接尋找開源的Web日志數(shù)據(jù)集,則會因正負(fù)樣本比例嚴(yán)重失衡而導(dǎo)致模型在查準(zhǔn)率方面表現(xiàn)極差,失去了Web防御工具自身的價值。不僅如此,一個泛化能力強(qiáng)的機(jī)器學(xué)習(xí)模型需要較長的時間周期訓(xùn)練,而且實(shí)踐中的預(yù)測速度也遠(yuǎn)不及正則匹配等傳統(tǒng)方式。但是,對于變種的攻擊行為而言,機(jī)器學(xué)習(xí)模型有著得天獨(dú)厚的優(yōu)勢,例如對于從未見過的請求主體,機(jī)器學(xué)習(xí)算法的效果遠(yuǎn)遠(yuǎn)凌駕于傳統(tǒng)方式。
綜合來看,傳統(tǒng)方式的效果依賴于規(guī)則集的維護(hù),而機(jī)器學(xué)習(xí)算法的效果依賴于訓(xùn)練數(shù)據(jù)集的質(zhì)量。與其選擇其中一種方式,不如將兩者結(jié)合起來,先用傳統(tǒng)方法過濾一部分確認(rèn)安全的流量,再用機(jī)器學(xué)習(xí)算法進(jìn)一步檢測不確定的可疑流量,揚(yáng)長避短之后效果可能會更好。
本文在網(wǎng)絡(luò)安全與工控應(yīng)用的背景下,針對Web日志的數(shù)據(jù)分析,提出了包括傳統(tǒng)方法和機(jī)器學(xué)習(xí)方法兩種Web攻擊的檢測手段。傳統(tǒng)方法雖高效但耗費(fèi)資源,機(jī)器學(xué)習(xí)算法依賴于訓(xùn)練數(shù)據(jù),不過可以檢測出新的攻擊手段。未來,公司將在使用傳統(tǒng)方法過濾流量的基礎(chǔ)上,嘗試采用無監(jiān)督學(xué)習(xí)的方式,比如K-means聚類模型,為機(jī)器學(xué)習(xí)模型制造偽標(biāo)簽來自主增強(qiáng)訓(xùn)練數(shù)據(jù)集,從而平衡正負(fù)樣本的比例,達(dá)到更好的模型訓(xùn)練與預(yù)測效果。