黃思蓓,張 磊
(上海工業自動化儀表研究院有限公司,上海 200233)
工業發展是國民經濟相關產業不斷發展的前提條件和物質基礎,決定著國家整體的科技和經濟水平[1]。目前,我國工業互聯網還處于初級階段,即從工業設備上提取運行數據并進行多維度的數據分析,根據分析結果輔助管理者進行決策[2]。隨著計算機、互聯網等技術的逐漸成熟,用戶數據經過各類數據分析系統聚合分析,形成各類冗雜龐大的報表數據。對其內在關聯進行分析、獲取深度相關的信息、提煉成知識體系,已成為數據后發展時代更高的訴求。知識圖譜通過結合數學和圖形學的方法,利用當下數據可視化手段進行呈現,將數據升華為知識實體及其內在的結構關系,最終以知識圖譜的方式進行可視化展示。該方法使得用戶可以從冗雜繁復的報表數據中抽身出來,只需通過知識圖譜即可揭示數據背后的客觀發展規律。
在人工智能迅速發展的背景下,知識圖譜被廣泛認為是人工智能技術和系統的重要組成部分[3]。近年來,大量不同規模的知識圖譜發布在網絡上,得到了學術界和工業界的廣泛關注。谷歌公司正式提出了知識圖譜的概念[4]。在工業控制系統與物聯網、互聯網呈現深度融合的發展趨勢后,人們需要根據大數據環境下的知識組織原則[5],從新的視角去探索既符合網絡信息資源發展變化又能適應用戶認知需求的知識互聯方法[6],從更深層次揭示人類認知的整體性與關聯性[7]。
工業互聯網安全知識圖譜是一種基于安全數據而構建的圖形知識庫,可涵蓋現有全部工控安全設備的數據。通過提取安全數據中的知識進行實體建模,提取出實體、關系、屬性三種特征。然后通過知識融合,消除差異和歧義,得到基礎知識庫。在基礎知識庫的基礎上,進一步分析、挖掘隱含的內在邏輯關系,橫向推理,從而大大擴展基礎知識庫,挖掘深層次安全知識。
工業互聯網設備品類繁雜、用途多,設定的數據格式差異大。不同廠商所生產的同類設備,雖然數據格式有差異,但數據指標卻大都相同,且這些數據指標蘊含的信息也一致。這些數據信息經過轉換、提煉后,可提取出信息安全知識。針對這個現狀,本文提出一種關于工業互聯網安全知識圖譜的設計和開發流程。這種架構設計便于相關開發和設計人員對工業互聯網安全知識圖譜進行設計和開發。
工業互聯網安全知識圖譜以工控安全設備數據為基礎,在龐大、各異的數據中提取出實體、關系、屬性三種特征,并根據這三種特征構建出網狀結構。由于知識具有網狀特征,因此可用回溯的方式進行深度搜索,通過關鍵字等方式直觀地查看知識形態。本文提出一種從下而上構建知識圖譜的設計方法。此方法包括需求調研、數據分析、架構設計和部署設計四個步驟。每個步驟都著重從實用性出發,最終從基礎數據信息中逐步構建一張基礎的、完整的安全知識圖譜。
在推廣工業互聯網的過程中,其內部工業控制系統與傳統互聯網系統一樣,面臨著安全問題。這使得工業互聯網安全層面的重要性愈發凸顯。工業互聯網采集到的安全數據和網絡數據一樣,具有規模大、差異大和結構松散的特點。結合互聯網大數據的模式,很多大數據挖掘和分析工具應運而生,衍生了對安全知識進行總結和提取的更深層需求。知識圖譜用于描述實體之間的關系,節點代表實體,連線代表關系,可向上、向下層層溯源,非常適合知識的表達和學習。如果能對工業互聯網的安全數據進行信息提取、表示和融合,就能構建一張安全知識圖譜,有助于信息安全研究。
工業互聯網的數據是由工業設備和工業控制系統產生或采集得到的。其中,工業安全數據是工業系統中部署的安全設備在工業網絡中進行監控活動所產生的原始數據和經過分析的數據。工業現場常見的安全設備包括傳統防火墻、入侵偵測防御系統( intrusion detection & prevention system,IDPS)、入侵防御系統(intrusion prvention system,IPS)、入侵檢測系統(intrusion detection system,IDS)、病毒檢測工具、網址入侵防御系統(web application firewall,WAF)和網閘等,其數據格式、傳輸方式各異。從知識層面出發,關注重點應放在可以構建知識點的內容層面上。最基本的內容層面有發生設備和發生事件。發生設備本身視為知識實體。發生事件構建實體之間的關系。由此可構建知識圖譜三元組:實體1—關系—實體2,也就是設備1—安全事件a—設備2,進而刻畫整個工業網絡中所有設備的關系,構成全局知識網絡。
當兩個設備之間發生的安全事件,在其他設備之間也重復發生時,在知識網絡中自然而然地構成了新的知識點。例如,設備1—安全事件a—設備3,即以安全事件a為入口點,可追查到設備2和設備3都是受害者,設備1是攻擊者。如果將設備1~設備3的其他屬性作為知識點,能進一步追溯得到受害者和攻擊者的特征關系,便于觀察到受害者的內在關聯屬性,為后續安全加固提供了知識參考。
如果逐條觀察數據,可分析得到以上關系。而工業互聯網設備繁多,按上述方式構建知識關系能比較容易地構建完整的知識圖譜。因此,在數據處理層面,需要關注實體、屬性和關系三個層面的信息提取。
知識圖譜的架構主要包括自身的邏輯結構和體系架構[8],構建方式主要有自頂向下和自底向上兩種。在工業互聯網中,不同廠商的設備型號、種類不同,數據千差萬別。而設備更新換代極快、現場情況復雜多變,預先定義的實體和關系易于被新出現的實體、關系打破。自頂向下的構建方法不適用于此場景。而自底向上的構建方法更加靈活,更適用于工業互聯網場景。
2.3.1 邏輯結構設計。
知識圖譜的基礎數據單元為三元組,即實體—關系—實體。每個三元組均構成一條知識語義,即元信息[9],而實體和關系皆為基本元素。圖1為實體—關系圖。圖1中,包含的兩條知識語義,由三個實體和兩個關系組成。

圖1 實體—關系圖
工業互聯網安全數據一般是由廠商設備提供的半機構化、結構化數據。使用關鍵詞提取技術,在原始數據中找到實體和關系的關鍵詞。現有的各種提取技術已經很完善,因此只需要關注可作為實體關鍵詞的數據,其必須是完整的、準確的、普遍的、互通的。由于語言的二義性和多義性,還要對同義詞、近義詞互通處理,使其在知識圖譜中指向同一個實體。
在原始數據中抽取的關鍵詞既可作為實體,又可作為關系。一個關鍵詞在知識圖譜中的角色取決于所需要構建的知識是動態的還是靜態的。靜態知識代表客觀世界中固有的、真實存在的現象。動態知識則用于描繪主體作用于客體這一事實過程。同一個客觀事實既可以構建為靜態知識,又可以構建為動態知識,還可以構建為多種知識關系。例如,如果構建靜態知識“太陽是圓形的”,在知識圖譜中則標志為太陽—形狀—圓形或太陽—圓形—圓形等。
上述例子中,自行補全了代表關系的關鍵詞“形狀”。原始數據中沒有這個關鍵詞,需要在提煉后添加。由此可見,關系并不一定是原始數據中出現的關鍵詞。對于自行補全到知識圖譜中的關系,同樣要求其是準確的、普遍的。例如在月亮—形狀—圓形這個知識語義中,“形狀”也可用于表達關系。工業互聯網安全數據中,往往包含大量的動態關系,動詞更適用于構建動態知識中的關系,例如設備1—攻擊—設備2。按照這樣的邏輯結構,可自動提取出基礎數據中的知識語義三元組。簡單知識圖譜示例如圖2所示。

圖2 簡單知識圖譜示例
2.3.2 體系結構設計
組成工業互聯網安全知識圖譜的模塊包括數據采集、知識提取、知識融合和知識圖譜。體系結構如圖3所示。

圖3 體系結構圖
設計完成后,需要部署和測試,以驗證合理性,并進行調試。其目標是取得最優性能和較好的用戶體驗。知識圖譜最終需要落實到文件存儲。根據其數據結構特點,應優先選擇專業的圖數據庫,可根據存儲數據量大小、性能要求進行具體選擇。以開源圖數據庫Neo4j[10]為例,其存儲文件分為四大類:節點、關系、屬性、標簽。其中,節點對應知識圖譜中的知識實體,關系也是一一對應的。
部署后主要進行功能測試和性能測試。功能測試重點關注數據入庫速率、查詢準確性、數據完整性和準確性等。性能測試主要是查詢效率,在知識圖譜復雜且數據量很大的情況下,需要進行數據分析和后續的聚類分析,對搜索和分析性能有一定要求。通過測試和調優,知識圖譜的使用情況可達到設計要求。
本文以某集團單位的安全防火墻數據為依托,采集syslog日志中的攻擊數據作為基礎數據,并創建該單位的安全知識圖譜。通過一段時間的采集,其基礎數據達到千萬級,數據內容形式為結構化。在數據樣例中,通過知識提取方法,將結構化的數據分隔為不同知識實體,并選定所有動態性語義的實體轉化為關系,例如“入侵”“攻擊”等,分析所構建知識語義的合理性。
根據選定的知識實體關系的構建方法,由選定的知識邏輯批量轉化基礎數據,并用開源圖數據庫Neo4j存儲,最終構建出安全知識圖譜。對安全知識圖譜進行準確性測試,觀察到其能如實反映現有安全知識,可在合理范圍內進行安全事件的預測和推理。
現階段工控系統、物聯網、互聯網深度融合[11],對信息安全的要求有所提高,將各類安全產品捕獲的數據信息轉化為安全知識的需求與日俱增。知識圖譜可以有效地轉化數據,并提煉為安全知識,進行大規模知識應用,將客觀世界以實體和關系的形式進行表現,構成安全知識庫。本文提出了工業互聯網安全知識圖譜的設計方法,并通過設計實例進行了相關的論述,展開需求調研、數據分析、架構設計和部署設計,將處理后的數據存入圖數據庫,最終完成整個安全知識圖譜的架構設計。此設計過程在一定程度上能夠為架構設計人員提供設計思路和參考方案,用于工業互聯網安全知識圖譜設計。