張曉 李偉 谷豐強 高明慧 呂超
【摘 要】電力二次系統(tǒng)內網存在大量的安全設備、業(yè)務系統(tǒng),同時伴隨著海量的日志數據信息。為了從這些告警的日志數據信息中,發(fā)掘現有設備、系統(tǒng)存在的問題,緩解后臺數據庫的負載壓力。本文提出一種日志信息解析歸并算法,能夠實現告警日志數據歸并的快速定位,只對新告警數據進行相應數據庫操作,對現有告警數據通過內存中的二叉樹維護并定期與后臺數據庫同步。利用該方式提高了告警數據的入庫效率,同時降低了內網安全監(jiān)視平臺數據庫負載。
【關鍵詞】syslog MD5 搜索 二叉樹
1 引言
隨著計算機網絡技術的廣泛應用,電力生產自動化水平日益提高,遠程控制的大量運用,對電力控制系統(tǒng)和數據網絡的安全性、可靠性、實時性提出了新的嚴峻挑戰(zhàn)。為防范對電網和電廠計算機監(jiān)控系統(tǒng)及調度數據網絡的攻擊侵害,及由此引起的電力系統(tǒng)事故,保障電力系統(tǒng)的安全穩(wěn)定運行,需要建立和完善電網和電廠計算機監(jiān)控系統(tǒng)及調度數據網絡的安全防護體系。
目前,電力二次系統(tǒng)內網安全監(jiān)視平臺的告警日志多為一個個孤立、沒有關聯(lián)性的信息,對于用戶來說多而雜亂,不利于整體上理解電力二次系統(tǒng)安全運行狀態(tài)及實時掌握告警事件。同時,內網安全監(jiān)視平臺主要實現告警數據匯總功能,并沒有對海量告警數據進行二次分析,造成現場告警繁多,信息關聯(lián)性不強,不僅不利于反映電力二次系統(tǒng)安全風險指標,還造成現場用戶疲于解決各類告警,嚴重影響內網安全監(jiān)視平臺的生命力。
本文提出一種告警日志解析歸并算法,能夠有效的解決告警日志的解析分類問題,可以實現告警日志數據的快速定位。同時該方法只對新告警數據進行相應數據庫操作,對現有告警數據通過內存中的二叉樹維護并定期與后臺數據庫同步。利用該方式大大減少了告警日志數據的寫入數據庫操作,降低了內網安全監(jiān)視平臺數據庫負載壓力。
2 背景
電力二次系統(tǒng)安全監(jiān)視平臺[1](以下簡稱內網安全監(jiān)視平臺)主要用于電力二次系統(tǒng)的安全事件監(jiān)視、安全事件分析、統(tǒng)計報表、資產管理等。
廣域網安全監(jiān)視部分主要對部署在橫、縱向邊界的電力專用和通用安全設備運行情況和異常訪問情況進行實時監(jiān)視,通過日志的采集模塊采集在網絡中存在的異常訪問、非法外聯(lián)等重要的告警數據,同時利用調度數據網實現下級調度中心的日志采集模塊和上級的調度中心內網安全監(jiān)視平臺的級聯(lián)通信功能。
局域網安全監(jiān)視部分對調度自動化系統(tǒng)內部關鍵設備和系統(tǒng)監(jiān)視,通過操作系統(tǒng)的接口,實時獲取調度技術支持系統(tǒng)的運行狀態(tài),在系統(tǒng)發(fā)生異常、非法操作或是外聯(lián)時,根據預先設定的規(guī)則,將告警數據上報到內網安全監(jiān)視平臺,以供用戶實行全局的統(tǒng)計分析與綜合運用。
3 告警日志解析歸并算法設計
為了降低在大數據量告警日志情況下,對內網安全監(jiān)視平臺的數據庫運行的壓力,避免出現告警信息丟失現象;方便用戶定位告警的真實來源,本文提出一種用于電力二次系統(tǒng)內網安全監(jiān)視平臺的告警解析歸并方法,具體步驟如下圖1所示。
以下對本告警解析歸并方法的具體步驟展開詳細說明。
步驟1:構建平衡二叉樹。
內網安全監(jiān)視平臺的數據庫中實時存儲電力二次系統(tǒng)的安全設備告警數據。內網安全監(jiān)視平臺啟動后,構建空的平衡二叉樹;從告警信息表中獲取存儲的告警數據并逐條計算告警特征值;將這些告警特征值插入空的平衡二叉樹中;構建含有告警數據的平衡二叉樹。
步驟2:接收告警數據。
內網安全監(jiān)視平臺主要使用Syslog[2]方式采集安全設備的日志信息,并通過Syslog日志信息確定安全設備告警信息。電力系統(tǒng)專用安全設備(橫向隔離設備、縱向加密認證裝置)使用Syslog方式直接采集日志信息;通用安全設備(防火墻、入侵檢測系統(tǒng)、防病毒系統(tǒng))通過Agent代理將日志轉換為符合電力系統(tǒng)標準格式的日志后采集;調度自動化系統(tǒng)內部的關鍵設備和應用通過Agent代理將日志轉換為標準格式發(fā)送至內網安全監(jiān)視平臺。Syslog采用用戶數據報協(xié)議(UDP)作為其底層傳輸層機制,Syslog日志信息采用標準的UDP數據包向內網安全監(jiān)視平臺發(fā)送信息。內網安全監(jiān)視平臺主要采集廣域網安全監(jiān)視部分和局域網安全監(jiān)視部分傳送的告警原始數據。
廣域網安全監(jiān)視部分監(jiān)視二次系統(tǒng)安全設備(電力專用安全設備和通用安全設備),通過數據采集裝置實時采集網絡中存在的異常訪問,非法外連等重要告警信息。
局域網安全監(jiān)視部分監(jiān)視主站調度自動化系統(tǒng)內部主機的安全狀態(tài),當系統(tǒng)內部主機發(fā)生異常、非法操作或外連時,向內網安全監(jiān)視平臺發(fā)出告警。
步驟3:告警數據加入合法告警隊列。
內網安全監(jiān)視平臺接收告警日志數據后,先將這些告警數據做數據合法性驗證,根據告警數據的合法性,將告警數據加入合法告警隊列。如果接收到的告警數據不合法,則將該不合法的告警數據丟棄。如果接收到的告警數據合法,則將該合法的告警數據加入合法告警隊列。這里的告警數據合法性校驗主要是校驗接收到告警數據的內容格式是否符合標準的Syslog格式,并判斷告警內容是否符合規(guī)范格式。
步驟4:告警數據加入監(jiān)視范圍內告警隊列。
內網安全監(jiān)視平臺對告警數據合法性驗證后,先將這些告警數據的源IP范圍做合法性驗證,根據告警數據源IP范圍的合法性,將告警數據加入監(jiān)視范圍內告警隊列。如果接收到的告警數據的源IP范圍不合法,則將該不合法的告警數據丟棄。如果接收到的告警數據的源IP范圍合法,則將該合法的告警數據加入合法告警隊列。
步驟5:按告警設備類型分類告警隊列。
內網安全監(jiān)視平臺對告警數據源的IP范圍做合法性驗證后,需根據告警數據中的告警信息將告警數據按告警設備類型分類成多個告警隊列。例如,防火墻隊列、IDS隊列、防病毒隊列、服務器隊列等。
步驟6:按分類告警隊列計算告警特征值。
內網安全監(jiān)視平臺讀取分類后的告警隊列,從這些分類后的告警隊列中獲取當前發(fā)送的報警數據,并通過特征值提取算法計算特征值。
本文中優(yōu)選采用一種MD5算法[3~4]的優(yōu)化變形方法計算告警數據的特征值,具體計算過程如下:
(1)去除告警數據中的告警時間。告警內容相同,但是告警時間可能不同,為保持告警數據的一致性所以需要去掉告警時間。
(2)去掉告警數據內容中存在的空格??崭裥畔⒈旧韺τ诟婢瘍热萦绊懖淮螅瑸樘岣進D5運算效率,將空格信息去掉。
(3)計算處理后告警數據的MD5值并簡化計算結果。由于標準md5算法的特征值結果為16個字節(jié),考慮到電力業(yè)務特點及告警數據內容有限性,同時為提高平衡二叉樹查找、插入效率,將16字節(jié)結果前8字節(jié)和后8字節(jié)進行異或,得到8字節(jié)的最終特征值結果。
步驟7:匹配告警特征值在否在平衡二叉樹中存在狀況并保存告警數據。
內網安全監(jiān)視平臺計算出每條告警日志數據的特征值后,與內網安全監(jiān)視平臺初始化后構建的含有告警數據的平衡二叉樹比較。在平衡二叉樹中查找是否存在該特征值的節(jié)點;若不存在,將該節(jié)點插入平衡二叉樹和數據庫的告警信息表中;若存在,則更新平衡二叉樹上該節(jié)點的告警次數及告警結束時間。
4 實驗結果
電力二次系統(tǒng)安全監(jiān)控日志格式定義如下:“<告警級別><空格>告警時間<空格>設備名稱<空格>設備類型<空格>內容描述”。電力二次系統(tǒng)安全監(jiān)控日志主要分為告警日志和審計日志。告警日志為緊急和重要級別,一般用于電力二次系統(tǒng)重大安全事件的實時告警;審計日志為次要和通告級別,一般用于電力二次系統(tǒng)運行情況的事后統(tǒng)計分析。
采集的原始日志及MD5值如下表1所示。
5 結語
本文提出一種告警日志解析歸并算法,該算法利用日志內容計算MD5哈希,并以該哈希構造平衡二叉樹,從而可以實現告警日志數據歸并的快速定位,同時定期與后臺數據庫同步。由于,現在僅對歸并后的告警日志信息進行入庫,所以大大提高了數據庫的操作效率,降低了內網安全監(jiān)視平臺數據庫負載。
參考文獻:
[1]劉合富.基于syslog技術的防火墻日志數據采集方法的研究.華中師范大學.
[2]黃文,謝冬青.基于Syslog的網絡日志管理分析模型.湖南科技學院學報,2006(05).
[3]魏曉玲.MD5.加密算法的研究及應用.信息技術,2010(07):145-151.
[4]R.Rivest.The MD5 Message- Digest Algorithm[R]. RFC1321,1992.
作者簡介:張曉(1972—),男,碩士,高級工程師,CISP,中國電機學會高級會員,研究方向:電網調度管理系統(tǒng)、電力二次系統(tǒng)安全防護、數據網絡建設。