本發明涉及網絡信息領域,具體涉及網絡安全技術。
背景技術:
企業網絡是企業中重要的基礎性IT設施,對于企業業務正常運轉有著至關重要的作用。同時由于網絡中信息價值較高,也成為成為了網絡攻擊、入侵的主要目標。企業網絡主機、服務組件多,配置復雜,系統存在的漏洞易成為攻擊的目標。而且攻擊者也逐漸傾向于利用通過攻擊獲取的主機,進一步實施多步驟、多主機的入侵攻擊。
針對該類別的攻擊,目前有攻擊圖、本體建模等方式來進行網絡安全評估。攻擊圖技術主要思想是在收集了網絡配置以及存在漏洞信息以后,根據安全攻擊相關知識,發現單步攻擊,并通過諸如prolog等程序語言推導出可能的多步驟攻擊路線圖。本體建模方式目前主要應用于構建攻擊、漏洞等相關知識庫。
現有方案在實際的應用過程中,攻擊圖的生成基本由網絡安全管理者完成,由于缺乏一種機制復用安全領域專家經驗,故對網絡安全管理者經驗要求較高。
技術實現要素:
針對現有網絡安全評估技術所存在的問題,本發明的目的在于提供一種可操作性強的網絡風險評估方法,基于該風險評估方法使得網絡安全管理者僅需關注收集本企業網絡信息。
為來達到上述目的,本發明采用如下的方案:
基于本體建模的網絡風險評估方法,所述風險評估方法基于本體模型來構造攻擊圖進行安全評測。
優選的,所述風險評估方法構建表述網絡安全知識和攻擊行為知識的本體模型,并定制推理攻擊行為的SWRL規則;
利用本體模型和SWRL規則來模擬推導出可能存在的攻擊行為,并據此構造網絡攻擊圖進行安全評測。
優選的,所述風險評估方法包括如下步驟:
(1)根據網絡安全知識和攻擊行為知識構造相應的基本安全本體,并在基本安全本體中定義SWRL規則以推理攻擊行為;
(2)收集目標網絡信息;
(3)根據基本安全本體創建針對目標網絡的實例化安全本體;
(4)基于實例化安全本體生成攻擊圖。
優選的,所述步驟(1)中在構造基本安全本體時,確定基本安全本體中的主要概念和關系,并基于網絡安全知識和攻擊行為知識為漏洞和攻擊的概念創建諸多攻擊個體,并為每個攻擊個體創建一個攻擊關系;同時針對攻擊行為,定義SWRL規則表明攻擊的前提和后果及攻擊者可獲取的資源。
優選的,所述SWRL規則包括表述推理出攻擊關系的SWRL規則和表述攻擊之后能夠獲取被攻擊對象權限和關系的SWRL規則。
優選的,所述步驟(2)中收集目標網絡信息包括目標網絡的網絡拓撲信息,機器列表,服務信息,組件列表,以及據已有的信息收集可能存在的漏洞信息。
優選的,所述步驟(3)中根據基本安全本體的主要概念,為收集的目標網絡信息創建對應的實例,并設定通過預定的基本對象屬性來設定各個實例間的關系,最終形成一個針對目標網絡的實例化安全本體。
優選的,所述步驟(3)中針對新的漏洞信息可以定義新的安全本體,以及新的SWRL推理規則。
優選的,所述步驟(4)中基于實例化安全本體模擬攻擊者逐步攻擊滲透到目標網絡中,并根據模擬攻擊結果逐步構造攻擊圖。
優選的,所述步驟(4)中生成攻擊圖的過程如下:
(1)收集攻擊者的屬性集,并將該屬性集加入初始攻擊圖;
(2)通過屬性集收集受影響的設備集合;
(3)抽取與屬性集、設備集合有關的安全本體數據,包括SWRL規則,導入推理引擎,進行推理;
(4)獲取推理得到的攻擊關系;
(5)根據攻擊關系對應SWRL規則,分別抽取出前提集合和后續結果集合;
(6)在已有的攻擊圖,查找能滿足步驟(5)中前提集合的頂點,并創建一條邊表示推導出的攻擊關系,創建攻擊邊的后續頂點;
(7)對每一個推理出來的攻擊關系執行(5)-(6)的操作;
(8)更新攻擊者屬性集使其包括所有推理出來的屬性;
(9)通過屬性集收集受影響的設備集合;
(10)如設備集合不為空,轉到第(3)步;
(11)形成最終的攻擊圖。
本發明提供的方案用本體模型作為一種共同語言來表述攻擊行為的知識,并提供給網絡安全管理員用于本企業的安全評測;由此使得網絡安全管理者僅需關注收集本企業網絡信息,并根據本體模型推理結果構造攻擊圖,極大的提高網絡風險評估的可操作性,有效解決目前方案所存在的缺陷。
附圖說明
以下結合附圖和具體實施方式來進一步說明本發明。
圖1為本發明實例中基于本體模型來構造攻擊圖的框架示意圖;
圖2為本發明實例中攻擊圖示意圖。
具體實施方式
為了使本發明實現的技術手段、創作特征、達成目的與功效易于明白了解,下面結合具體圖示,進一步闡述本發明。
本實例中利用本體模型來表述網絡安全知識和攻擊行為知識,并定制SWRL規則語言來描述攻擊行為的前提、影響。由此可借助本體模型的推理功能,推導出單步攻擊以及攻擊者在攻擊后可獲取的資源和權限。
據此,進一步結合本體模型的特點(如推導模擬攻擊行為)來構造網絡攻擊圖進行安全評測。
由此可見,本方案中用本體模型作為一種共同語言來表述攻擊行為的知識,并提供給網絡安全管理員用于本企業的安全評測,使得網絡安全管理者僅需關注收集本企業網絡信息,并根據本體模型推理結果構造攻擊圖。
以下通過一具體應用實例來說明本方案的實現過程。
參見圖1,其所示為基于上述原理來實現基于本體模型來構造攻擊圖的框架示意圖。由圖可知,基于本體模型來構造攻擊圖的過程如下:
(一)構造基本安全本體
該步驟可由安全領域專家根據知識庫(網絡安全知識庫和攻擊行為知識庫)構造基本安全本體,以表述網絡安全知識和攻擊行為知識。
在構造基本安全本體時,包含了本體中的主要概念(Class)、關系(Property),并基于領域知識庫為漏洞和攻擊的概念創建諸多個體(Individual),并為每個攻擊個體創建一個攻擊關系。
這里的概念(Class)即為“類”。作為舉例,“攻擊”可定義為一個類,“釣魚攻擊”可定義為“攻擊”的子類;具體采用某個漏洞的具體攻擊方案,可定義為某個攻擊類的一個實例(也稱為個體);再者例如,“設備”是一個類,“服務器”是其子類,ip為192.168.43.30的FTP服務器是一個個體。
這里的關系(Property)是個體間的二元關系。作為舉例,“利用(攻擊個體,漏洞個體)”,利用就是一個關系定義,攻擊個體會利用某個漏洞個體。
另外還需針對攻擊行為,定義SWRL規則或SWRL推導規則,以表明攻擊的前提和后果及攻擊者可獲取的資源。
據此,構造基本安全本體的基本過程如下:
(1)定義基本的概念(Classes)和基本對象屬性(Object properties)。
具體定義Device、Component、Vulnerability、Attack四個類,并按需要定義其子類;
這里的基本對象屬性(Object properties)是一個二元關系。下面定義基本常用關系:
A)Has關系,has(Dev,Cmpt),has(Cmpt,Vul),表示設備擁有組件,組件中存在漏洞;
B)Exploit關系,exploit(Attack,Vul),表示攻擊會利用漏洞
C)訪問及權限等關系,例如:hasAccess(Dev,Cmpt)表示設備可以訪問(其他設備上的)某個組件提供的服務,例如web服務;hasPrivilegeRoot(Dev,Dev)表示設備能具有另一設備的root權限;hasShellRemote(Dev,Dev)表示設備能夠通過遠程shell訪問另一設備。對于訪問及權限等關系并不限于此,除了上述例子,還可根據實際需要,自定義其他關系。
(2)添加漏洞和攻擊實例,并設定關系(即利用關系exploit)。
該步驟中針對每一個漏洞,定義實例(即漏洞實例),并定義相應的攻擊實例,該攻擊實例可利用該漏洞。同時設定這兩個實例的exploit關系。
(3)建立SWRL規則,用于推理攻擊行為。
該步驟,針對步驟(2)中定義的攻擊實例分別定義SWRL推理規則。定義的SWRL rule有兩種類型:
第一種類型是表達如何推理出一個攻擊關系,形式為前提→攻擊關系&后果。
舉例說明:
Device(?a)∧Component(?b)∧Vulnerability(?c)∧sameAs(?c,CVE-2009-1535)
∧has(?a,?b)∧has(?b,?c)∧AttackAuthByPass(?d)∧exploit(?d,?c)
∧Adversary(?e)∧hasAccess(?e,?b)
→
lanchAttackAuthByPass_Ins_CVE-2009-1535(?e,?a)∧hasCompromiseFiles(?e,?b)
該案例中表示設備a上有組件b,組件b存在CVE-2009-1535漏洞,且存在攻擊實例d可利用c,且攻擊者e可以訪問組件b。那么可推導出e能對a進行攻擊(用lanchAttackAuthByPass_Ins_CVE-2009-1535關系表示),且攻擊后能夠掌握組件b的數據文件(用hasCompromiseFiles(?e,?b)表示)。
第二種類型是表述攻擊者在攻擊之后,能夠獲取被攻擊對象的一些權限和關系。
舉例說明
Device(?a)∧Device(?b)∧Device(?d)∧Component(?c)∧has(?d,?c)
∧hasPrivilegeUser(?a,?b)∧hasShellRemote(?a,?b)∧hasAccess(?b,?c)
∧differentFrom(?a,?d)
→hasAccess(?a,?c)
該案例中表示設備a在設備b上具有用戶權限和遠程shell,那么a就能訪問所有b能訪問的組件。
可見,根據上述定義的SWRL推理規則,就可以推理出攻擊者能攻擊的對象,以及攻擊后能繼續獲取被攻擊者的權限和資源。
(二)收集網絡信息
該步驟由目標網絡的管理員完成,主要收集目標網絡的拓撲信息,機器列表,服務信息,組件列表等信息,以及根據已有的信息(如服務的軟件版本)收集可能存在的漏洞信息。
在具體實現時,該步驟可通過已有公開的系統工具收集整理,如OpenVAS。但并不限于此。
(三)創建針對目標網絡的安全本體
在收集整理目標網絡信息之后,根據基本安全本體的classes,為目標網絡信息(如網絡拓撲、機器列表、組件列表等信息)創建對應的實例,并設定通過預定的Object properties屬性設定各個實例間的關系。
這里創建的對應實例包括服務器個體、主機個體、網絡中運行的服務軟件個體、漏洞個體等同目標網絡相關的信息。
另外,如有必要,可定義新的屬性和漏洞信息,以及新的推理規則。最終形成一個針對目標網絡的實例化安全本體。
據此,本步驟創建針對目標網絡的安全本體的具體過程如下:
(1)按照基本本體的Classes設定,創建各個實例。包括設備、組件實例;
(2)根據網絡拓撲、組件間訪問關系來設定各個組件的Object properties,構建設備和組件的關系,以及組件和漏洞的關系。這里的關系可以前述基本安全本體構造方案中提到的has、hasAccess等關系;
(3)針對存在新漏洞信息的情況,可自行定義相應的本體模型(參見基本安全本體構造方案),包括漏洞、攻擊實例,攻擊關系及SWRL推理規則。
(四)基于實例化安全本體生成攻擊圖
本步驟中通過一個迭代過程,基于實例化安全本體模擬攻擊者逐步攻擊滲透到目標網絡中,并根據模擬攻擊結果逐步構造攻擊圖,直至沒有更多的設備可被攻擊。
需要指出的,這里的攻擊圖由頂點和有向邊構成,頂點就是本體模型中的Object property屬性構成的一個屬性集合;有向邊是一個攻擊行為。
針對上述的攻擊圖定為,以下通過一個例子進行說明。需要指出的,該舉例方案并不對本方案中的攻擊圖方案構成限定。
參見圖2,由圖可知,在該攻擊圖中攻擊者首先具備S0屬性集,后通過攻擊行為AuthByPass CVE-2007-4752后,具備了S1屬性集,繼續攻擊后又具備了S2屬性集。其中
據此,本步驟中攻擊圖生成的具體過程如下:
(1)收集攻擊者的屬性集sa,sa加入初始攻擊圖;
(2)通過屬性集sa收集受影響的設備集合Na;
(3)抽取與sa、Na有關的安全本體數據,包括SWRL規則,導入推理引擎(如Jess這樣公開可用的),進行推理;
(4)獲取推理得到的攻擊關系;
(5)根據攻擊關系對應的SWRL規則,分別抽取出前提集合和后續結果集合(S1),這里的集合都是屬性集合;
(6)在已有的攻擊圖中,查找能滿足步驟(5)中前提集合的頂點S0,并找到后創建一條邊表示推導出的攻擊關系,創建攻擊邊的后續頂點S1,S1←{S0∪S1};由此攻擊圖中就新增了一個攻擊邊和后續頂點;
(7)對每一個推理出來的攻擊關系執行步驟(5)-(6)的操作;
(8)更新sa使其包括所有推理出來的屬性;
(9)通過更新后的屬性集sa收集受影響的設備集合Na;
(10)如轉到第(3)步執行;
(11)輸出最終攻擊圖。
由上可知,本實例方案中采用本體模型來構造基本的知識庫,并利用本體及SWRL推理規則來發現可能存在的攻擊行為;同時根據本體工具的表述方式,定義了攻擊圖形式,并將這種推理模式引入到攻擊圖的構造過程中,用于發現和推理攻擊行為。樣網絡安全管理者僅需關注收集本企業網絡信息,并根據本體模型推理結果構造攻擊圖。
最后需要指出的上述方法,為純軟件架構,可以透過程序代碼布設于實體媒體,如硬盤、軟盤、光盤片、或是任何機器可讀取(如智能型手機、計算機可讀取)儲存媒體,當機器加載程序代碼且執行,如智能型手機加載且執行,機器成為用以實行本方法的裝置。
再者,上述方法亦可以程序代碼型態透過一些傳送媒體,如電纜、光纖、或是任何傳輸型態進行傳送,當程序代碼被機器,如智能型手機接收、加載且執行,機器成為用以實行本方法的裝置。
以上顯示和描述了本發明的基本原理、主要特征和本發明的優點。本行業的技術人員應該了解,本發明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發明的原理,在不脫離本發明精神和范圍的前提下,本發明還會有各種變化和改進,這些變化和改進都落入要求保護的本發明范圍內。本發明要求保護范圍由所附的權利要求書及其等效物界定。