鐘 磊,何恒宏,韓春陽,李 楠
(國家氣象信息中心,北京 100081)
隨著氣象信息網(wǎng)絡(luò)的快速發(fā)展,氣象行業(yè)面臨的信息安全威脅不斷增加。通過對(duì)近三年國家級(jí)信息網(wǎng)絡(luò)安全事件進(jìn)行統(tǒng)計(jì),各類APT(advanced persistent threat,高級(jí)可持續(xù)威脅攻擊)和利用漏洞的滲透事件數(shù)量的年增長(zhǎng)率均超過30%。安全事件不斷增加的原因主要有以下三個(gè)方面:第一,業(yè)務(wù)系統(tǒng)在設(shè)計(jì)過程中沒有將信息安全充分納入考量,造成系統(tǒng)上線后暴露的安全問題難以徹底解決;第二,部分人員安全意識(shí)不足,在使用過程存在不安全操作;第三,安全監(jiān)控和防護(hù)能力不足,無法做到所有終端數(shù)據(jù)流量的實(shí)時(shí)檢測(cè)和分析。
近年來,機(jī)器學(xué)習(xí)的有關(guān)算法在網(wǎng)絡(luò)空間安全方面取得了一些研究成果,有關(guān)技術(shù)也在不同行業(yè)進(jìn)行了實(shí)踐[1],以機(jī)器學(xué)習(xí)為基礎(chǔ)的態(tài)勢(shì)感知系統(tǒng)和以流量回溯為代表的分析系統(tǒng)能夠及時(shí)發(fā)現(xiàn)正在進(jìn)行的網(wǎng)絡(luò)攻擊,但對(duì)已存在的安全問題難以提供解決方案[2]。
現(xiàn)階段國家級(jí)氣象網(wǎng)絡(luò)的安全防護(hù)存在一定不足:第一,各類安全監(jiān)控系統(tǒng)和檢測(cè)設(shè)備主要部署于互聯(lián)網(wǎng)出口;第二,對(duì)內(nèi)部網(wǎng)絡(luò)的終端安全防護(hù)和檢測(cè)手段相對(duì)較少,僅能通過探針等設(shè)備獲取局域網(wǎng)內(nèi)部分系統(tǒng)間數(shù)據(jù)交互的信息,當(dāng)終端設(shè)備出現(xiàn)異常時(shí),無法第一時(shí)間進(jìn)行定位和溯源;第三,氣象業(yè)務(wù)數(shù)據(jù)交互頻繁,探針獲取的有關(guān)日志信息數(shù)量較為龐大,傳統(tǒng)的巡檢方式無法高效地發(fā)現(xiàn)有關(guān)異常,亟待對(duì)日志信息進(jìn)行篩選過濾。
文中以國家級(jí)業(yè)務(wù)數(shù)據(jù)交互的日志信息為基礎(chǔ),通過機(jī)器學(xué)習(xí)的有關(guān)算法還原出現(xiàn)異常終端的網(wǎng)絡(luò)數(shù)據(jù)交互的拓?fù)?,確定有關(guān)異常設(shè)備的位置和可能近一步受到影響的系統(tǒng);再以有關(guān)系統(tǒng)的IP為檢索條件,對(duì)有關(guān)日志信息進(jìn)行過濾,通過訓(xùn)練有關(guān)模型對(duì)日志的核心信息進(jìn)行提取,有利于深入分析異常終端的問題根源。以上述研究為基礎(chǔ),確定下一步的問題處理方案,從而在一定程度彌補(bǔ)原有安全防護(hù)體系結(jié)構(gòu)的不足,對(duì)提高業(yè)務(wù)網(wǎng)絡(luò)中各系統(tǒng)的安全性和可靠性有一定的幫助。
Louvain算法是一種基于多層次優(yōu)化的算法,具有快速、準(zhǔn)確的特點(diǎn),被認(rèn)為是性能最好的網(wǎng)絡(luò)或圖的發(fā)現(xiàn)算法之一[3-4]。Louvain算法中的Modularity函數(shù)是衡量發(fā)現(xiàn)算法結(jié)果質(zhì)量的重要參數(shù),能夠刻畫發(fā)現(xiàn)網(wǎng)絡(luò)的緊密程度,Modularity函數(shù)的定義如下:
(1)
(2)
當(dāng)ci=cj時(shí)節(jié)點(diǎn)i和節(jié)點(diǎn)j之間存在網(wǎng)絡(luò)連接,此時(shí)函數(shù)的值為1,當(dāng)ci≠cj時(shí)函數(shù)的值為0。
參數(shù)ΔQ為模塊性改變量,其公式定義如下:
(3)
對(duì)以上公式化簡(jiǎn)可得如下結(jié)果:
(4)
當(dāng)每次聚類完成時(shí),都需要重新計(jì)算公式中的ΔQ,當(dāng)Q的值不再變化,說明所有的頂點(diǎn)都被分組成了一個(gè)巨型聚類或者已有的類無法進(jìn)一步合并,此時(shí)計(jì)算停止,輸出此時(shí)的分組信息和Q的數(shù)值[4-5]。
本次研究中,原始數(shù)據(jù)信息由序號(hào)、時(shí)間、日志類型、源IP、源端口、目的IP、目的端口和數(shù)據(jù)流量等幾個(gè)部分組成。序號(hào)為事件信息編號(hào),時(shí)間為采集事件的具體時(shí)間,日志類型為采集的傳輸形式,源IP、源端口、目的IP、目的端口是具體傳輸和接收設(shè)備信息,數(shù)據(jù)流量是本次源IP和目的IP數(shù)據(jù)交互的數(shù)據(jù)總量。本次研究數(shù)據(jù)為14天內(nèi)不同系統(tǒng)相同時(shí)次的數(shù)據(jù)交互信息,本次算法中主要采用源IP、目的IP、源端口、數(shù)據(jù)流量為研究對(duì)象,算法具體步驟如下:
(1)對(duì)原始數(shù)據(jù)進(jìn)行清洗,去除暫不使用的部分。研究中設(shè)定目的IP在惡意地址庫中或單次源IP和目的IP交互數(shù)據(jù)流量超過30 GB視為高危行為,源端口和目的端口使用存在風(fēng)險(xiǎn)的端口則視為異常行為[6-8]。
(2)將原數(shù)據(jù)轉(zhuǎn)換為N階矩陣A,當(dāng)源IP和目的IP有數(shù)據(jù)交互時(shí),對(duì)應(yīng)的aij為1,否則aij為0[9]。
(3)初始分配每個(gè)頂點(diǎn)到其自己的團(tuán)體,隨后計(jì)算整個(gè)網(wǎng)絡(luò)的模塊性Q。
(4)當(dāng)每個(gè)點(diǎn)對(duì)至少被一條單邊鏈接,如果有兩個(gè)點(diǎn)融合到一起,則計(jì)算由此造成的模塊性改變?chǔ)。
(5)取ΔQ出現(xiàn)最大增長(zhǎng)的改變量,然后融合。再為這個(gè)聚類計(jì)算新的模塊性Q,并記錄下來。
(6)當(dāng)所有的頂點(diǎn)都被分組成一個(gè)巨型聚類或者被分成的類之間已無任何關(guān)系時(shí),整個(gè)計(jì)算過程結(jié)束。隨后檢查這個(gè)過程中的記錄,找到其中返回最高的聚類模式和此時(shí)的最大值Q。
(7)統(tǒng)計(jì)各系統(tǒng)與其他業(yè)務(wù)的鏈接情況,形成匯總表。
(8)將研究結(jié)果與已知惡意IP、高風(fēng)險(xiǎn)端口列表進(jìn)行對(duì)比,當(dāng)具體業(yè)務(wù)訪問惡意IP或流量異常時(shí),則相關(guān)終端標(biāo)記為紅色;當(dāng)源IP通信端口為高風(fēng)險(xiǎn)端口,則相應(yīng)終端標(biāo)記為藍(lán)色;其余正常終端標(biāo)記為綠色。
(9)根據(jù)步驟(7)和步驟(8)的結(jié)果生成最終數(shù)據(jù)交互圖。
TF-IDF(term frequency-inverse document frequency,詞頻-逆向文件頻率)算法是一種用于檢索與探勘的常用加權(quán)技術(shù)。TF-IDF是一種統(tǒng)計(jì)方法,用以評(píng)估一個(gè)字詞在一個(gè)文件集或一組文字庫中的重要程度[10]。字詞的重要性一般隨著它在文件中出現(xiàn)的次數(shù)成正比,同時(shí)隨著它在語義庫中出現(xiàn)的頻率成反比。對(duì)于某一特定詞語的逆向文件頻率,可以由總文件數(shù)目除以包含該詞語之文件的數(shù)目,再將得到的商取對(duì)數(shù)得到最終結(jié)果。
TF-IDF的基本原理是當(dāng)某個(gè)詞或短語在一段文字中出現(xiàn)的頻率較高,并且在其他文章中很少出現(xiàn),那么就認(rèn)為這個(gè)詞或短語具有很好的類別區(qū)分能力,適合用來做分類[11]。IDF的主要思想是當(dāng)包含詞條t的文檔越少,權(quán)重越小,當(dāng)IDF變大時(shí)說明詞條t具有很好的類別區(qū)分能力。實(shí)際的文字信息中,當(dāng)一個(gè)詞條在一個(gè)類的文檔中頻繁出現(xiàn),說明該詞條能夠很好地代表這個(gè)類的文本的特征,這樣的詞條將被賦予較高的權(quán)重,可作為該類文本的特征詞以區(qū)別于其他類文檔[12-14]。在算法方面,TF-IDF算法采取如下方式進(jìn)行計(jì)算:
首先,對(duì)于特定的詞語ti,其在文本中的重要性可以表示為:
(5)
然后,逆向文件頻率idfi可由公式(6)計(jì)算取得:
(6)
其中,|D|為文件中文字的總數(shù),|{j:ti∈dj}|為包含ti的文件數(shù)目。
最后,計(jì)算最終結(jié)果tfidfi,j,由公式(7)求得最終結(jié)果。
tfidfi,j=tfi,j×idfi
(7)
本次研究中,采用anaconda作為集成開發(fā)環(huán)境,jieba作為中文分詞工具,TfidfVectorizer作為詞頻逆文檔頻率向量化模型,Logistic回歸分析作為權(quán)重調(diào)節(jié)的參考依據(jù)[15]。
在算法方面,算法和應(yīng)用的步驟如下:
(1)采集原有各系統(tǒng)同時(shí)段的日志信息。
(2)使用jieba作為中文分詞工具,對(duì)監(jiān)控信息做分詞處理。
(3)采用TF-IDF算法進(jìn)行判斷[16]。
(4)通過Logistic回歸分析對(duì)權(quán)重進(jìn)行調(diào)節(jié)[17]。
(5)重復(fù)步驟3和步驟4中的過程。
(6)分別用90%的數(shù)據(jù)進(jìn)行訓(xùn)練,10%的數(shù)據(jù)進(jìn)行驗(yàn)證。
(7)用訓(xùn)練結(jié)果對(duì)日志信息進(jìn)行分析驗(yàn)證,對(duì)有關(guān)結(jié)果進(jìn)行分析。
研究中采用1.2節(jié)的設(shè)計(jì)并進(jìn)行實(shí)驗(yàn)驗(yàn)證,基于某氣象業(yè)務(wù)系統(tǒng)的部分實(shí)驗(yàn)結(jié)果如圖1所示。
圖1 數(shù)據(jù)業(yè)務(wù)交互實(shí)驗(yàn)結(jié)果
由實(shí)驗(yàn)結(jié)果可知,和該業(yè)務(wù)存在數(shù)據(jù)交互的系統(tǒng)中有7臺(tái)終端存在高危異常,與其進(jìn)行通信的網(wǎng)絡(luò)結(jié)構(gòu)能夠清晰地進(jìn)行表示,對(duì)于及時(shí)發(fā)現(xiàn)安全問題有很好的幫助作用。通過對(duì)其中存在高危的終端,以該終端的IP作為過濾條件生成對(duì)應(yīng)數(shù)據(jù)交互拓?fù)?,某高危異常終端的數(shù)據(jù)交互如圖2所示。通過圖2可以清晰地發(fā)現(xiàn)其他存在安全風(fēng)險(xiǎn)的主機(jī),分析該IP的終端日志等可以逐步進(jìn)行溯源,確定風(fēng)險(xiǎn)來源,同時(shí)消除對(duì)應(yīng)風(fēng)險(xiǎn)。
圖2 基于Louvain算法生成的某高危終端數(shù)據(jù)交互圖
本次實(shí)驗(yàn)中,以90%的原始數(shù)據(jù)進(jìn)行訓(xùn)練,10%的數(shù)據(jù)進(jìn)行驗(yàn)證,部分訓(xùn)練結(jié)果如圖3所示。由于標(biāo)題重要性較高,因此不做任何分詞處理,日志詳細(xì)內(nèi)容中能夠提取到關(guān)鍵短句“WannaCry攻擊”、445端口攻擊“”,地址信息中提取到關(guān)鍵詞語“10.28.107.*”,同時(shí)給出有關(guān)分詞提取的可信度數(shù)值。由于日志告警形式較為統(tǒng)一,當(dāng)重復(fù)出現(xiàn)告警并經(jīng)過大量訓(xùn)練后,相關(guān)告警的可信性得到增加,可信度數(shù)值有一定的提高[18]。對(duì)該高危IP地址主機(jī)的行為進(jìn)行分析和梳理后的結(jié)果進(jìn)行匯總后,可得到如圖4所示的行為畫像[19]。
圖3 訓(xùn)練結(jié)果示意圖
圖4 某高危用戶網(wǎng)絡(luò)行為畫像分析圖
在通過Louvain算法進(jìn)行拓?fù)渖珊透婢畔㈥P(guān)鍵信息提取后可知,圖4中的終端因未及時(shí)修補(bǔ)MS17-010漏洞同時(shí)未關(guān)閉445端口而被其他被控主機(jī)攻陷,攻陷后主機(jī)被植入后門并嘗試連接已知惡意網(wǎng)站并對(duì)局域網(wǎng)內(nèi)其他終端進(jìn)行惡意掃描。重復(fù)利用Louvain算法和TF-IDF算法進(jìn)一步分析可進(jìn)行攻擊溯源并發(fā)現(xiàn)其他存在安全風(fēng)險(xiǎn)的終端存在的安全問題并確定解決方案。
通過機(jī)器學(xué)習(xí)算法分析和對(duì)終端安全問題進(jìn)行處理,對(duì)2018年和2019年同期安全事件告警數(shù)量進(jìn)行對(duì)比,安全事件數(shù)量出現(xiàn)較為明顯的下降,業(yè)務(wù)終端的安全性得到大幅提高。應(yīng)用前后安全事件數(shù)據(jù)對(duì)比如圖5所示。
圖5 算法應(yīng)用前后異常終端數(shù)量對(duì)比
該研究通過機(jī)器學(xué)習(xí)的有關(guān)算法對(duì)氣象網(wǎng)絡(luò)安全數(shù)據(jù)進(jìn)行了分析,實(shí)現(xiàn)了對(duì)氣象網(wǎng)絡(luò)存在安全隱患的終端進(jìn)行定位和日志信息關(guān)鍵短句的提取,進(jìn)而對(duì)有關(guān)終端安全問題進(jìn)行修復(fù),一定程度上解決了對(duì)業(yè)務(wù)終端安全監(jiān)控不足的問題,提高了氣象網(wǎng)絡(luò)和業(yè)務(wù)終端的安全性。
該研究對(duì)國內(nèi)氣象系統(tǒng)安全數(shù)據(jù)分析具有一定的參考價(jià)值和借鑒意義。
同時(shí),該研究還存在一些不足:整體分析過程中還無法做到全自動(dòng)化地完成,部分步驟需要人工干預(yù);個(gè)別安全信息重要內(nèi)容較多,通過現(xiàn)有算法無法做到全部提取,未來的研究將針對(duì)以上的不足繼續(xù)進(jìn)行探究與完善。