知識圖譜及其在安全領域的應用
人工智能技術與咨詢?
本文作者作者:Toky,由 Seebug Paper 發布
1. 知識圖譜是什么?
1.1 知識(Knowledge)是什么?
知識圖譜(Knowledge Graph)正如其名,其本質是為了表示知識[1]。那么知識是該如何定義呢?我們來看一下維基百科中的定義:
知識是對某個主題確信的認識,并且這些認識擁有潛在的能力為特定目的而使用。意指透過經驗或聯想,而能夠熟悉進而了解某件事情;這種事實或狀態就稱為知識,其包括認識或了解某種科學、藝術或技巧。此外,亦指透過研究、調查、觀察或經驗而獲得的一整套知識或一系列資訊。
可以從這塊相對抽象的定義里得到一個主觀的感受,那就是知識是一種認知,其既是一種事實,也是一種狀態。比如,“我會加減乘除”是一種事實也是在表述我通過學習和實踐,使得現在已經掌握這項技能的一種狀態。并且這種認知是相對復雜的,有從時間變化的縱向維度,也有涉及到關系、概念、實踐等等橫向維度的變化。但不變的是,知識是有一個主題的,以及由主題衍生出來的各個“屬性”組成,類似于樹狀結構,這一棵樹,就是一條知識。
如果用官方一點的定義呢,每條知識是表示為一個SPO三元組,即Subject(主體)——Predicate(謂語)——>Object(客體)[1]。
那個回到“表示知識”這個關鍵點,我們創造出知識圖譜這個概念,就是為了幫助我們更快、更好地用來表示出多條獨立的“知識”。更進一步說,知識圖譜就是用來組織和描述SPO三元組的。
那么如何描述呢?請看下一部分
1.2 如何描述三元組?
前面我們介紹了知識的概念和SPO三元組,我們已經知道了,知識圖譜是一條條知識組成的,一條條知識又是三元關系(Subject——Predicate——>Object)組成的,那么問題就來了,如何描述這個三元關系呢?
使用RDF來表示
在知識圖譜中,我們用RDF形式化地表示這種三元關系。[1] 從定義上來看,RDF(Resource Description Framework),即資源描述框架,是W3C制定的,用于描述實體/資源的標準數據模型。[1] 為什么我們描述知識要用“Web”的形式去描述呢?因為網絡、Web中的各項關系,其實和知識的抽象概念很像,這是一種即像樹,又像網的東西。
有唯一確定主體、有連接屬性的謂語、有明確屬性值。
那么RDF框架下,對三元組是如何具體定義的呢?我們先來了解一下RDF圖中定義的三種類型:International Resource Identifiers(IRIs),blank nodes 和 literals[1]。RDF通過定義出來的這三種屬性對SPO三元組進行約束:
Subject可以是IRI或blank node。
Predicate是IRI。
Object三種類型都可以。
可以看到,主體必須是能唯一表示的,或者干脆就是匿名資源(Blank Node,這個概念可以向外引申,在這里可以先忽略)。唯一表示就會用到IRI,相當于是URL和URI的推廣[1],用于唯一定義一個實體或是資源。(說白了,就是我們要通過一個確定的方式來找到唯一的它)
謂語也是要唯一表示的,就像你都不知道要和另一個人建立什么關系,你又怎么能跑過去說我們在一起吧。這個“在一起的兩個人“這個關系描述得就太模糊,不能唯一確定。舉個例子,兩個男的可以是朋友、可以是仇人也可以是情侶。
那我們整理一下RDF定義三種類型的用處:
IRI —— 在整個網絡或者圖中唯一定義了一個實體/資源
blank node —— 沒有IRI和literal的資源,或者說匿名資源[1],暫不詳細分析
literal —— 字面量,可以看作是帶有數據類型的純文本
回到剛剛那個例子,架設有兩個男人一個為A,一個為B,我們的主體Subject是男人A,我們給他一個IRI:www.man-a/relation
;我們的謂語是表示與主體是朋友的關系,我們給他一個帶有prefix的IRI:kg:firiends
;然后我們的客體就是男人B的名字,我們給他一個字面量:man-b
。
那么這個描述兩個男人間朋友關系的這個知識就可以表述為:www.man-a/relation
?——kg:firiends
——man-b
。
是不是一下子就很清楚了。這就是RDF的作用,使用標準數據模型的方式來進行資源描述。
使用屬性圖來表示
介紹完RDF來表示關系,是不是感覺略有一點復雜,確實,這種方式比較嚴謹,更貼近知識圖譜原始的定義。但實際在工業界應用過程中,還是會有相當多的場景會選擇用屬性圖(Property Graph)的形式來描述“關系”。那么下面我們來介紹一下屬性圖的方式。
屬性圖(Property Graph)的邏輯其實特別好理解,就是主體會和很多客體有關系,比如主體是一個普通人A的話,他會有手機號、會有性別、會有家人,這些就是他的客體。而他和他的手機號之間,就是“擁有”的關系、他和他的父親,就是父子關系,這種關系就是主體和客體的關系。以上三種,主體、關系、客體,都可以有相應的屬性。例如普通人A,屬性可以是他的名字(也可以成為一種主客體關系);他和他的手機號之間是擁有的關系,“擁有”關系可以有屬性“何時擁有”、”如何擁有“等;手機號也可以有屬性,比如歸屬的運營商名字等等。
這種同樣描述主客體關系,但支持實體或關系擁有屬性的方式,就稱為屬性圖表示。
1.3 從知識到知識圖譜
我們從知識的定義講到了如何表示使用RDF定義單條知識,那么知識圖譜的具體形象就呼之欲出了,知識圖譜就是有多條知識組成的樹狀或網狀結構,總體來說是圖的結構。
主體必須唯一確定,謂語需要清楚描述,客體可以是另一條“子知識“也可以是字面量(也就是帶數據類型的純文本)。
以下是一個使用RDF描述的知識圖譜,可以看到其通過RDF標準來表示出了單條的知識以及總體的關系:
圖:羅納爾多知識圖譜[1]
以下是一個由屬性圖來表示的知識圖譜,注意其支持實體或關系擁有屬性,而RDF形式的就不支持:
圖:一個簡單的屬性圖[2]
其實更嚴謹地說,這兩種不同的描述關系的方式,其實也是代表了兩種知識圖譜的存儲方式:
基于RDF存儲的形式
基于圖數據庫的存儲
以下是兩者之間的比較:
圖:RDF和圖數據庫方式的比較[2]
1.4 知識圖譜的作用
知識圖譜提供了從“關系”的角度去分析問題的能力。知識圖譜這個概念最早由Google提出,主要是用來優化現有的搜索引擎。不同于基于關鍵詞搜索的傳統搜索引擎,知識圖譜可用來更好地查詢復雜的關聯信息,從語義層面理解用戶意圖,改進搜索質量。[2]
從這個概念上來說,知識圖譜主要解決的問題是一個復雜關聯信息的查詢和表示。那么我們來看看它的應用需求應該是如何的,換句話說,就是什么樣的情況下,我們可以考慮采用知識圖譜:
圖:對采用知識圖譜的需求分析
2. 在安全領域的應用
2.1 安全知識圖譜
安全知識圖譜(Cyber Security Knowledge Graph)是知識圖譜在網絡安全領域的實際應用,包括基于本體論構建的安全知識本體架構,以及通過威脅建模等方式對多源異構的網絡安全領域信息( Heterogeneous Cyber Security Information)進行加工、處理、整合,轉化成為的結構化的智慧安全領域知識庫。[3]
上面說到了知識圖譜的作用,我們再回顧一下,知識圖譜可以解決復雜關系信息的查詢和表示。因此,在安全領域,我們在進行應用的時候,同樣要考慮以下幾點:
是否有強烈可視化需求?
是否有較高的語義分析需求?
是否本事擁有海量的多源異構數據,且存在一定的信息孤島問題?
是否有對關系進行深入搜索、挖掘、分析的需求?
是否有資源和能力去搭建系統,并且能進行運營?
其實思考這幾個問題的時候,我們的需求和對應的應用場景,有經驗的同學應該就比較清晰了。知識圖譜需要解決的問題,它的應用,主要是:
從海量數據中挖掘、表示威脅的實體相關信息
提高威脅分析的效率,從關系出發去挖掘事件(Incident)、表示事件
對于基于語義分析的威脅發現具有相對的優勢
因此,我們也可以用一句話來說明安全知識圖譜的作用:從威脅實體和實體關系的視角出發,主要針對多源異構數據,利用語義分析的特點,識別威脅以及對威脅進行評估。
以下是一個用安全知識圖譜表示的永恒之藍攻擊防御場景:
圖:利用知識圖譜構建攻擊場景[4]
2.2 從需求到應用
2.2.1 分析需求
偏向于事件分析
知識圖譜的關鍵點在于對“關系”的描述。對于事件來說,我們需要一個更高緯度的知識表達,主要來說,可以主要從這幾個方面出發:威脅主體、攻擊方法、資產、隱患和防御手段[4]。
使用基于屬性圖的知識圖譜構建,我們需要定義好主客體的關系以及三者各自的屬性;使用基于RDF的知識圖譜構建,我們需要更加關注于嚴格的推理關系、將屬性的表達用確定的關系謂語代替。
偏向于情報分析
對于情報分析來說,我們很多時候不是要關注自己怎么樣,而是要關注對手怎么樣,所以知識圖譜在安全情報分析中的應用,主要的關注于:
對手是誰(Who):包括威脅行為體,贊助商和雇主
對手使用什么(What):包括他們的能力和基礎設施
對手的行動時(When):確定行動的時間表和規律
對手的目的(Why):包括他們的動機和意圖
對手的目標行業和地理區域(Where):詳細說明行業,垂直行業和地理區域
對手如何運作(How):關注于他們的行為和規律
以上的5W1H[5]可以作為安全情報知識圖譜構建時的參考,例如使用基于屬性圖的知識圖譜構建,我們可以這樣去構建:
威脅行為體作為Subject,贊助商和雇主可以作為其屬性(Property)
基礎設施作為威脅行為體的Object,用“自身擁有”或是”非法占用“來描述他們的關系(Predicate)
...
偏向于特定威脅分析
在這邊我對它的定義主要用于分析某種特定惡意行為。這種特定的惡意行為需要有較明確,且相對唯一的攻擊鏈。例如,我們可以把對惡意釣魚郵件的攻擊視為一種特定威脅,我們對惡意釣魚郵件的分析,從規則、模型到專家經驗轉換等等,都是在對其進行特定威脅的分析。
從另一方面來說,一種特定的技戰術組合也可以稱為一種特定威脅,因為它的殺傷鏈也相對固定,對于這部分的知識圖譜構建,可以幫助我們從整體角度觀察威脅。
2.2.2 展示需求
也許部分同學一看到展示需求,心里就會冒出來“大屏”、“給領導看的”、“沒啥用”這些想法,雖然這確實也是一種現象,但我們也應該好好考慮一下這部分。
因為做安全的最終目的,還是說為了提高總體的安全能力,這個安全能力小到個人水平,大到國家安全。我們實際點講,怎么才能提高企業的安全呢?企業安全由于其復雜性,不是某一方向上的技術很酷就能起到提高整日安全能力的。
企業安全的關鍵還是在于從檢測——分析——響應——優化的閉環。這個閉環是關鍵,而這個閉環中,所要參與到的各個部門、乃至同部門的各個方向、同個方向上的各個人員,他們的先驗知識都是不一樣的。我們使用知識圖譜進行展示的本意,是為了結構化地表達知識。從而降低閉環中各個環節的成本。這個成本包含很多方面,有時連溝通成本也是。
3. 總結
本文主要是學習和整理了知識圖譜的相關概念,以及對其在安全領域的應用做了一個簡單的分析。這塊仍是處于一個探索階段,還是有許多新的思路和落地方案需要補充。歡迎各位師傅批評指正。
?
關注微信公眾號:人工智能技術與咨詢。了解更多咨詢!
審核編輯:符乾江
評論
查看更多