★ 陳淑芳,田由甲,聶佳(上海電器科學研究所(集團)有限公司,上海 200063)
1引言
隨著工業互聯網的發展,工業網絡的內外網互通將不可避免地成為一個大趨勢。在此背景下,工業網絡通信的安全問題在近幾年益發突出。
現階段,主流的基于云平臺的物聯網架構主要分為設備層、網絡層、平臺層和應用層。其中,設備層包括傳感器、芯片、通訊組模、智能設備等,主要負責數據的采集,是整個物聯網云服務平臺的基礎。設備層所采集的數據的可信性直接影響到網絡層數據的安全傳輸、平臺層大數據的處理和分析以及應用層的穩定性和可靠性。而終端設備的種類多、數量大、工作環境復雜,因此很容易受到攻擊。不可信的終端設備接入至物聯網,將容易導致數據的錯誤采集、丟失、竊取,甚至威脅到整個物聯網環境[1]。一旦被惡意設備節點接入,就會產生各種方面的安全問題,比如注入攻擊、隱私泄露、分布式拒絕服務攻擊、越權訪問操作等[2]。對于數據的安全存儲、敏感數據處理、隱私保護等相關安全問題也隨之越來越嚴峻。
因此,本文將針對基于工業可信接入的邊緣側可信網關進行研究,有效保障邊緣側的設備安全,進一步全方面提高邊緣計算防護等各類安全問題,對邊緣計算和物聯網的發展至關重要。
2系統架構
工業可信接入系統整體采用“中心服務器+上位機軟件+網關”的分布式架構,如圖1所示。
圖1 可信接入系統架構
中心服務器采用類微服務架構,整合異常流量監控模塊、惡意樣本文件還原與分析模塊、工控協議識別模塊、工控設備識別模塊等多種可信功能模塊,實現安全防護功能,并對外開放調用接口API;中心服務器僅與可信網關進行數據交互,不影響局域網中其他設備的正常通信。
上位機軟件為用戶與可信網關建立Socket通信,控制可信網關從中心服務器中下載網絡安全防護等級等配置信息,同時進行分析結果的顯示。網關依據用戶選配的安全等級,按需調用中心服務器提供的可信安全模塊API接口,實現對所接入局域網的安全防護等級提升。局域網內設備及外網路由器通過端口鏡像的方式將所有網絡流量轉發至可信網關中。可信網關根據下載得到的安全等級信息,以Restful API形式向服務器請求對應的安全模塊組件接口,完成對企業內外網絡流量監控、分析;通過工控設備安全識別技術等一系列安全防護措施,感知到威脅時,主動切斷外網及局域網中感染設備的網絡連接,并發出告警信息,實現企業內網信息的安全隔離。可信網關的系統流圖如圖2所示。
圖2可信網關的系統流圖
3方案設計
用戶通過上位機軟件,自定義選擇需要防護的安全防護種類和等級,下載到可信網關后對可信網關進行安全等級配置,通過此安全等級,控制可信網關從引擎服務器中加載對應的安全模塊;同時,可信網關通過工業級交換機以端口鏡像方式獲取待保護網絡的網絡流量,并將網絡流量轉發至網關內的安全模塊中進行流量分析,以實現對待保護網絡的安全防護,且不會對原工業系統的正常工作產生任何擾動,因此,可信網關的設計包括三部分,一是硬件設計,二是軟件設計,三是針對可信網關的上位機設計。
3.1硬件設計
可信網關將采用高性能邊緣計算網關硬件平臺、飛凌FCU2303+1046A嵌入式控制單元實現。該硬件平臺基于NXP公司的LS1046A四核處理器設計,ARM Cortex-A72架構,主頻最高1.8GHz,內存2GB DDR4 RAM,數據吞吐量最高可達2.1GT/s。搭載8路千兆網,10M/100M/1000M自適應。可被應用于邊緣計算、能源物聯網、智慧城市、工業自動化、視頻監控等領域。
3.2軟件設計
可信網關軟件架構如圖3所示。
圖3可信網關軟件架構圖
可信網關內置系統常駐上位機響應進程(采用UDP協議與上位機通信),可實時響應上位機下發的安全等級配置信息,并將其緩存至本地MySQL數據庫中。之后,根據用戶定義的安全等級,從中心服務器處下載調用對應的安全模塊組件(采用RestfulAPI實現)。安全模塊組件包括異常流量分析、APT家族統計、惡意腳本攔截&還原、工控設備指紋庫、工控設備識別、工控協議識別等。
與此同時,可信網關以端口鏡像方式收集局域網內交換機提供的全網絡流量數據,并將這些流量數據同步喂給相關的安全模塊組件以獲取分析結果,并將產生的分析結果實時地反饋至上位機軟件予以展示。
可信網關軟件功能圖如圖4所示。
圖4 可信網關軟件功能圖
可信網關軟件功能具體包括:(1)上位機配置響應:監聽本地UDP端口,獲取上位機發送的UDP數據包,并進行JSON解包。(2)MySQL配置數據庫:將上位機配置響應邏輯解析得到的數據字段存儲到對應的MySQL數據表中。(3)Docker容器管理:可信網關本地的安全模塊皆以容器化方式運行,可信網關根據用戶配置的安全等級,從引擎服務器中拉取對應的安全模塊鏡像文件,并在網關本地以Docker方式部署、執行。(4)鏡像端口流量轉發:負責攔截連接工業交換機的鏡像端口上的所有網絡流量并將之轉發至當前掛載的Docker服務中。(5)安全模塊執行結果轉發:負責將Docker服務運行的結果以JSON報文形式傳遞給上位機軟件,由上位機軟件進行解析后,給ECharts圖標控件進行圖形化顯示。(6)磁盤清理:定期清理本地的流量緩存數據、惡意文件腳本等。(7)守護進程:確保可信網關本地常駐進程的正常運行。
3.3上位機設計
上位機軟件中,允許用戶自由選配可信網關安全等級,下載并調用定制化的安全模塊組件API實現對內網流量的實時監控;支持將網絡流量分析結果在UI界面進行實時展示。
上位機軟件采用工具箱形式封裝引擎服務器中提供的安全模塊組件。所有安全模塊組件均以儀表盤形式被羅列在界面左側的工具箱中,用戶可通過自由拖拽的方式將儀表盤拖放至界面右側畫布中,實現軟件定義配置過程。儀表盤部署完畢后,點擊配置下發按鈕;上位機將用戶配置的安全等級信息下發至可信網關中。可信網關根據安全等級配置從引擎服務器處下載對應的安全模塊組件并調用模塊接口實現安全防護,同時點亮上位機軟件畫布中的儀表盤,實時顯示安全模塊組件的流量監控數據。
UI界面主要分為工具箱和畫布兩個區域。工具箱中以儀表盤形式封裝了所有安全模塊組件;畫布中呈現用戶部署的儀表盤陣列,并實時展示各儀表盤的網絡流量分析結果。UI界面操作原理如圖5所示。
圖5軟件界面操作原理示意圖
UI界面儀表盤采用PyQT與ECharts圖表形式顯示可信模塊的網絡流量分析結果。根據分析內容、分析結果的數據結構不同,可選用包括柱狀圖、曲線圖、餅圖等多種類型的圖表進行圖形化表現。
4安全識別技術研究
中心服務器通過加載一些安全組件,實現系統安全防護功能。其中,工控設備識別技術對可信網關來說至關重要,因此,針對可信功能模塊中的工控設備識別模塊進行研究,主要從以下幾個方面對工控設備進行識別:
(1)通過標準工控協議對工控設備進行識別
對于這一類工控設備所對應的工控協議,包括DNP3、Modbus、BACnet等協議,它們都有著一些相對應的請求獲取設備的廠商和模塊的方式,通過這些請求功能,就能比較容易獲取到廠商和模塊信息,從而能夠比較準確地識別出一個工控設備并同時得到這些工控設備的一些相關的設備信息。比如Modbus協議通過默認端口502,功能碼43可以獲取設備廠商和產品模塊信息。
(2)通過私有工控協議對工控設備進行識別
私有的工控協議通常是為了實現對使用這些工控協議的工控設備進行特定的數據傳輸或者是遠程的控制。因此,如果能夠找到使用這些工控協議的疑似工控設備,通過相應的交互方式、相應的內容,就能夠比較精確地判斷該疑似設備是否是使用該工控協議的工控設備,而同時,對于使用了這些工控協議的工控設備,也能夠通過其相應內容來獲取到這些工控設備的一些相關的設備信息。比如SiemensS7協議通過默認端口102,讀SZL可以獲取PLC的模塊信息、版本、串口等信息。
(3)通過傳統的服務特征對工控設備進行識別
對于某些廠商的一些工控設備而言,通常會開放一些類似于80端口HTTP、21端口FTP、161端口SNMP等傳統的服務,從而達到對工控設備的運行狀態、運行數據的監管和運行方式的控制,這些工控協議在采用這些傳統的服務時都會有相應的服務特征標識,通過這些特征標識就可以用于判斷疑似設備是否是一個工控設備。比如Moxa的Nport設備,通過HTTP服務的80端口,根據特征Server:MoxaHttp對設備進行識別。
通過以上原理,可以知道對于一個工控設備的獲取,主要是由特定的工控協議的私有特性實現的。而對于私有特性也有著對端口的要求,因此,工控設備識別設備分為以下三步:
(1)獲取IP和端口:判別IP和端口是否開放。系統需要能夠在較快的時間內處理一個比較大的IP地址段,同時還要確保一定的準確率,而且輸出是一個IP和端口的二元組,如果一個IP對應多個端口,對于這個IP,存在著多個二元組。
(2)對工控設備進行掃描和識別:通過TCP的無狀態極速掃描,來識別出某個IP是否是一個工控設備。當探測到了一個工控設備時,通過其返回的信息可以提取出一些硬件(例如廠商名、設備類型、設備型號等)和軟件(例如操作系統型號、操作系統版本等)等信息,而在此系統需要能夠提取出這些信息,進一步識別出信息,并將識別和處理之后的信息存儲在數據庫之中。
(3)工控設備的信息擴充:當系統通過掃描IP以及相應的識別程序獲取到了一個暴露在互聯網上的工控
設備之后,能夠獲取到的是它的軟件和硬件信息。但是,其它的一些信息需要進一步補全,例如該工控設備所屬的國家、城市等信息無法直接從掃描過程中得到。但是,這些信息在展示的過程中卻是很有必要的,比如獲取到國家信息,才能進行后一步的統計;獲取到地理信息,才能將該工控設備標注在地圖上。因此此步驟需要的是從數據庫中讀取已確認是工控設備的IP,通過程序從中獲取到更多相關的信息,并更新數據庫從而能夠更好地給前端返回信息。
5結語
為了保障邊緣側終端設備的可信接入,提出了一種基于可信接入的可信網關研究,通過對系統架構和功能的研究,從可信網關的硬件、軟件、配置、關鍵技術等方面入手進行闡述,通過此設計實現在工廠內外網之間的通信設備和通信協議的識別,實現對工廠外網的通信的未知威脅監控,達到工廠內網信息安全,滿足邊緣控制器等工業設備的工業網絡通信安全防護需求,保障工業設備可信接入安全,深度保護工控設備安全。同時,無擾實現可信的工業通信系統,不需要改變原有系統功能和網絡結構,不影響原有系統運行和信息傳輸性能。
★基金項目:上海市2020年度“科技創新行動計劃”高新技術領域項目(項目編號:20511106001)。
作者簡介:
陳淑芳(1984-),女,江西宜春人,工程師,碩士,現就職于上海電器科學研究所(集團)有限公司,研究方向為工業自動化及嵌入式應用。
田由甲(1988-),男,上海人,工程師,學士,現就職于上海電器科學研究所(集團)有限公司,研究方向為工業自動化及嵌入式應用。
聶佳(1981-),女,湖北武漢人,高級工程師,碩士,現就職于上海電器科學研究所(集團)有限公司,主要從事工業控制及通信方向的技術研究工作。
參考文獻:
[1]蔣華,閆一凡,鞠磊.可信服務鏈安全架構研究[J].計算機應用研究,2018,25(4):1159-1164.
[2]謝輝.邊緣計算環境下可信接入安全技術研究與實現[M].四川:電子科技大學.2021.
[3]郭煜.可信云體系結構與關鍵技術研究[D].北京:北京交通大學.2017.
[4]姜迪清,張麗娜.基于云計算和物聯網的網絡大數據技術研究[J].計算機測量與控制,2017,25(11):183-185.
[5]寧振宇,張鋒巍,施巍松.基于邊緣計算的可信執行環境研究[J].計算機研究與發展,2019,56(7):1441-1453.
[6]林兆鵬,鄒起辰.可信設備接入網絡認證協議設計及安全分析[J].計算機仿真,2018,35(11):254-258.
摘自《自動化博覽》2022年8月刊