孔令源,段濱雪,梁尚福
(西南石油大學(xué)計算機科學(xué)學(xué)院,四川 成都 610500)
當前,我國已將工業(yè)控制系統(tǒng)(以下簡稱“工控系統(tǒng)”)大規(guī)模應(yīng)用于石油、化工和交通等重要領(lǐng)域,以提高生產(chǎn)效率并達到產(chǎn)業(yè)信息化。由于大部分工控系統(tǒng)是通過公共網(wǎng)絡(luò)連接傳遞信息,其系統(tǒng)安全將時刻面臨被非法入侵的威脅,因此,做好網(wǎng)絡(luò)資產(chǎn)探測和分析尤為重要。根據(jù)ISO 13335-1:2004《IT安全管理指南》中的定義,資產(chǎn)作為網(wǎng)絡(luò)安全管理的對象,包括信息、硬件、軟件、服務(wù)等。網(wǎng)絡(luò)資產(chǎn)探測是指追蹤、掌握網(wǎng)絡(luò)資產(chǎn)情況的過程,通常包括操作系統(tǒng)識別、服務(wù)識別等,能夠為網(wǎng)絡(luò)安全監(jiān)控、威脅態(tài)勢感知提供系統(tǒng)認知基礎(chǔ)[1-4]。
本文主要探討IP、操作系統(tǒng)、網(wǎng)絡(luò)設(shè)備等工控環(huán)境中的網(wǎng)絡(luò)資產(chǎn),并對傳統(tǒng)的資產(chǎn)探測系統(tǒng)進行問題分析,最終結(jié)合實際應(yīng)用場景提出一種基于規(guī)則引擎的工控資產(chǎn)分析系統(tǒng),顯著提升了工控環(huán)境中網(wǎng)絡(luò)資產(chǎn)的監(jiān)控和探測水平,為工控安全的維護提供有力幫助。
新型資產(chǎn)探測技術(shù)主要分為主動和被動兩大類?;谥鲃拥馁Y產(chǎn)探測盡管適用于全網(wǎng)與內(nèi)網(wǎng),然而該方法噪聲大,從而易觸發(fā)報警,對資產(chǎn)分析的準確性不高;并且僅能了解當前探測的狀態(tài),對安全設(shè)備保護的網(wǎng)絡(luò)資產(chǎn)探測的難度大,而現(xiàn)在大多數(shù)工控系統(tǒng)都有安全設(shè)備的保護,因此不適合在實際情況下使用[5]。基于被動的資產(chǎn)探測技術(shù)無額外網(wǎng)絡(luò)流量插入,對目標網(wǎng)絡(luò)運行的影響??;對受安全設(shè)備保護的網(wǎng)絡(luò)資產(chǎn)也具備一定的探測能力;支持歷史數(shù)據(jù)的積累。因此,非常適合于工控集群中的資產(chǎn)分析[6]。
通過以上分析,本文以流量分析和統(tǒng)計分析為基礎(chǔ),通過被動方式對工控集群內(nèi)部的網(wǎng)絡(luò)流量進行采集監(jiān)控,運用機器學(xué)習(xí)的方法對工業(yè)網(wǎng)絡(luò)流量進行細粒度分析,得到工控資產(chǎn)信息,最終構(gòu)建一個基于B/S架構(gòu)工控資產(chǎn)分析系統(tǒng)。通過被動式探測來實現(xiàn)對網(wǎng)絡(luò)空間資產(chǎn)的測繪摸底,便于理清網(wǎng)絡(luò)資產(chǎn)邊界,及時發(fā)現(xiàn)隱形資產(chǎn)。該系統(tǒng)使用了基于規(guī)則引擎的流量分析技術(shù),對網(wǎng)絡(luò)無入侵且無需要人工干預(yù),使用場景較為廣泛。并且,創(chuàng)新性地引入面向流量特征的機器學(xué)習(xí)模型,用于識別資產(chǎn)類型,如個人主機、服務(wù)器或其他工控設(shè)備等。除此之外,通過可視化全景展示資產(chǎn)流量規(guī)律和網(wǎng)絡(luò)通信關(guān)系,進一步提升網(wǎng)絡(luò)資產(chǎn)可見性。
網(wǎng)絡(luò)資產(chǎn)分析系統(tǒng)(見圖1)分為數(shù)據(jù)采集模塊、分析模塊、存儲模塊和展示模塊[7]。
圖1 網(wǎng)絡(luò)資產(chǎn)分析系統(tǒng)模塊
Suricata是一個完整的系統(tǒng),通過利用Suricata進行數(shù)據(jù)包采集。
流量分析模塊:通過Suricata.yaml配置出最后Json輸出的信息,從而得到需要的資產(chǎn)各種信息。由于Suricata輸出的流量日志中已經(jīng)按照事件類型及字段進行存儲,因此在對其進行處理時,本系統(tǒng)分類的方式是對日志數(shù)據(jù)進行分析、拆分、存儲??紤]到要提取的屬性差異性較大,所以在不同類型字段進行了分表分類存儲。資產(chǎn)數(shù)據(jù)提取的過程如圖2所示。
注:A類:臨時數(shù)據(jù);B類:直接存儲數(shù)據(jù)。
考慮到拆分之后得到的數(shù)據(jù)比較松散,因此通過IP地址建立不同屬性之間的邏輯關(guān)系,從而聚合形成資產(chǎn)信息。通過“分類拆分、邏輯聚合”的方式,實現(xiàn)從日志信息到資產(chǎn)信息的提取過程。
機器學(xué)習(xí)模塊:機器學(xué)習(xí)模塊首先從數(shù)據(jù)庫中獲取得到相應(yīng)的流信息和端口,包括pkt_toserver(發(fā)送包數(shù)量)、pkt_toclient(接收包數(shù)量)、to_server(發(fā)送字節(jié)大小)、to_client(接收字節(jié)大小)以及flow_bytes(接收發(fā)送字節(jié)大小);接著形成Dataframe格式對數(shù)據(jù)進行預(yù)處理,由于該特征屬性數(shù)量少,因此沒有進行相關(guān)的降維處理;然后利用Scikit_learn的Cluster模塊中的Kmeans對資產(chǎn)進行聚合得到資產(chǎn)類型,最后將資產(chǎn)類型存入數(shù)據(jù)庫中。機器學(xué)習(xí)模塊整個流程如圖3所示。
圖3 機器學(xué)習(xí)模塊流程圖
經(jīng)過對機器學(xué)習(xí)模型的輪廓系數(shù)的計算,整個機器學(xué)習(xí)模型的輪廓系數(shù)為0.88,取得了較好的效果。
存儲模塊由臨時數(shù)據(jù)、直接存儲數(shù)據(jù)、分析結(jié)果數(shù)據(jù)組成。其中,tb_asset_osmsg、tb_asset_mac、tb_record用于臨時存儲獲取的屬性數(shù)據(jù),便于之后的聚合;tb_stats、tb_asset_flow用于保存可以直接存儲的數(shù)據(jù);tb_asset、tb_service、tb_host用于保存聚合之后的資產(chǎn)信息,值得注意的是,tb_asset和tb_service兩表中存在一對多的關(guān)系。表之間的ER關(guān)系如圖4所示。
圖4 數(shù)據(jù)庫ER圖
本系統(tǒng)使用了SpringMVC、Mybatis-Plus、Spring、Thymeleaf、AdminLTE、Drools等技術(shù)來構(gòu)建Web端系統(tǒng),實現(xiàn)對資產(chǎn)的展示。Web端包括4個模塊,分別為導(dǎo)航模塊、詳情模塊、通信關(guān)系模塊和搜索模塊。
為了保證專供瀝青車輛隨到隨裝,崔曉波和運輸車隊的司機師傅們互加微信好友,打開位置共享就能時刻掌握車輛位置信息,精準把握提貨單開具時間。同時,崔曉波還在裝車現(xiàn)場密切關(guān)注每輛罐車的裝車進度,提前與其他罐車師傅協(xié)調(diào),確保專供瀝青運輸車輛隨到隨裝,裝不完就加班裝。
導(dǎo)航模塊使用Morris Charts實現(xiàn)對資產(chǎn)總體流量情況的可視化展示,用戶能夠通過該界面獲取資產(chǎn)數(shù)量、服務(wù)數(shù)、未知設(shè)備數(shù)的統(tǒng)計信息,對工控環(huán)境中的網(wǎng)絡(luò)資產(chǎn)進行全局了解,如圖5所示。
圖5 導(dǎo)航模塊
資產(chǎn)詳情模塊使用Flot Charts實現(xiàn)對單個資產(chǎn)近期流量的展示,用戶能夠通過該界面獲取單個資產(chǎn)面臨的惡意流量的威脅信息,為工控安全的維護提供幫助,如圖6所示。
圖6 資產(chǎn)詳情模塊
通信模塊使用Cytoscape實現(xiàn)對資產(chǎn)通信關(guān)系的展示,通過可視化展示使用戶清楚了解多個資產(chǎn)之間的通信關(guān)系,從而有利于用戶確定與威脅相關(guān)的網(wǎng)絡(luò)資產(chǎn),如圖7所示。
圖7 通信模塊
搜索模塊能夠?qū)χ付ǖ馁Y產(chǎn)進行查詢,并將查詢結(jié)果進行展示,用戶能夠通過輸入查詢條件對主機信息進行查詢,并通過點擊特定主機內(nèi)容框獲取主機詳細信息,包括更新時間、應(yīng)用層服務(wù)等,為工控環(huán)境中的網(wǎng)絡(luò)安全監(jiān)控提供信息基礎(chǔ),如圖8所示。
圖8 搜索模塊
本系統(tǒng)測試環(huán)境基于阿里云應(yīng)用主機,主要配置如下。操作系統(tǒng):Centos7.3。CPU/內(nèi)存:1核/2 GB。硬盤:40 GB。帶寬:1 Mbps。
軟件環(huán)境如下。JDK:OpenJDK 1.8.0。數(shù)據(jù)庫:MySQL5.7.2。緩存中間件:Redis 5.0.2。流量解析工具:Zeek 4.0.2。瀏覽器版本:Firefox Version68。
圖9 系統(tǒng)首頁測試
由于目前系統(tǒng)中并沒有數(shù)據(jù),因此先通過數(shù)據(jù)上傳模塊,對數(shù)據(jù)進行上傳分析,測試系統(tǒng)上傳模塊的功能如圖10所示。
圖10 文件上傳測試
文件通過上傳模塊上傳到服務(wù)器之后,服務(wù)器將會對數(shù)據(jù)根據(jù)配置好的規(guī)則進行解析,如圖11所示。從圖中可以看出,由于192.168.0.106以及192.168.0.100符合工控資產(chǎn)的規(guī)則(位于192.168.0.X),因此在規(guī)則引擎執(zhí)行完之后,isAsset會從“false”被標記為“true”。資產(chǎn)識別的規(guī)則如圖12所示。
圖11 后臺日志部分信息
圖12 資產(chǎn)識別規(guī)則圖
在文件上傳模塊將數(shù)據(jù)上傳之后,后臺會自動對數(shù)據(jù)進行分析識別,得到資產(chǎn)信息。通過訪問首頁能夠查看識別出來的資產(chǎn)匯總信息,如圖13所示。系統(tǒng)一共識別出了9個資產(chǎn)信息,總服務(wù)數(shù)位7 836,未知設(shè)備數(shù)以及惡意設(shè)備數(shù)都為0。
圖13 系統(tǒng)首頁測試
對搜索模塊進行訪問,查看數(shù)據(jù)概覽信息,如圖14所示。資產(chǎn)信息主要是以192.168.0.X網(wǎng)段為主。通過專業(yè)的開源包分析工具Wireshark對test2.pcapng進行分析,可以得出該pcap是以192.168.0.X網(wǎng)段的包,如圖15所示。
圖14 搜索模塊測試
圖15 Wireshark分析
在搜索模塊,選擇任意一個資產(chǎn),進入查看其詳情信息(以192.168.0.109為例),如圖16所示。
圖16 資產(chǎn)詳情信息測試
進一步查看資產(chǎn)通信關(guān)系,如圖17所示。測試數(shù)據(jù)集中的資產(chǎn)主要與192.168.0.1進行通信,原因就是192.168.0.1是一個路由器,所有節(jié)點需要通過路由器與互聯(lián)網(wǎng)的其他主機通信,測試結(jié)果符合樣本實際。
圖17 資產(chǎn)關(guān)系測試
本文就當前工控網(wǎng)絡(luò)安全現(xiàn)狀,提出使用基于規(guī)則引擎的流量分析技術(shù)對工控資產(chǎn)進行高效分析的工控資產(chǎn)分析系統(tǒng)的設(shè)計方案,對網(wǎng)絡(luò)無入侵性且無需人工干預(yù),使用場景較為廣泛。除此之外,通過可視化全景展示資產(chǎn)流量規(guī)律和網(wǎng)絡(luò)通信關(guān)系,進一步提升網(wǎng)絡(luò)可見性,并通過被動式探測來實現(xiàn)對網(wǎng)絡(luò)空間資產(chǎn)的測繪摸底,便于理清網(wǎng)絡(luò)資產(chǎn)邊界,及時發(fā)現(xiàn)隱形資產(chǎn)。