余 錚 馮 浩 查志勇
(國(guó)網(wǎng)湖北省電力有限公司信息通信公司 武漢 430077)
隨著信息系統(tǒng)在國(guó)家電網(wǎng)中的廣泛運(yùn)用,信息系統(tǒng)安全平穩(wěn)地運(yùn)行支撐壓力越來(lái)越大,導(dǎo)致信息系統(tǒng)以及大量支撐服務(wù)器的運(yùn)維難度也逐漸加大。這些設(shè)備不斷產(chǎn)生出海量日志,通過(guò)對(duì)日志進(jìn)行分析,其結(jié)果對(duì)于網(wǎng)絡(luò)安全起著重要的作用[1~2]。
在大數(shù)據(jù)情況下,傳統(tǒng)的日志分析方法容易導(dǎo)致網(wǎng)絡(luò)安全人員工作強(qiáng)度大。此外,新的攻擊方法層出不窮。這些情況的出現(xiàn),使得傳統(tǒng)的日志分析不再有效,缺乏對(duì)網(wǎng)絡(luò)信息安全的全局認(rèn)識(shí),從而不能幫助信息系統(tǒng)做到提前防御、預(yù)測(cè)攻擊[3~6]。
如何幫助網(wǎng)絡(luò)信息安全人員高效地進(jìn)行海量日志分析,就成為信息安全領(lǐng)域中一個(gè)急需解決的問題。
張驍[7]等利用分布式收集策略,對(duì)信息系統(tǒng)日志進(jìn)行收集,并向用戶提供日志數(shù)據(jù)查詢服務(wù)。倪震[8]等人提出了面向電力大數(shù)據(jù)基于時(shí)間序列的日志分析算法,以及基于該算法的評(píng)價(jià)體系。王建民[9]則提出了結(jié)合特定領(lǐng)域需求開發(fā)的一體化平臺(tái),該平臺(tái)在大數(shù)據(jù)生命周期內(nèi),提供給用戶實(shí)時(shí)分析的功能。
本文基于K-最近鄰算法(K-Nearest Neighbor,KNN),提出了未知攻擊識(shí)別算法。該算法能夠?qū)崟r(shí)收集物理蜜罐系統(tǒng)的日志信息。這些日志信息可以用于判斷是否存在增刪賬號(hào),關(guān)鍵文件是否被修改以及異常外聯(lián)等行為,從而判斷出信息系統(tǒng)的端口、進(jìn)程、服務(wù)是否啟動(dòng)或者異常。
目前,國(guó)家電網(wǎng)公司內(nèi)部各領(lǐng)域及各專業(yè)在信息系統(tǒng)的支撐下高效運(yùn)轉(zhuǎn),信息系統(tǒng)運(yùn)行支撐壓力越來(lái)越大,面對(duì)多套信息系統(tǒng)以及多臺(tái)服務(wù)器的運(yùn)行維護(hù)工作量,運(yùn)維人員少,工作任務(wù)艱巨。為此,本文擬開展信息系統(tǒng)運(yùn)行態(tài)勢(shì)感知和全息智能預(yù)警技術(shù)的研究,通過(guò)總結(jié)經(jīng)驗(yàn),利用信息化工具拓展基礎(chǔ)信息收集及分析方式,豐富運(yùn)維管理手段,建立智慧運(yùn)維體系雛形。
本文研究國(guó)家電網(wǎng)中的信息系統(tǒng)在多個(gè)場(chǎng)景中出現(xiàn)故障,在技術(shù)骨干人數(shù)有限,網(wǎng)絡(luò)和業(yè)務(wù)更新變化快的情況下,快速發(fā)現(xiàn)、定位和處理故障的難題,初步實(shí)現(xiàn)信息系統(tǒng)運(yùn)行態(tài)勢(shì)感知[10]及智慧處理。為了實(shí)現(xiàn)信息系統(tǒng)的異常快速檢測(cè)和定位,本文首要研究目標(biāo)是在電力大數(shù)據(jù)[8,11~15]情況下信息系統(tǒng)的日志快速分析。
在信息系統(tǒng)的總體架構(gòu)設(shè)計(jì)過(guò)程中,規(guī)劃設(shè)計(jì)遵循“功能驅(qū)動(dòng)”的原則,采用由應(yīng)用架構(gòu)到技術(shù)架構(gòu)逐層驅(qū)動(dòng)的方法,采用由應(yīng)用架構(gòu)到技術(shù)架構(gòu)逐層驅(qū)動(dòng)的方法。應(yīng)用架構(gòu)是從全息智能處置(業(yè)務(wù)應(yīng)急保障)平臺(tái)系統(tǒng)功能需求的角度去清晰準(zhǔn)確定義應(yīng)用范圍、功能及模塊等;技術(shù)架構(gòu)是基于應(yīng)用架構(gòu),根據(jù)信息技術(shù)發(fā)展趨勢(shì)以及相應(yīng)的實(shí)踐經(jīng)驗(yàn),從系統(tǒng)具體實(shí)現(xiàn)角度提出系統(tǒng)總體的技術(shù)實(shí)現(xiàn)方案和軟硬件物理部署方式;各架構(gòu)域在設(shè)計(jì)過(guò)程中是多次迭代。通過(guò)對(duì)應(yīng)用架構(gòu)和技術(shù)架構(gòu)的規(guī)劃設(shè)計(jì),為全息智能處置(業(yè)務(wù)應(yīng)急保障)平臺(tái)系統(tǒng)的建設(shè)提供了有形、科學(xué)的方法,為技術(shù)方案的編制提供了依據(jù)和指導(dǎo)。
本文首要研究目標(biāo)是在電力大數(shù)據(jù)[8,11~15]情況下,信息系統(tǒng)的日志快速分析。其日志分析模塊包括集中的管理中心、可支持分布式部署的日志采集引擎和代理程序三個(gè)部件。日志采集引擎和代理程序?qū)崿F(xiàn)對(duì)數(shù)據(jù)源(操作系統(tǒng)、網(wǎng)絡(luò)設(shè)備、中間件、數(shù)據(jù)庫(kù)和信息系統(tǒng)等)的日志信息統(tǒng)一收集、格式化、過(guò)濾、聚合,然后上傳給管理中心進(jìn)行集中化存儲(chǔ)[16]、分析、審計(jì)和展示。
1)管理中心
管理中心是日志分析模塊的核心部件,實(shí)現(xiàn)了對(duì)日志信息的集中化存儲(chǔ)、分析、審計(jì)、查詢、關(guān)聯(lián)、告警,以及出具報(bào)表報(bào)告。管理中心支持三權(quán)分立,不同權(quán)限人員可通過(guò)瀏覽器登錄管理中心,進(jìn)行相關(guān)操作。
2)采集引擎
日志采集引擎可以和管理中心部署在同一臺(tái)硬件設(shè)備上,也可以探針模式獨(dú)立運(yùn)行,實(shí)現(xiàn)對(duì)異構(gòu)數(shù)據(jù)源的日志采集,且具有分布式采集能力。
日志采集引擎可通過(guò)syslog、SNMP、ssh、telnet、WMI、jdbc 等方式遠(yuǎn)程收集各類數(shù)據(jù)源的原始日志信息,經(jīng)過(guò)格式化、過(guò)濾、聚合后轉(zhuǎn)發(fā)給管理中心。
3)代理程序
代理程序用于安裝并運(yùn)行在審計(jì)對(duì)象上,實(shí)現(xiàn)對(duì)審計(jì)對(duì)象的日志信息源采集和轉(zhuǎn)發(fā)。代理程序可支持Windows、Linux 操作系統(tǒng),可用于采集操作系統(tǒng)日志以及特殊應(yīng)用系統(tǒng)的純文本型日志。同時(shí)代理程序還可實(shí)現(xiàn)文件完整性檢查、Windows 注冊(cè)表監(jiān)控、rootkit檢測(cè)等功能。
日志分析模塊采用B/S 架構(gòu),管理員通過(guò)HTTPS 方式對(duì)系統(tǒng)進(jìn)行管理。系統(tǒng)架構(gòu)包括審計(jì)數(shù)據(jù)源層、日志采集引擎、核心層和應(yīng)用層。如圖1所示。
1)數(shù)據(jù)源層
數(shù)據(jù)源層包括各類型的網(wǎng)絡(luò)設(shè)備、數(shù)據(jù)庫(kù)、應(yīng)用系統(tǒng)、主機(jī)等,本模塊從以上數(shù)據(jù)源獲取原始日志信息。
2)采集引擎
該層利用syslog、SNMP、ssh、telnet、WMI、jdbc、文件等多種協(xié)議方式,從數(shù)據(jù)源獲取日志信息,并對(duì)原始日志信息進(jìn)行范式化、分類、過(guò)濾、歸并,統(tǒng)一推送到核心層進(jìn)行分析、存儲(chǔ)。
3)核心層
通過(guò)日志流聚合引擎實(shí)現(xiàn)日志抽??;利用基于CMDB(配置管理數(shù)據(jù)庫(kù))的關(guān)聯(lián)分析引擎對(duì)采集的安全信息進(jìn)行分析、觸發(fā)規(guī)則、生成告警記錄;通過(guò)高性能海量數(shù)據(jù)存儲(chǔ)代理將異常事件或告警信息進(jìn)行快速存儲(chǔ);通過(guò)分布式查詢引擎實(shí)現(xiàn)日志查詢。
4)應(yīng)用層
面向系統(tǒng)的使用者,提供一個(gè)圖形化的顯示界面,展現(xiàn)本系統(tǒng)的各功能模塊,提供綜合展示、資產(chǎn)管理、日志審計(jì)、基線監(jiān)控、拓?fù)湔故?、?guī)則管理、告警管理、報(bào)表管理、態(tài)勢(shì)展示、系統(tǒng)管理等功能。
圖1 日志分析模塊技術(shù)架構(gòu)
K-最近鄰算法(KNN 算法)是一種機(jī)器學(xué)習(xí)(Machine Learning,ML)算法,其原理是用一組預(yù)先定義的已知模式,來(lái)分類識(shí)別未知模式。
在日志分析模塊中,首先從日志中實(shí)時(shí)收集、分析的結(jié)果中提取未知攻擊的模式,然后與所有預(yù)定義的攻擊模式(已知模式)進(jìn)行距離(Distance)進(jìn)行計(jì)算,并將未知攻擊歸類為距離最近的已知攻擊。
在日志分析模塊中,對(duì)已知攻擊模式[13,17]及其特征預(yù)定義如表1 所示(只給出部分攻擊模式示例)。
表1 部分攻擊模式示例
要實(shí)現(xiàn)最近鄰距離計(jì)算,除了要預(yù)定義各種攻擊模式及其特征外,還要為各特征定義基線閾值,才能為距離計(jì)算提供一組標(biāo)準(zhǔn)度量。
下面以過(guò)多的出站流量(EOT)為例進(jìn)行說(shuō)明。日志分析模塊通過(guò)一段時(shí)間(4 周~6 周)的基線學(xué)習(xí),來(lái)采集數(shù)據(jù)信息。一旦采集到足夠的數(shù)據(jù)信息后,就可以確定EOT 這個(gè)攻擊特征的基線閾值。其計(jì)算基線閾值的步驟如下:
1)獲取平均值
首先使用均值法,找出各數(shù)據(jù)信息采集點(diǎn)的平均值μ:
2)獲取標(biāo)準(zhǔn)偏差
使用標(biāo)準(zhǔn)差公式,該方法用于測(cè)量數(shù)據(jù)中的變異量。具體公式如下:
3)計(jì)算標(biāo)準(zhǔn)誤差
標(biāo)準(zhǔn)誤差S用于確定置信區(qū)間。在日志分析模塊中,用標(biāo)準(zhǔn)誤差S來(lái)表示未來(lái)可能落入的區(qū)間。其具體公式如下:
4)95 %的置信區(qū)間
按照統(tǒng)計(jì)學(xué)原理,將標(biāo)準(zhǔn)誤差S乘以1.96(基于95%的置信區(qū)間)
5)求基線閾值范圍,該范圍X為
在日志分析模塊中,使用公式來(lái)比較未來(lái)的數(shù)據(jù)點(diǎn)。如果未來(lái)的數(shù)值落入這個(gè)范圍,那么和基線不一定有太大的差異;如果未來(lái)的數(shù)值落入這個(gè)區(qū)間外,則與基線有差異,觸動(dòng)閾值。
在獲得了每個(gè)已知攻擊模式的特征,以及特征的基線閾值后,可基于KNN 算法進(jìn)行最近鄰距離計(jì)算。一般使用歐幾里德距離D公式:
其中:p和q是兩個(gè)數(shù)據(jù)向量。p為一段時(shí)間內(nèi)(5 分鐘、10 分鐘、1小時(shí)、甚至一個(gè)月)針對(duì)某一IP 地址(源或目的IP 地址)的未知攻擊模式的特征集合;q為已知攻擊模式的特征集合;i為未知攻擊模式的特征數(shù)量。
當(dāng)i在每組向量和每個(gè)攻擊模式的特征中循環(huán)時(shí),計(jì)算未知攻擊模式特征集合與每個(gè)已知攻擊模式的特征集合之間的距離。其中最近鄰,就是該未知攻擊所屬的已知攻擊分類。
下面以基于日志分析提取的攻擊特征,通過(guò)KNN算法,來(lái)實(shí)現(xiàn)對(duì)未知攻擊的識(shí)別。如表2所示(只給出部分未知攻擊模式示例):
表2 部分未知攻擊模式示例
本文主要研究了電力大數(shù)據(jù)在日志分析中的應(yīng)用。設(shè)計(jì)了基于KNN 算法的未知攻擊識(shí)別算法,并將該算法應(yīng)用于電力大數(shù)據(jù)的信息系統(tǒng)中。經(jīng)實(shí)驗(yàn)表明,該信息系統(tǒng)中的日志分析模塊,通過(guò)合理的架構(gòu),優(yōu)化了計(jì)算效率,在運(yùn)行效率和運(yùn)行時(shí)間上都優(yōu)于傳統(tǒng)的日志分析平臺(tái)。
該日志分析模塊,可以實(shí)時(shí)收集物理蜜罐系統(tǒng)的日志信息;能夠準(zhǔn)確判斷是否存在增刪帳號(hào);端口、進(jìn)程、服務(wù)啟動(dòng)或者異常;關(guān)鍵文件是否修改以及異常外聯(lián)等行為。同時(shí),該日志分析模塊,可以通過(guò)sebek 收集非授權(quán)用戶的鍵盤操作日志;還可以收集網(wǎng)絡(luò)邊界安全防護(hù)設(shè)備(如:防火墻、IDS、IPS、WAP、流量清洗設(shè)備等)的告警日志。