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