文/陳澤生 孫濤 周敏 馮李春
當(dāng)前網(wǎng)絡(luò)安全環(huán)境愈加復(fù)雜,各領(lǐng)域發(fā)生的網(wǎng)絡(luò)攻擊行為事件早已屢見不鮮[1-2],針對(duì)高校的網(wǎng)絡(luò)攻擊行為數(shù)量也與日俱增。為有效提升高校應(yīng)對(duì)網(wǎng)絡(luò)攻擊行為處理的能力,有關(guān)部門要求轄內(nèi)各高校按要求上報(bào)所在單位每日的網(wǎng)絡(luò)攻擊詳情和處置方式,通過上報(bào)的網(wǎng)絡(luò)攻擊數(shù)據(jù)可以間接反映出各高校的網(wǎng)絡(luò)安全建設(shè)情況和處置能力。同時(shí),各高校上報(bào)的網(wǎng)絡(luò)攻擊數(shù)據(jù)也有益于構(gòu)建網(wǎng)絡(luò)攻擊黑名單庫(kù),以及利用人工智能相關(guān)技術(shù),分析挖掘網(wǎng)絡(luò)攻擊數(shù)據(jù),動(dòng)態(tài)強(qiáng)化網(wǎng)絡(luò)攻擊防護(hù)模型。
當(dāng)前高校在網(wǎng)絡(luò)安全建設(shè)中,普遍的做法是在網(wǎng)絡(luò)數(shù)據(jù)流相關(guān)節(jié)點(diǎn)設(shè)置防護(hù)系統(tǒng)。通過預(yù)定義的防護(hù)規(guī)則或大數(shù)據(jù)和人工智能技術(shù)攔截或放行相關(guān)的網(wǎng)絡(luò)操作數(shù)據(jù)[3-4]。而在整個(gè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,節(jié)點(diǎn)位置主要是進(jìn)出口防火墻、數(shù)據(jù)中心和各業(yè)務(wù)應(yīng)用系統(tǒng)。因此,大部分高校均在此重要節(jié)點(diǎn)位置設(shè)置防護(hù)系統(tǒng),記錄網(wǎng)絡(luò)數(shù)據(jù)詳情。然而存在的問題是,不同廠商或相同廠商不同安全設(shè)備的安全防護(hù)系統(tǒng)所采集到的網(wǎng)絡(luò)安全日志在特征數(shù)量、特征命名、數(shù)據(jù)結(jié)構(gòu)形式等方面存在差異。因此,如何將多源異構(gòu)數(shù)據(jù)進(jìn)行融合,并根據(jù)攻擊IP地址和被攻擊IP地址唯一確定索引項(xiàng),統(tǒng)計(jì)該索引產(chǎn)生的次數(shù)成為網(wǎng)絡(luò)安全運(yùn)維工作中新的難題。
如今,許多科研人員也致力于在網(wǎng)絡(luò)安全中解決多源異構(gòu)數(shù)據(jù)融合問題[5]。文獻(xiàn)[6]融合多源異質(zhì)傳感數(shù)據(jù)。龔儉等人[7]認(rèn)為原始數(shù)據(jù)的融合處理是網(wǎng)絡(luò)安全態(tài)勢(shì)感知的重要一環(huán),Zhao Dongmei等人[8]通過提取網(wǎng)絡(luò)日志數(shù)據(jù)的核心屬性來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)安全態(tài)勢(shì)感知,Zheng Weifa等人[9]將主機(jī)防火墻數(shù)據(jù)、Web 防火墻數(shù)據(jù)和入侵檢測(cè)數(shù)據(jù)進(jìn)行融合,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)安全性進(jìn)行評(píng)估。綜上所述,網(wǎng)絡(luò)安全防護(hù)體系中的數(shù)據(jù)融合問題在網(wǎng)絡(luò)安全應(yīng)用中發(fā)揮重要作用。本文通過采用Python腳本將異構(gòu)數(shù)據(jù)實(shí)現(xiàn)程序化融合,通過自定義唯一索引項(xiàng)實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì)和去重。結(jié)果表明,學(xué)校上報(bào)網(wǎng)絡(luò)攻擊威脅IP的數(shù)據(jù)經(jīng)排名之后,位列省內(nèi)所有高校機(jī)構(gòu)前三名,這表明采用Python腳本化實(shí)現(xiàn)網(wǎng)絡(luò)安全常態(tài)化運(yùn)維有顯著效果。
目前高校網(wǎng)絡(luò)安全防護(hù)體系正處于建設(shè)當(dāng)中,以進(jìn)出口網(wǎng)關(guān)、數(shù)據(jù)中心網(wǎng)關(guān)、各應(yīng)用系統(tǒng)等為網(wǎng)絡(luò)防護(hù)關(guān)鍵點(diǎn),構(gòu)建網(wǎng)絡(luò)安全防護(hù)體系,其邏輯結(jié)構(gòu)如圖1所示。其中,進(jìn)出口防火墻主要針對(duì)外網(wǎng)和內(nèi)網(wǎng)的數(shù)據(jù)通訊進(jìn)行規(guī)則掃描,并記錄該通訊日志的詳細(xì)信息和所采取的相關(guān)動(dòng)作。數(shù)據(jù)中心防火墻用于掃描與數(shù)據(jù)中心進(jìn)行數(shù)據(jù)交互的一切網(wǎng)絡(luò)操作日志,Web應(yīng)用防火墻(Web Application Firewall,WAF)用于針對(duì)任意Web應(yīng)用系統(tǒng)的終端防護(hù),并記錄相關(guān)日志詳情。
圖1 網(wǎng)絡(luò)安全防護(hù)體系結(jié)構(gòu)示意
本文基于圖1所示的網(wǎng)絡(luò)安全防護(hù)體系,采集關(guān)鍵節(jié)點(diǎn)WAF防火墻、數(shù)據(jù)中心防火墻和進(jìn)出口防火墻的網(wǎng)絡(luò)日志數(shù)據(jù)。其中WAF防火墻的數(shù)據(jù)見表1,數(shù)據(jù)中心防火墻的數(shù)據(jù)由于記錄的防護(hù)類型不同,分為Web防護(hù)數(shù)據(jù)記錄和入侵防御系統(tǒng)(Intrusion Prevention System,IPS)數(shù)據(jù),分別見表2和表3。進(jìn)出口防火墻記錄的網(wǎng)絡(luò)日志見表4。表2、表3和表4由于特征數(shù)量過多,因此只列出特征名和單個(gè)內(nèi)容值作為示例。由于網(wǎng)絡(luò)日志涉及敏感信息,因此使用符號(hào)“*”替換部分?jǐn)?shù)據(jù)以防止暴露。
表2 數(shù)據(jù)中心Web防護(hù)日志
表3 數(shù)據(jù)中心IPS防護(hù)日志
為了保證對(duì)網(wǎng)絡(luò)攻擊日志中的威脅IP實(shí)現(xiàn)自動(dòng)處理和統(tǒng)計(jì),本文設(shè)計(jì)了一套自動(dòng)處理流程框架,如圖2所示。其中數(shù)據(jù)源來(lái)自于上述表1~表4所提供的數(shù)據(jù)集。針對(duì)這4種數(shù)據(jù)源,首先進(jìn)行特征處理。通過刪除冗余特征,對(duì)部分特征進(jìn)行拆分、統(tǒng)一規(guī)范特征命名等操作,實(shí)現(xiàn)數(shù)據(jù)源的特征統(tǒng)一,從而進(jìn)一步實(shí)現(xiàn)數(shù)據(jù)源的特征級(jí)融合。其次,進(jìn)行數(shù)據(jù)處理。數(shù)據(jù)處理主要包括:以攻擊IP和目的IP作為唯一索引項(xiàng),統(tǒng)計(jì)攻擊發(fā)生的次數(shù),刪除冗余記錄,此外刪除把內(nèi)網(wǎng)IP作為攻擊源的記錄、數(shù)據(jù)內(nèi)部提到的暴力攻擊次數(shù)的內(nèi)容提取、實(shí)現(xiàn)內(nèi)網(wǎng)IP轉(zhuǎn)換為對(duì)應(yīng)的外網(wǎng)IP、攻擊類型的轉(zhuǎn)換、數(shù)據(jù)的加密編碼等操作。在數(shù)據(jù)處理完成之后,還需要進(jìn)行數(shù)據(jù)格式的美化,以便所處理的數(shù)據(jù)可直接用于上報(bào)而無(wú)需人工處理。實(shí)驗(yàn)的關(guān)鍵代碼如下所示。
圖2 實(shí)驗(yàn)處理流程框架
表1 WAF防護(hù)日志
表4 進(jìn)出口防火墻防護(hù)日志
網(wǎng)絡(luò)攻擊威脅IP數(shù)據(jù)處理算法:定義Fi表示第i個(gè)數(shù)據(jù)文件,定義j表示某數(shù)據(jù)文件內(nèi)部的第j條記錄,定義Attr_propose(Fi)表示對(duì)Fi進(jìn)行特征處理的函數(shù),定義Extract_times(j)表示提取第j條記錄中的暴力攻擊次數(shù),定義F表示經(jīng)過特征級(jí)融合后形成的匯總數(shù)據(jù)集,定義Drop_duplicates(索引列表K)為索引去重函數(shù),刪除索引K的記錄數(shù)據(jù),定義Convert_IP(內(nèi)網(wǎng)IP,外網(wǎng)IP)函數(shù),實(shí)現(xiàn)將內(nèi)網(wǎng)IP轉(zhuǎn)換為外網(wǎng)IP,定義Convert_attack(原始攻擊類型列表,期望攻擊類型列表),實(shí)現(xiàn)將原始攻擊類型列表轉(zhuǎn)換為期望的攻擊類型列表,定義Base64(特征集)函數(shù),實(shí)現(xiàn)將指定的特征集數(shù)據(jù)執(zhí)行Base64編碼加密,定義Formatting(數(shù)據(jù)集F)函數(shù),實(shí)現(xiàn)將數(shù)據(jù)集F按指定格式進(jìn)行設(shè)置。
for each file Fi do:
Attr_propose(Fi)
end for
for j in Fi do:
Fi.Extract_times(j)
end for
產(chǎn)生一個(gè)新數(shù)據(jù)集F
for key, value in dict(F[源IP+目的IP], F[次數(shù)]):
追加當(dāng)前索引j進(jìn)去重索引列表K
特征“次數(shù)”累加當(dāng)前提取的值
end for
Drop_duplicates(索引列表K)
Convert_IP(內(nèi)網(wǎng)IP,外網(wǎng)IP)
Convert_attack(原始攻擊類型列表,期望攻擊類型列表)
Base64(特征集)
F=Formatting(F)
為了驗(yàn)證實(shí)驗(yàn)的有效性,本文在Intel(R) Core(TM) i7-7700 CPU @ 3.60 GHz,8GB內(nèi)存,64位Windows 10操作系統(tǒng)的環(huán)境中進(jìn)行實(shí)驗(yàn),采集上述4種數(shù)據(jù)集18份,按實(shí)驗(yàn)流程和相關(guān)算法進(jìn)行編碼測(cè)試,數(shù)據(jù)集的數(shù)據(jù)記錄數(shù)和程序運(yùn)行時(shí)間分別如圖3和圖4所示。每日網(wǎng)絡(luò)攻擊防護(hù)日志一般在10萬(wàn)條數(shù)據(jù)量以內(nèi),程序運(yùn)行時(shí)間在一分鐘左右即可完成,大大提高了網(wǎng)絡(luò)攻擊威脅IP的統(tǒng)計(jì)效率。此外可以發(fā)現(xiàn),程序運(yùn)行時(shí)間和數(shù)據(jù)記錄數(shù)基本呈線性正相關(guān),隨著數(shù)據(jù)記錄數(shù)的遞增,程序運(yùn)行時(shí)間也相應(yīng)增加。最終處理完成后的數(shù)據(jù)見表5。實(shí)現(xiàn)源IP和目的IP是唯一索引,且基于該索引自動(dòng)統(tǒng)計(jì)發(fā)生的攻擊次數(shù),并對(duì)詳細(xì)的攻擊描述進(jìn)行base64編碼。
表5 經(jīng)處理后的數(shù)據(jù)
圖3 數(shù)據(jù)集與其記錄數(shù)
圖4 數(shù)據(jù)集與其運(yùn)行時(shí)間
本文采用Python腳本對(duì)網(wǎng)絡(luò)攻擊防護(hù)日志的處理,實(shí)現(xiàn)將多源異構(gòu)數(shù)據(jù)進(jìn)行融合,并且完成特征的統(tǒng)一,基于源IP地址和目的IP地址實(shí)現(xiàn)數(shù)據(jù)記錄的唯一索引,并統(tǒng)計(jì)發(fā)生的攻擊次數(shù)。經(jīng)實(shí)驗(yàn)驗(yàn)證,所設(shè)計(jì)的算法程序能高效處理網(wǎng)絡(luò)攻擊日志的威脅IP統(tǒng)計(jì),十萬(wàn)條左右的數(shù)據(jù)量可在一分鐘之內(nèi)完成。同時(shí),對(duì)于高校在網(wǎng)絡(luò)安全運(yùn)維工作中的常態(tài)化威脅IP上報(bào)工作,提供了極大的便利。本文是Python腳本在高校網(wǎng)絡(luò)安全運(yùn)維中的實(shí)際應(yīng)用示例,可為其他網(wǎng)絡(luò)安全運(yùn)維工作提供借鑒與思考。