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