徐 硯,谷 鵬
(中國電子科技網(wǎng)絡(luò)信息安全有限公司,四川 成都 610041)
隨著中國制造2025全面推進(jìn),工業(yè)數(shù)字化、網(wǎng)絡(luò)化、智能化加快發(fā)展,新形勢(shì)下工控安全工作的重要性和緊迫性更加凸顯。黨中央、國務(wù)院高度重視信息安全問題?!秶鴦?wù)院關(guān)于深化制造業(yè)與互聯(lián)網(wǎng)融合發(fā)展的指導(dǎo)意見》將“提高工業(yè)信息系統(tǒng)安全水平”作為主要任務(wù)之一。2017年6月1日實(shí)施的《中華人民共和國網(wǎng)絡(luò)安全法》也要求對(duì)包括工業(yè)控制系統(tǒng)在內(nèi)的“可能嚴(yán)重危害國家安全、國計(jì)民生、公共利益的關(guān)鍵信息基礎(chǔ)設(shè)施”實(shí)行重點(diǎn)保護(hù)[1]。
電力監(jiān)控網(wǎng)作為保證電力系統(tǒng)安全、穩(wěn)定運(yùn)行的關(guān)鍵信息基礎(chǔ)設(shè)施,其網(wǎng)絡(luò)安全威脅態(tài)勢(shì)日趨嚴(yán)峻。近年來,曝光的幾起因黑客攻擊導(dǎo)致的大規(guī)模斷電事件也佐證了這一點(diǎn)[2]。目前,網(wǎng)絡(luò)安全保護(hù)措施在面對(duì)海量電力監(jiān)控網(wǎng)多源異構(gòu)數(shù)據(jù)時(shí)缺乏關(guān)聯(lián)分析、大數(shù)據(jù)處理以及未知威脅防范能力,不能完全確保系統(tǒng)網(wǎng)絡(luò)的安全。電力監(jiān)控網(wǎng)需要更全面的安全監(jiān)控、分析、響應(yīng)系統(tǒng),實(shí)現(xiàn)全系統(tǒng)的事件管理與流程處理,處理或預(yù)警已知與未知風(fēng)險(xiǎn)[3]。
電力監(jiān)控網(wǎng)是用于監(jiān)視和控制電網(wǎng)及電廠生產(chǎn)運(yùn)行過程的、基于計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的業(yè)務(wù)處理系統(tǒng)及智能設(shè)備網(wǎng)絡(luò)[4],包括電力數(shù)據(jù)采集與監(jiān)控系統(tǒng)、能量管理系統(tǒng)、變電站自動(dòng)化系統(tǒng)、換流站計(jì)算機(jī)監(jiān)控系統(tǒng)、發(fā)電廠計(jì)算機(jī)監(jiān)控系統(tǒng)、配電自動(dòng)化系統(tǒng)、微機(jī)繼電保護(hù)和安全自動(dòng)裝置、廣域相量測(cè)量系統(tǒng)、負(fù)荷控制系統(tǒng)、電能量計(jì)量計(jì)費(fèi)系統(tǒng)、水調(diào)自動(dòng)化系統(tǒng)和水電梯級(jí)調(diào)度自動(dòng)化系統(tǒng)和實(shí)時(shí)電力市場(chǎng)的輔助控制系統(tǒng)等[5],如圖1所示。
圖1 電力監(jiān)控系統(tǒng)網(wǎng)絡(luò)
電力監(jiān)控網(wǎng)根據(jù)國網(wǎng)定制系統(tǒng)要求,需要對(duì)網(wǎng)絡(luò)流量信息和報(bào)文進(jìn)行采集,支持IEC60870-5-104規(guī)約、IEC61850規(guī)約(含MMS、GOOSE、SV等協(xié)議)等工業(yè)控制系統(tǒng)通信協(xié)議。這意味著需要支持包括智能變電站和配電網(wǎng)等電力生產(chǎn)運(yùn)行大區(qū)環(huán)境的全面監(jiān)控。
目前,電網(wǎng)生產(chǎn)控制監(jiān)控裝置主要有以下幾類技術(shù)產(chǎn)品。
第一類是由電力系統(tǒng)原來做電力錄波裝置的設(shè)備廠商升級(jí)相關(guān)設(shè)備。
第二類是借鑒類似信息系統(tǒng)安全設(shè)備的研制思路,主要對(duì)二次安全防護(hù)設(shè)備的日志進(jìn)行采集分析。
第三類是利用信息系統(tǒng)網(wǎng)絡(luò)分析技術(shù)延伸過來,代表設(shè)備包括流量分析系統(tǒng)和工業(yè)控制協(xié)議分析系統(tǒng)。
這三類技術(shù)產(chǎn)品雖然一定程度上對(duì)電力監(jiān)控網(wǎng)起到了安全防護(hù)作用,但由于存在“信息孤島”且不支持海量數(shù)據(jù)的存儲(chǔ)與處理,無法應(yīng)對(duì)全球能源互聯(lián)網(wǎng)的動(dòng)態(tài)實(shí)時(shí)監(jiān)控和時(shí)空大數(shù)據(jù)挑戰(zhàn)[6]。
當(dāng)前,電力監(jiān)控網(wǎng)信息安全設(shè)備能力不足,傳統(tǒng)的SOC、SIEM等通用集中化安全分析平臺(tái)往往只收集了高速海量安全數(shù)據(jù),缺乏分析能力,更缺乏根據(jù)電力行業(yè)工業(yè)控制特點(diǎn)控制場(chǎng)景進(jìn)行深度分析的安全手段[7]。
將大數(shù)據(jù)分析技術(shù)應(yīng)用于電力行業(yè)安全領(lǐng)域,采集電力監(jiān)控網(wǎng)二次安全防護(hù)設(shè)備和網(wǎng)絡(luò)流量中的多源異構(gòu)數(shù)據(jù)進(jìn)行大數(shù)據(jù)關(guān)聯(lián)分析、告警分析、行為分析等,可以有效提升對(duì)行業(yè)網(wǎng)絡(luò)安全的支撐能力。
根據(jù)電力監(jiān)控網(wǎng)大數(shù)據(jù)分析平臺(tái)的功能定位,平臺(tái)需要為電力監(jiān)控網(wǎng)提供海量數(shù)據(jù)采集、存儲(chǔ)、計(jì)算、分析等基礎(chǔ)性支撐功能。
(1)數(shù)據(jù)采集方面。提供強(qiáng)大的數(shù)據(jù)抽取、轉(zhuǎn)換和加載能力。適配多種數(shù)據(jù)源(數(shù)據(jù)庫、文件、日志、網(wǎng)絡(luò)流量),適配多種數(shù)據(jù)抽取方式(離線、實(shí)時(shí)),可配置采集策略,支持集群方式運(yùn)行,可對(duì)采集過程進(jìn)行監(jiān)控和詳細(xì)的日志記錄。
(2)數(shù)據(jù)存儲(chǔ)方面。提供低成本、高擴(kuò)展性的數(shù)據(jù)存儲(chǔ),支持多源異構(gòu)數(shù)據(jù)的存儲(chǔ)和低延遲即時(shí)查詢,可以以大吞吐量高效批量加載、處理非結(jié)構(gòu)化數(shù)據(jù),支持原始流量數(shù)據(jù)和安全事件的長時(shí)間存儲(chǔ)。
(3)數(shù)據(jù)計(jì)算方面。提供海量多源異構(gòu)數(shù)據(jù)實(shí)時(shí)、批量處理分析,構(gòu)建在線監(jiān)測(cè)、在線分析和在線計(jì)算等實(shí)時(shí)數(shù)據(jù)處理平臺(tái)。利用大數(shù)據(jù)的批量計(jì)算、內(nèi)存計(jì)算等技術(shù),結(jié)合各類業(yè)務(wù)邏輯和算法,實(shí)現(xiàn)海量數(shù)據(jù)的離線分析與處理能力。
(4)數(shù)據(jù)分析方面??商峁┛鐦I(yè)務(wù)的分析模型和數(shù)據(jù)挖掘算法,設(shè)計(jì)大數(shù)據(jù)關(guān)聯(lián)分析模型和算法庫,實(shí)現(xiàn)數(shù)據(jù)分析模型和算法的靈活配置和擴(kuò)展。對(duì)于常用的數(shù)據(jù)分析算法可實(shí)現(xiàn)并行化,提升數(shù)據(jù)分析性能。
根據(jù)需求分析,電力監(jiān)控網(wǎng)大數(shù)據(jù)分析平臺(tái)采用四層式的分層架構(gòu),包括數(shù)據(jù)采集層、數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)計(jì)算層和數(shù)據(jù)分析層。各層之間通過數(shù)據(jù)總線和數(shù)據(jù)庫進(jìn)行銜接,系統(tǒng)總體架構(gòu)如圖2所示。
數(shù)據(jù)采集層通過采集口連接核心交換機(jī)鏡像口,收集所有以太網(wǎng)數(shù)據(jù),解析并格式化后經(jīng)由數(shù)據(jù)總線上報(bào)大數(shù)據(jù)集群。同時(shí),數(shù)據(jù)采集層可作為日志服務(wù)器收集轉(zhuǎn)發(fā)網(wǎng)絡(luò)中的welf和syslog日志。
數(shù)據(jù)采集層基于嵌入式操作系統(tǒng),其系統(tǒng)架構(gòu)包含配置框架、配置模塊和各個(gè)數(shù)據(jù)采集功能模塊。配置框架提供統(tǒng)一的參數(shù)配置接口和訪問接口,配置模塊提供系統(tǒng)管理、網(wǎng)絡(luò)管理、認(rèn)證管理和采集與監(jiān)控管理配置功能,數(shù)據(jù)采集功能模塊提供交換機(jī)鏡像口網(wǎng)絡(luò)數(shù)據(jù)采集、welf和syslog日志采集以及本地日志存儲(chǔ)審計(jì)功能。圖3為數(shù)據(jù)采集層系統(tǒng)架構(gòu)。
圖2 系統(tǒng)總體架構(gòu)
圖3 數(shù)據(jù)采集層系統(tǒng)架構(gòu)
數(shù)據(jù)存儲(chǔ)層主要負(fù)責(zé)存儲(chǔ)結(jié)構(gòu)化、非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),如圖4所示。
其中,非結(jié)構(gòu)化數(shù)據(jù)主要指網(wǎng)絡(luò)流量和安全日志等原始數(shù)據(jù)。這些數(shù)據(jù)的特點(diǎn)是數(shù)據(jù)量大、價(jià)值密度低,對(duì)存儲(chǔ)效率和數(shù)據(jù)壓縮率有較高要求。系統(tǒng)中,通過Parquet格式的HDFS對(duì)非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行存儲(chǔ),可以在高壓縮率(大于20倍)的條件下保證高存儲(chǔ)速率[8]。
結(jié)構(gòu)化數(shù)據(jù)主要指關(guān)系型數(shù)據(jù),包括系統(tǒng)配置數(shù)據(jù)、用戶認(rèn)證數(shù)據(jù)以及最終的數(shù)據(jù)分析結(jié)果數(shù)據(jù)。這些數(shù)據(jù)的特點(diǎn)是數(shù)據(jù)量小、格式固定且需要頻繁訪問。MYSQL小型關(guān)系型數(shù)據(jù)庫由于體積小、速度快、部署成本低等特點(diǎn),很好地滿足了結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)需求。
半結(jié)構(gòu)化數(shù)據(jù),就是介于結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)之間的數(shù)據(jù),如XML、HTML、JSON文檔都屬于半結(jié)構(gòu)化數(shù)據(jù)。在電力監(jiān)控網(wǎng)大數(shù)據(jù)分析平臺(tái)中,從網(wǎng)絡(luò)流量原始數(shù)據(jù)中分析出的電力監(jiān)控事件和安全日志原始數(shù)據(jù)中分析出的安全事件,既需要在數(shù)據(jù)存儲(chǔ)層進(jìn)行存儲(chǔ),又需要在數(shù)據(jù)計(jì)算層進(jìn)行數(shù)據(jù)清洗與計(jì)算,還需要在數(shù)據(jù)分析層進(jìn)行關(guān)聯(lián)審計(jì)與查詢。采用JSON這種半結(jié)構(gòu)化數(shù)據(jù)易于傳輸、轉(zhuǎn)換,同時(shí)可讀性高。而ElasticSearch分布式文件系統(tǒng)基于Lucene成熟的索引方案,具有橫向擴(kuò)展性、分布性、高可用性等特點(diǎn),并良好地支持JSON格式文檔的存儲(chǔ)。所以,系統(tǒng)最終選用ElasticSearch作為半結(jié)構(gòu)化數(shù)據(jù)庫[9]。
圖4 數(shù)據(jù)存儲(chǔ)層系統(tǒng)架構(gòu)
數(shù)據(jù)計(jì)算層按照需求分析應(yīng)當(dāng)支持流式計(jì)算、離線計(jì)算、并行計(jì)算和機(jī)器學(xué)習(xí)。圖5為數(shù)據(jù)計(jì)算層系統(tǒng)架構(gòu)。Hadoop的Map/Reduce計(jì)算框架可以支持離線計(jì)算和并行計(jì)算,但在處理實(shí)時(shí)海量數(shù)據(jù)方面能力較弱;Spark是基于內(nèi)存計(jì)算的大數(shù)據(jù)分布式計(jì)算框架,可以提高在大數(shù)據(jù)環(huán)境下數(shù)據(jù)處理的實(shí)時(shí)性,同時(shí)保證容錯(cuò)性和高可伸縮性,且內(nèi)置豐富的機(jī)器學(xué)習(xí)算法庫,是電力大數(shù)據(jù)分析平臺(tái)比較理想的實(shí)時(shí)計(jì)算框架[10]。
數(shù)據(jù)計(jì)算層通過Yarn對(duì)Spark計(jì)算任務(wù)進(jìn)行資源管理,通過Spark流式計(jì)算模塊完成對(duì)網(wǎng)絡(luò)流量原始數(shù)據(jù)和安全日志原始數(shù)據(jù)的數(shù)據(jù)清洗、預(yù)處理等工作。處理后的數(shù)據(jù)批量插入ElasticSearch,供數(shù)據(jù)分析層進(jìn)行后續(xù)分析統(tǒng)計(jì)。Spark機(jī)器學(xué)習(xí)模塊可通過歷史數(shù)據(jù)生成機(jī)器學(xué)習(xí)安全分析模型,供Spark流式計(jì)算模塊調(diào)用完成實(shí)時(shí)告警。MR離線計(jì)算模塊和并行計(jì)算模塊可支持對(duì)原始數(shù)據(jù)的統(tǒng)計(jì)分析、問題溯源和基線生成等。
圖5 數(shù)據(jù)計(jì)算層系統(tǒng)架構(gòu)
數(shù)據(jù)分析層主要提供安全告警、數(shù)據(jù)分析和數(shù)據(jù)挖掘三類服務(wù),系統(tǒng)架構(gòu)如圖6所示。安全告警服務(wù)基于靈活的自定義規(guī)則庫和威脅告警算法庫,既可以對(duì)原始數(shù)據(jù)通過威脅告警算法產(chǎn)生安全告警信息,也可以通過自定義規(guī)則對(duì)各種安全事件和告警信息進(jìn)行二次分析告警。數(shù)據(jù)分析服務(wù)和數(shù)據(jù)挖掘服務(wù)基于關(guān)聯(lián)分析模型,集成可視化分析挖掘工具、分布式算法和分布式搜索引擎(ElasticSearch),可支持海量多源異構(gòu)數(shù)據(jù)的關(guān)聯(lián)審計(jì)分析。
圖6 數(shù)據(jù)分析層系統(tǒng)架構(gòu)
電力監(jiān)控系統(tǒng)中的各類數(shù)據(jù)在時(shí)間、空間和角度上都存在巨大差異,反映的是電力網(wǎng)的不同維度屬性,需要對(duì)各類數(shù)據(jù)進(jìn)行融合,將多源異構(gòu)數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一的信息模型。數(shù)據(jù)融合主要體現(xiàn)在兩個(gè)方面:一方面是不同時(shí)間、空間維度的數(shù)據(jù)要融合形成合理的按時(shí)間、空間關(guān)聯(lián)的數(shù)據(jù);另一方面是不同業(yè)務(wù)相關(guān)數(shù)據(jù)之間要形成關(guān)聯(lián)、并使用一致的數(shù)據(jù)表達(dá)。
要解決大數(shù)據(jù)的統(tǒng)一存儲(chǔ)、管理及高效分析處理,需要進(jìn)行大數(shù)據(jù)的統(tǒng)一組織和一致性表達(dá),解決多源、分布和異構(gòu)數(shù)據(jù)整合和統(tǒng)一管理問題。目前,電力監(jiān)控網(wǎng)絡(luò)主要的數(shù)據(jù)類型有IEC104、GOOSE、SV和MMS等工業(yè)協(xié)議數(shù)據(jù),如各個(gè)安全廠商的防火墻、加密機(jī)、隔離裝置、IDS的安全日志以及各種工控主機(jī)操作日志和系統(tǒng)日志等。傳統(tǒng)的做法是通過建立統(tǒng)一格式的表格,將所有數(shù)據(jù)格式的字段都包含進(jìn)去。這樣造成的結(jié)果是每一條記錄有大部分的字段都是空白字段,浪費(fèi)了存儲(chǔ)空間,訪問效率也不高,面對(duì)海量數(shù)據(jù)可能造成數(shù)據(jù)讀寫性能的急劇下降。
電力監(jiān)控網(wǎng)大數(shù)據(jù)分析平臺(tái)采用JSON數(shù)據(jù)格式存儲(chǔ)多源異構(gòu)數(shù)據(jù),將所有數(shù)據(jù)的公共字段(如:時(shí)間戳、源地址、目的地址等)統(tǒng)一格式化。非公共字段無需強(qiáng)制格式統(tǒng)一,在ElasticSearch的支持下,既能夠基于公共字段進(jìn)行關(guān)聯(lián)審計(jì),又避免了存儲(chǔ)大量的冗余字段,在實(shí)際應(yīng)用中對(duì)上百吉的數(shù)據(jù)查詢響應(yīng)時(shí)間在1 s以內(nèi)。
隨著電力監(jiān)控網(wǎng)的不斷演進(jìn),全省各安全設(shè)備每月產(chǎn)生告警原始日志近億條,以上告警通過各級(jí)安全管理平臺(tái)收斂。監(jiān)控人員每月需處理影響業(yè)務(wù)或網(wǎng)絡(luò)質(zhì)量的告警事件約上百條,但大量對(duì)網(wǎng)絡(luò)和業(yè)務(wù)可能造成隱患的告警信息被過濾。如何從海量告警數(shù)據(jù)中獲取有價(jià)值的數(shù)據(jù),對(duì)于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫架構(gòu)而言,似乎是一個(gè)不可能完成的任務(wù)。
當(dāng)告警分析量上升到億級(jí),如果采用傳統(tǒng)的數(shù)據(jù)存儲(chǔ)和計(jì)算方式,一方面數(shù)據(jù)量過大,表的管理、維護(hù)開銷過大,要做到每個(gè)字段索引,存儲(chǔ)浪費(fèi)巨大;另一方面計(jì)算分析過程耗時(shí)過長,無法滿足實(shí)時(shí)和準(zhǔn)實(shí)時(shí)分析需求。因此,必須采用新的技術(shù)架構(gòu)來分析處理海量告警信息。為此,大數(shù)據(jù)分析平臺(tái)引入了基于自定義規(guī)則的海量告警分析技術(shù)。
該技術(shù)基于ElasticSearch的海量數(shù)據(jù)快速統(tǒng)計(jì)查詢能力,通過靈活的配置自定義規(guī)則,支持對(duì)各種告警事件的全字段進(jìn)行數(shù)據(jù)查詢、聚合、統(tǒng)計(jì)等操作,并對(duì)統(tǒng)計(jì)分析結(jié)果進(jìn)行閾值判斷,對(duì)超出閾值的結(jié)果進(jìn)行告警。
整個(gè)流程分為規(guī)則解析、數(shù)據(jù)統(tǒng)計(jì)分析和告警三個(gè)步驟,下面具體說明。
(1)規(guī)則解析:系統(tǒng)通過定時(shí)任務(wù),周期性地讀取自定義規(guī)則庫,將規(guī)則解析為操作ElasticSearch的具體指令和告警閾值。
(2)數(shù)據(jù)統(tǒng)計(jì)分析:通過解析的指令抽取ElasticSearch中的特定告警信息數(shù)據(jù)進(jìn)行查詢、聚合、統(tǒng)計(jì)等操作,生成統(tǒng)計(jì)分析結(jié)果。
(3)告警:將數(shù)據(jù)統(tǒng)計(jì)分析的結(jié)果與規(guī)則解析的告警閾值進(jìn)行對(duì)比,如果超出閾值則進(jìn)行告警。例如,統(tǒng)計(jì)30 min內(nèi)單臺(tái)防火墻的重啟告警信息數(shù),超過10次則產(chǎn)生一條該防火墻異常的告警。
圖7 告警分析工作流
本文在深入分析大數(shù)據(jù)平臺(tái)技術(shù)的基礎(chǔ)上,根據(jù)電力監(jiān)控網(wǎng)大數(shù)據(jù)應(yīng)用需求,研究電力監(jiān)控網(wǎng)大數(shù)據(jù)平臺(tái)的架構(gòu)以及多源異構(gòu)數(shù)據(jù)融合和基于規(guī)則的海量告警分析等技術(shù),設(shè)計(jì)了功能涵蓋大數(shù)據(jù)采集、存儲(chǔ)、計(jì)算、分析全過程的電力監(jiān)控網(wǎng)大數(shù)據(jù)分析平臺(tái)。從實(shí)際運(yùn)行效果來看,電力監(jiān)控網(wǎng)大數(shù)據(jù)分析平臺(tái)基本滿足安全運(yùn)維需求,但仍存在以下不足,需要在后續(xù)研究開發(fā)中進(jìn)一步加強(qiáng):
(1)平臺(tái)的自定義規(guī)則庫不夠豐富。當(dāng)前,自定義規(guī)則庫主要依靠安全運(yùn)維人員定義,雖然靈活度高,但對(duì)運(yùn)維人員有較高要求。后續(xù)版本中需要豐富內(nèi)置的各種工業(yè)安全事件檢測(cè)規(guī)則,方便用戶使用。
(2)智能化程度有待驗(yàn)證。雖然平臺(tái)支持機(jī)器學(xué)習(xí)和人工智能算法,但內(nèi)置的智能算法庫還需要通過長時(shí)間實(shí)際應(yīng)用來進(jìn)一步驗(yàn)證其合理性。