徐 硯,谷 鵬
(中國電子科技網絡信息安全有限公司,四川 成都 610041)
隨著中國制造2025全面推進,工業數字化、網絡化、智能化加快發展,新形勢下工控安全工作的重要性和緊迫性更加凸顯。黨中央、國務院高度重視信息安全問題?!秶鴦赵宏P于深化制造業與互聯網融合發展的指導意見》將“提高工業信息系統安全水平”作為主要任務之一。2017年6月1日實施的《中華人民共和國網絡安全法》也要求對包括工業控制系統在內的“可能嚴重危害國家安全、國計民生、公共利益的關鍵信息基礎設施”實行重點保護[1]。
電力監控網作為保證電力系統安全、穩定運行的關鍵信息基礎設施,其網絡安全威脅態勢日趨嚴峻。近年來,曝光的幾起因黑客攻擊導致的大規模斷電事件也佐證了這一點[2]。目前,網絡安全保護措施在面對海量電力監控網多源異構數據時缺乏關聯分析、大數據處理以及未知威脅防范能力,不能完全確保系統網絡的安全。電力監控網需要更全面的安全監控、分析、響應系統,實現全系統的事件管理與流程處理,處理或預警已知與未知風險[3]。
電力監控網是用于監視和控制電網及電廠生產運行過程的、基于計算機及網絡技術的業務處理系統及智能設備網絡[4],包括電力數據采集與監控系統、能量管理系統、變電站自動化系統、換流站計算機監控系統、發電廠計算機監控系統、配電自動化系統、微機繼電保護和安全自動裝置、廣域相量測量系統、負荷控制系統、電能量計量計費系統、水調自動化系統和水電梯級調度自動化系統和實時電力市場的輔助控制系統等[5],如圖1所示。

圖1 電力監控系統網絡
電力監控網根據國網定制系統要求,需要對網絡流量信息和報文進行采集,支持IEC60870-5-104規約、IEC61850規約(含MMS、GOOSE、SV等協議)等工業控制系統通信協議。這意味著需要支持包括智能變電站和配電網等電力生產運行大區環境的全面監控。
目前,電網生產控制監控裝置主要有以下幾類技術產品。
第一類是由電力系統原來做電力錄波裝置的設備廠商升級相關設備。
第二類是借鑒類似信息系統安全設備的研制思路,主要對二次安全防護設備的日志進行采集分析。
第三類是利用信息系統網絡分析技術延伸過來,代表設備包括流量分析系統和工業控制協議分析系統。
這三類技術產品雖然一定程度上對電力監控網起到了安全防護作用,但由于存在“信息孤島”且不支持海量數據的存儲與處理,無法應對全球能源互聯網的動態實時監控和時空大數據挑戰[6]。
當前,電力監控網信息安全設備能力不足,傳統的SOC、SIEM等通用集中化安全分析平臺往往只收集了高速海量安全數據,缺乏分析能力,更缺乏根據電力行業工業控制特點控制場景進行深度分析的安全手段[7]。
將大數據分析技術應用于電力行業安全領域,采集電力監控網二次安全防護設備和網絡流量中的多源異構數據進行大數據關聯分析、告警分析、行為分析等,可以有效提升對行業網絡安全的支撐能力。
根據電力監控網大數據分析平臺的功能定位,平臺需要為電力監控網提供海量數據采集、存儲、計算、分析等基礎性支撐功能。
(1)數據采集方面。提供強大的數據抽取、轉換和加載能力。適配多種數據源(數據庫、文件、日志、網絡流量),適配多種數據抽取方式(離線、實時),可配置采集策略,支持集群方式運行,可對采集過程進行監控和詳細的日志記錄。
(2)數據存儲方面。提供低成本、高擴展性的數據存儲,支持多源異構數據的存儲和低延遲即時查詢,可以以大吞吐量高效批量加載、處理非結構化數據,支持原始流量數據和安全事件的長時間存儲。
(3)數據計算方面。提供海量多源異構數據實時、批量處理分析,構建在線監測、在線分析和在線計算等實時數據處理平臺。利用大數據的批量計算、內存計算等技術,結合各類業務邏輯和算法,實現海量數據的離線分析與處理能力。
(4)數據分析方面??商峁┛鐦I務的分析模型和數據挖掘算法,設計大數據關聯分析模型和算法庫,實現數據分析模型和算法的靈活配置和擴展。對于常用的數據分析算法可實現并行化,提升數據分析性能。
根據需求分析,電力監控網大數據分析平臺采用四層式的分層架構,包括數據采集層、數據存儲層、數據計算層和數據分析層。各層之間通過數據總線和數據庫進行銜接,系統總體架構如圖2所示。
數據采集層通過采集口連接核心交換機鏡像口,收集所有以太網數據,解析并格式化后經由數據總線上報大數據集群。同時,數據采集層可作為日志服務器收集轉發網絡中的welf和syslog日志。
數據采集層基于嵌入式操作系統,其系統架構包含配置框架、配置模塊和各個數據采集功能模塊。配置框架提供統一的參數配置接口和訪問接口,配置模塊提供系統管理、網絡管理、認證管理和采集與監控管理配置功能,數據采集功能模塊提供交換機鏡像口網絡數據采集、welf和syslog日志采集以及本地日志存儲審計功能。圖3為數據采集層系統架構。

圖2 系統總體架構

圖3 數據采集層系統架構
數據存儲層主要負責存儲結構化、非結構化和半結構化數據,如圖4所示。
其中,非結構化數據主要指網絡流量和安全日志等原始數據。這些數據的特點是數據量大、價值密度低,對存儲效率和數據壓縮率有較高要求。系統中,通過Parquet格式的HDFS對非結構化數據進行存儲,可以在高壓縮率(大于20倍)的條件下保證高存儲速率[8]。
結構化數據主要指關系型數據,包括系統配置數據、用戶認證數據以及最終的數據分析結果數據。這些數據的特點是數據量小、格式固定且需要頻繁訪問。MYSQL小型關系型數據庫由于體積小、速度快、部署成本低等特點,很好地滿足了結構化數據存儲需求。
半結構化數據,就是介于結構化數據和非結構化數據之間的數據,如XML、HTML、JSON文檔都屬于半結構化數據。在電力監控網大數據分析平臺中,從網絡流量原始數據中分析出的電力監控事件和安全日志原始數據中分析出的安全事件,既需要在數據存儲層進行存儲,又需要在數據計算層進行數據清洗與計算,還需要在數據分析層進行關聯審計與查詢。采用JSON這種半結構化數據易于傳輸、轉換,同時可讀性高。而ElasticSearch分布式文件系統基于Lucene成熟的索引方案,具有橫向擴展性、分布性、高可用性等特點,并良好地支持JSON格式文檔的存儲。所以,系統最終選用ElasticSearch作為半結構化數據庫[9]。

圖4 數據存儲層系統架構
數據計算層按照需求分析應當支持流式計算、離線計算、并行計算和機器學習。圖5為數據計算層系統架構。Hadoop的Map/Reduce計算框架可以支持離線計算和并行計算,但在處理實時海量數據方面能力較弱;Spark是基于內存計算的大數據分布式計算框架,可以提高在大數據環境下數據處理的實時性,同時保證容錯性和高可伸縮性,且內置豐富的機器學習算法庫,是電力大數據分析平臺比較理想的實時計算框架[10]。
數據計算層通過Yarn對Spark計算任務進行資源管理,通過Spark流式計算模塊完成對網絡流量原始數據和安全日志原始數據的數據清洗、預處理等工作。處理后的數據批量插入ElasticSearch,供數據分析層進行后續分析統計。Spark機器學習模塊可通過歷史數據生成機器學習安全分析模型,供Spark流式計算模塊調用完成實時告警。MR離線計算模塊和并行計算模塊可支持對原始數據的統計分析、問題溯源和基線生成等。

圖5 數據計算層系統架構
數據分析層主要提供安全告警、數據分析和數據挖掘三類服務,系統架構如圖6所示。安全告警服務基于靈活的自定義規則庫和威脅告警算法庫,既可以對原始數據通過威脅告警算法產生安全告警信息,也可以通過自定義規則對各種安全事件和告警信息進行二次分析告警。數據分析服務和數據挖掘服務基于關聯分析模型,集成可視化分析挖掘工具、分布式算法和分布式搜索引擎(ElasticSearch),可支持海量多源異構數據的關聯審計分析。

圖6 數據分析層系統架構
電力監控系統中的各類數據在時間、空間和角度上都存在巨大差異,反映的是電力網的不同維度屬性,需要對各類數據進行融合,將多源異構數據轉化為統一的信息模型。數據融合主要體現在兩個方面:一方面是不同時間、空間維度的數據要融合形成合理的按時間、空間關聯的數據;另一方面是不同業務相關數據之間要形成關聯、并使用一致的數據表達。
要解決大數據的統一存儲、管理及高效分析處理,需要進行大數據的統一組織和一致性表達,解決多源、分布和異構數據整合和統一管理問題。目前,電力監控網絡主要的數據類型有IEC104、GOOSE、SV和MMS等工業協議數據,如各個安全廠商的防火墻、加密機、隔離裝置、IDS的安全日志以及各種工控主機操作日志和系統日志等。傳統的做法是通過建立統一格式的表格,將所有數據格式的字段都包含進去。這樣造成的結果是每一條記錄有大部分的字段都是空白字段,浪費了存儲空間,訪問效率也不高,面對海量數據可能造成數據讀寫性能的急劇下降。
電力監控網大數據分析平臺采用JSON數據格式存儲多源異構數據,將所有數據的公共字段(如:時間戳、源地址、目的地址等)統一格式化。非公共字段無需強制格式統一,在ElasticSearch的支持下,既能夠基于公共字段進行關聯審計,又避免了存儲大量的冗余字段,在實際應用中對上百吉的數據查詢響應時間在1 s以內。
隨著電力監控網的不斷演進,全省各安全設備每月產生告警原始日志近億條,以上告警通過各級安全管理平臺收斂。監控人員每月需處理影響業務或網絡質量的告警事件約上百條,但大量對網絡和業務可能造成隱患的告警信息被過濾。如何從海量告警數據中獲取有價值的數據,對于傳統的關系型數據庫架構而言,似乎是一個不可能完成的任務。
當告警分析量上升到億級,如果采用傳統的數據存儲和計算方式,一方面數據量過大,表的管理、維護開銷過大,要做到每個字段索引,存儲浪費巨大;另一方面計算分析過程耗時過長,無法滿足實時和準實時分析需求。因此,必須采用新的技術架構來分析處理海量告警信息。為此,大數據分析平臺引入了基于自定義規則的海量告警分析技術。
該技術基于ElasticSearch的海量數據快速統計查詢能力,通過靈活的配置自定義規則,支持對各種告警事件的全字段進行數據查詢、聚合、統計等操作,并對統計分析結果進行閾值判斷,對超出閾值的結果進行告警。
整個流程分為規則解析、數據統計分析和告警三個步驟,下面具體說明。
(1)規則解析:系統通過定時任務,周期性地讀取自定義規則庫,將規則解析為操作ElasticSearch的具體指令和告警閾值。
(2)數據統計分析:通過解析的指令抽取ElasticSearch中的特定告警信息數據進行查詢、聚合、統計等操作,生成統計分析結果。
(3)告警:將數據統計分析的結果與規則解析的告警閾值進行對比,如果超出閾值則進行告警。例如,統計30 min內單臺防火墻的重啟告警信息數,超過10次則產生一條該防火墻異常的告警。

圖7 告警分析工作流
本文在深入分析大數據平臺技術的基礎上,根據電力監控網大數據應用需求,研究電力監控網大數據平臺的架構以及多源異構數據融合和基于規則的海量告警分析等技術,設計了功能涵蓋大數據采集、存儲、計算、分析全過程的電力監控網大數據分析平臺。從實際運行效果來看,電力監控網大數據分析平臺基本滿足安全運維需求,但仍存在以下不足,需要在后續研究開發中進一步加強:
(1)平臺的自定義規則庫不夠豐富。當前,自定義規則庫主要依靠安全運維人員定義,雖然靈活度高,但對運維人員有較高要求。后續版本中需要豐富內置的各種工業安全事件檢測規則,方便用戶使用。
(2)智能化程度有待驗證。雖然平臺支持機器學習和人工智能算法,但內置的智能算法庫還需要通過長時間實際應用來進一步驗證其合理性。