專利名稱:主動式網(wǎng)絡安全漏洞檢測器的制作方法
技術領域:
本發(fā)明屬于計算機網(wǎng)絡安全技術領域,特別涉及一種主動式網(wǎng)絡安全漏洞檢測器AVCS(Active Vulnerability Checker for computer network Systems),用于檢測網(wǎng)絡安全漏洞。
背景技術:
漏洞是一切網(wǎng)絡安全問題的根源,漏洞檢測是解決網(wǎng)絡安全問題的基礎,只有了解系統(tǒng)存在的安全隱患,才能做到有針對性地防衛(wèi),避免盲目性防護,真正做到“知己知彼,百戰(zhàn)不殆”。漏洞檢測技術一經(jīng)提出,便引起了網(wǎng)絡安全領域的極大重視,與防火墻、入侵檢測、加密和病毒防范技術并列為網(wǎng)絡安全的主流研究方向。
從國內(nèi)、外數(shù)據(jù)庫檢索和文獻分析看,對已知漏洞地檢測主要分為兩大類主動模擬攻擊式和被動監(jiān)聽式。其中,前者集成已知的信息收集和黑客攻擊手法,根據(jù)TCP/IP協(xié)議,向目標主機發(fā)送隱患探測數(shù)據(jù)包,模擬攻擊過程,通過被掃描設備對探測包的響應來執(zhí)行漏洞判斷。但是審計系統(tǒng)的物理距離限制了模擬攻擊過程中的大量通訊,檢測過程持續(xù)時間比較長。模擬攻擊技術難以做到面面俱到,準確度低。而且,模擬攻擊過程有一定的破壞性,對系統(tǒng)性能有負面影響。后者的工作原理就像協(xié)議分析器或基于網(wǎng)絡的入侵檢測器,監(jiān)控網(wǎng)絡流量,利用特征庫進行匹配,確定網(wǎng)絡拓撲、運行服務和漏洞,具有運行連續(xù)、對網(wǎng)絡性能無影響、配置簡單和報告及時的優(yōu)點。然而,這類檢測器依賴于抓到的數(shù)據(jù)包內(nèi)容執(zhí)行漏洞判斷,不能發(fā)現(xiàn)不與任何設備會話的脆弱服務器,在改變服務默認標識或配置蜜罐情況下變得無能為力。而且,這兩種檢測器僅僅識別主機的漏洞,沒有試圖分析同一主機或同一網(wǎng)絡內(nèi)主機間配置的組合造成的漏洞,整體分析網(wǎng)絡安全的功能較弱。
對未知漏洞的檢測,即對漏洞組合帶來的安全問題的研究分為模型檢測技術和圖形分析技術。不論采用模型檢測技術、還是采用圖形分析技術的模型,都沒有很好的處理與漏洞檢測結(jié)果的有機集成、在大規(guī)模網(wǎng)絡的擴展或攻擊路徑的可視化顯示問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述現(xiàn)有技術存在的不足,提供了一種主動式網(wǎng)絡安全漏洞檢測器AVCS,事先識別網(wǎng)路安全隱患,實現(xiàn)網(wǎng)絡安全的主動防衛(wèi),提高網(wǎng)絡安全性能。
實現(xiàn)上述發(fā)明的技術解決方案是,在OVAL基礎上,結(jié)合攻擊/漏洞知識庫以及攻擊和漏洞之間的互為因果關系,實現(xiàn)快速、高精度的已知漏洞檢測,以及威脅保護目標的潛在未知漏洞檢測。主要包括以下內(nèi)容一種主動式網(wǎng)絡安全漏洞檢測器,基于開放漏洞評估語言OVAL,分布收集系統(tǒng)配置信息、集中漏洞評估分析,實現(xiàn)對網(wǎng)絡系統(tǒng)漏洞的檢測,從中發(fā)現(xiàn)漏洞組合對保護目標的威脅,進一步直觀顯示威脅保護目標的潛在攻擊路徑;它包括檢測代理、數(shù)據(jù)中心和分析控制臺三部分內(nèi)容
檢測代理分布在待評估網(wǎng)絡內(nèi)的各個主機上,利用OVAL收集各主機的系統(tǒng)特征信息,并將其上傳到數(shù)據(jù)中心,供評估分析使用;
分析控制臺是漏洞評估的用戶接口,主要負責1)根據(jù)評估需要,配置評估目標,選擇檢測策略和評估條件;2)控制檢測系統(tǒng)的啟停;3)利用開放漏洞評估語言定義OVAL Definitions,分析檢測代理的上報信息,判斷系統(tǒng)中存在的已知漏洞;4)基于發(fā)現(xiàn)的已知漏洞列表,應用謂詞邏輯的攻擊/漏洞關聯(lián)分析模型,分析漏洞組合帶來的安全問題;5)可視化顯示識別的潛在攻擊路徑;
數(shù)據(jù)中心采用數(shù)據(jù)庫系統(tǒng)實現(xiàn)漏洞信息的存儲和管理,主要包括攻擊/漏洞基礎知識庫、攻擊/漏洞關系表、各檢測代理上報的系統(tǒng)配置信息和漏洞檢測結(jié)果,數(shù)據(jù)中心與漏洞檢測代理、分析控制臺交互,協(xié)同完成漏洞檢測;
工作流程包括以下步驟
a.分析控制臺發(fā)送“開始”控制命令,啟動檢測代理;
b.檢測代理發(fā)送“問候”消息,告知分析控制臺準備就緒,等待任務;
c.分析控制臺接著發(fā)送“收集數(shù)據(jù)請求”信息,通知檢測代理收集系統(tǒng)信息;
d.檢測代理向分析控制臺發(fā)送“收集數(shù)據(jù)應答”信息,同時開始收集數(shù)據(jù),并送往數(shù)據(jù)中心;
e.當檢測代理收集數(shù)據(jù)完畢時,向分析控制臺發(fā)送“收集數(shù)據(jù)結(jié)束”通知;
f.分析控制臺接到“收集數(shù)據(jù)結(jié)束”通知,開始查詢數(shù)據(jù)中心的信息,并根據(jù)查詢結(jié)果進行漏洞判斷。
基于OVAL的檢測代理,其核心子線程類AgentTask依賴于通信包裝類SSL_Agent和信息收集類InfoCollector完成具體的檢測過程,分布式收集目標主機的信息,包括系統(tǒng)文件、注冊碼、進程、注冊用戶、Windows網(wǎng)絡信息服務器IIS注冊信息以及網(wǎng)絡連接狀態(tài)的信息;
SSL_Agent類負責通信的所有工作,包括端口的初始化、安全套接層SSL過程的初始化,以及通信過程中的異常處理;InfoCollector類負責數(shù)據(jù)收集,在Windows平臺下依賴于RegistryKeys、Ps、MetabaseKeys、AccountPrivileges、FileAttributes類分別收集注冊碼、進程、IIS注冊信息、注冊用戶帳號和系統(tǒng)文件信息,在Linux系統(tǒng)下分別依賴File、InetListeningServers、Process、RPMInfo、RPMVersionCompare和Uname類收集系統(tǒng)文件、網(wǎng)絡監(jiān)聽服務、進程、套件管理與所需文件關聯(lián)性數(shù)據(jù)庫信息、套件版本比較信息和常規(guī)系統(tǒng)信息。
所述的謂詞邏輯攻擊/漏洞關聯(lián)分析模型,把原子謂詞公式作為基本的模型單元,對攻擊、漏洞以及二者之間的因果關系進行建模,并自動把檢測代理提供的配置信息和分析控制臺識別出的通用漏洞紕漏CVE列表使用原子謂詞公式建模,進一步基于攻擊/漏洞知識庫以及二者之間的互為因果關系,通過攻擊/漏洞關聯(lián)分析算法進行攻擊/漏洞的關聯(lián)分析,構(gòu)建威脅安全目標的潛在攻擊路徑。
所述的攻擊/漏洞關聯(lián)分析算法,利用關系數(shù)據(jù)庫管理系統(tǒng)的連接、選擇和投影3個關系演算,首先從類攻擊的前提與系統(tǒng)的實例化漏洞匹配開始進行前向搜索,然后從類攻擊的后果與保護目標的匹配開始執(zhí)行后向搜索,且在每次迭代中只分析類攻擊的前提或后果發(fā)生改變的攻擊類型。
所述的可視化顯示識別的潛在攻擊路徑是把漏洞和攻擊作為圖的節(jié)點,有向邊表示攻擊和漏洞之間的相關性,且規(guī)定只顯示僅作為攻擊前提的漏洞,利用關系數(shù)據(jù)庫管理系統(tǒng)的選擇和投影關系演算,分析攻擊/漏洞關聯(lián)引擎的輸出,建立攻擊/漏洞之間的有向因果圖,可視化顯示系統(tǒng)中存在的潛在攻擊路徑。
本發(fā)明的特點是1)安全性和可控性高,主要表現(xiàn)在不需要開發(fā)攻擊代碼的漏洞檢測器AVCS,適合于網(wǎng)絡系統(tǒng)內(nèi)部的評估人員進行系統(tǒng)安全評估,系統(tǒng)外部的黑客無法利用此工具進行非法探測活動,確保產(chǎn)品不會被非法使用;檢測代理和分析控制臺之間的SSL加密通信,以及檢測代理和數(shù)據(jù)中心或控制臺和數(shù)據(jù)中心之間采用數(shù)據(jù)庫提供的傳輸加密功能,實現(xiàn)了信息的保密性,確保數(shù)據(jù)不被竊聽;評估人員對系統(tǒng)的運行控制擁有主動權(quán),根據(jù)系統(tǒng)的安全需要控制系統(tǒng)的評估過程。2)運行速度快,采用分布收集系統(tǒng)特征信息、集中評估分析的機制,減少了檢測代理和分析控制臺之間的通訊量,縮短了檢測運行時間。3)檢測精度高,基于OVAL的漏洞檢測原理大大降低了誤報率。4)獨特的潛在攻擊路徑構(gòu)建能力,基于謂詞邏輯的攻擊/漏洞關聯(lián)分析模型充分利用攻擊和漏洞的互為因果關系,可自動識別主機中或同一網(wǎng)絡中主機之間的漏洞組合帶來的安全問題,超越了傳統(tǒng)掃描器的能力。
圖1是本發(fā)明體系結(jié)構(gòu)示意圖2是本發(fā)明的時序圖3是Windows平臺檢測代理設計中定義的類及其關系;
圖4是Linux平臺檢測代理設計中定義的類及其關系;
圖5是Windows 2000OVAL Schema的基表名稱及描述;
圖6(a)是知識庫中類漏洞謂詞表;
圖6(b)是知識庫中類攻擊屬性表;
圖6(c)是知識庫中類攻擊前提表;
圖6(d)是知識庫中類攻擊后果表;
圖6(e)是知識庫中漏洞和謂詞編號對照表;
圖7是遞階式漏洞檢測原理模型;
圖8是攻擊/漏洞的關聯(lián)原理;
圖9是攻擊/漏洞的關聯(lián)分析模型;
圖10是本發(fā)明的檢測時間統(tǒng)計,其中橫坐標是評估目標主機數(shù)(臺),縱坐標是檢測花費時間(秒);
圖11是NESSUS檢測時間統(tǒng)計,其中橫坐標是評估目標主機數(shù)(臺),縱坐標是檢測花費時間(秒);
圖12是攻擊/漏洞關聯(lián)結(jié)果可視化。
具體實施例方式
以下結(jié)合附圖對本發(fā)明作進一步的詳細描述。
1、安全漏洞檢測器AVCS的組成
如圖1所示,給出主動式網(wǎng)絡安全漏洞檢測器AVCS的組成,從物理分布上分為檢測代理、數(shù)據(jù)中心和分析控制臺三大部分。其中,檢測代理分布在網(wǎng)絡內(nèi)各個主機上,以后臺方式運行。當接收到“收集數(shù)據(jù)請求時”,利用OVAL收集本機的系統(tǒng)特征信息,并將數(shù)據(jù)安全上傳到數(shù)據(jù)中心,供后面的評估分析使用。
分析控制臺是系統(tǒng)的圖形化用戶接口,管理員根據(jù)評估需要設置待評估主機、連接數(shù)據(jù)庫、檢測策略、評估條件。當接收到“收集數(shù)據(jù)結(jié)束通知”時,分析各個檢測代理上報的系統(tǒng)配置信息,識別系統(tǒng)中的漏洞以及漏洞的組合,并顯示發(fā)現(xiàn)的已知和未知漏洞、以及相關字段信息。
數(shù)據(jù)中心采用SQL Server 2000,用于存放所有的數(shù)據(jù)信息,包括攻擊/漏洞數(shù)據(jù)庫、各個檢測代理上報的系統(tǒng)配置信息和分析控制臺發(fā)現(xiàn)的漏洞列表等。數(shù)據(jù)中心與控制臺、檢測代理交互,協(xié)作共同完成已知和未知漏洞的檢測。
如圖2所示,給出AVCS系統(tǒng)的操作時序,具體為
a、分析控制臺發(fā)送“開始”控制命令,啟動檢測代理;
b、檢測代理發(fā)送“問候”消息,告知分析控制臺準備就緒,等待任務;
c、分析控制臺接著發(fā)送“收集數(shù)據(jù)請求”信息,通知檢測代理收集系統(tǒng)信息;
d、檢測代理向分析控制臺發(fā)送“收集數(shù)據(jù)應答”信息,同時開始收集數(shù)據(jù),并送往數(shù)據(jù)中心;
e、檢測代理收集數(shù)據(jù)完畢時,向分析控制臺發(fā)送“收集數(shù)據(jù)結(jié)束”通知;
f、分析控制臺接到“收集數(shù)據(jù)結(jié)束”通知,開始查詢數(shù)據(jù)中心的信息,并根據(jù)查詢結(jié)果進行漏洞判斷;
2、子模塊設計
檢測代理
檢測代理運行在被檢測主機中,收集本機的系統(tǒng)信息,并上傳到數(shù)據(jù)中心,同時通知控制臺進行評估。
應用于Windows平臺的檢測代理的流程如下
輸入分析控制臺的啟動信號
輸出待評估數(shù)據(jù)到數(shù)據(jù)中心
a)初始化端口,初始化SSL,啟動掃描子線程;
b)讀入掃描配置文件;
c)文件MD5碼是否一致,如果是則d),否則f);
d)依次讀取系統(tǒng)文件、IIS注冊庫、Windows注冊碼、運行進程和注冊用戶信息;
e)上傳數(shù)據(jù)到數(shù)據(jù)中心;
f)發(fā)送結(jié)束信號到分析控制臺,同時結(jié)束本子線程;
如圖3所示,給出適用于Windows平臺的檢測代理中一些重要的類及其之間的關系,處于核心的是AgentTask子線程類,代表一次具體的評估過程,它的實現(xiàn)依賴于通信包裝類SSL_Agent和信息收集類InfoCollector。SSL_Agent負責通信的所有工作,包括端口的初始化、SSL過程的初始化、以及處理通信過程中的異常。InfoCollector負責數(shù)據(jù)收集,它依賴于RegistryKeys、Ps、MetabaseKeys、AccountPrivileges、FileAttributes類分別收集注冊碼、進程、IIS注冊庫、注冊用戶帳號和系統(tǒng)文件信息。
如圖4所示,給出應用于Linux平臺的檢測代理中一些重要的類及其之間的關系,與適用于Windows平臺所不同的是,信息收集類InfoCollector分別依賴File、InetListeningServers、Process、RPMInfo、RPMVersionCompare和Uname類收集系統(tǒng)文件、網(wǎng)絡監(jiān)聽服務、進程、套件管理與所需文件關聯(lián)性數(shù)據(jù)庫信息、套件版本比較信息和常規(guī)系統(tǒng)信息。
通過仔細地設計和功能分解,本系統(tǒng)良好地把握住了類的確定,類之間的關系比較清晰,同時又不出現(xiàn)一個功能特別強大的類。由于空間所限,只介紹檢測代理子線程類AgentTask的定義
class AgentTaskpublic TThread { private Unsigned int port; Protected void__fastcall Execute(); public __fastcall AgentTask(bool CreateSuspended,unsigned int port); void__fastcall wrapsync();<!-- SIPO <DP n="7"> --><dp n="d7"/> };
數(shù)據(jù)中心
數(shù)據(jù)中心給出評估過程使用的所有數(shù)據(jù),主要包括攻擊/漏洞知識庫、評估過程中檢測代理采集的系統(tǒng)配置信息以及評估結(jié)果。
如圖5所示,給出Windows 2000 OVAL Schema(開放漏洞評估語言模式)包括的基表名稱及相應描述信息,決定檢測代理收集的系統(tǒng)信息內(nèi)容。
如圖6(a、b、c、d、e)所示,給出攻擊/漏洞關聯(lián)分析模型中涉及的知識庫樣本表格,包括類漏洞謂詞表、類攻擊屬性表、類攻擊前提/后果表、漏洞和謂詞編號對照表,用于存放攻擊/漏洞的相關屬性以及二者之間的關系。
漏洞數(shù)據(jù)庫的格式參照ICAT Metabase,包括漏洞名稱Vul_Name、發(fā)布日期Pub_Date、概要描述Sum、威脅程度Th_Sev、利用范圍Ex_Range、損失類型Loss_Type、漏洞類型Vul_Type、脆弱軟件及其版本Vul_SofAVer、修補措施Rem_Measure以及相關的參考網(wǎng)站Ref。
分析控制臺
分析控制臺負責管理檢測系統(tǒng)的配置、漏洞檢測過程的啟??刂啤⒙┒磁卸?,并進行攻擊/漏洞的關聯(lián)分析,識別漏洞組合造成的未知漏洞。在控制臺的設計中,充分利用關系數(shù)據(jù)庫管理系統(tǒng)的強大功能和豐富操作集合,實現(xiàn)已知漏洞的檢測和未知漏洞的分析。關于已知漏洞檢測和未知漏洞的分析方法,將在主要關鍵技術中詳細介紹。
3、主要關鍵技術
在詳細說明之前,首先定義系統(tǒng)中使用的一些名詞
定義1類攻擊V一個三元組(fact,prerequisite,consequence),表示一類攻擊的前提和后果,這里fact表示屬性名稱集,每一個有一個相關的值域,表示攻擊所附帶的信息,prerequisite、consequence分別為一個分子謂詞公式和原子謂詞公式集合,其所有自由變量在fact集合,二者分別規(guī)定攻擊成功必需滿足的條件以及攻擊成功可能帶來的后果。
定義2實例化攻擊v類攻擊V的一個確定的具體實例,即類攻擊V的fact屬性的有限元組集。
定義3類漏洞D可作為類攻擊前提的任意系統(tǒng)屬性,即已知類攻擊V的prerequisite邏輯公式中的每一個原子謂詞公式。
定義4實例化漏洞d類漏洞D的一個確定的具體實例,有與之相連的IP地址。
定義5關聯(lián)的攻擊/漏洞假定P(v)表示出現(xiàn)在實例化攻擊v的所有前提謂詞集合,且用d的屬性值替換其參數(shù)。如果使得實例化漏洞d暗示p,稱為攻擊v和漏洞d關聯(lián),也稱d為v作準備或d和v具有prepare for關系。
已知漏洞的檢測
如圖7所示,給出本發(fā)明的遞階式漏洞檢測原理模型,依賴于OVAL,根據(jù)系統(tǒng)特點(安裝的操作系統(tǒng)、操作系統(tǒng)設置、安裝的應用軟件及其應用軟件設置)和配置信息(注冊鍵設置、文件系統(tǒng)屬性和配置文件),識別系統(tǒng)中存在的漏洞、配置問題或補丁安裝情況。該模型自下而上共有4個層次信息源、系統(tǒng)狀態(tài)、中間判斷和結(jié)果判斷,其中信息源包括系統(tǒng)注冊表、Metabase注冊表和系統(tǒng)文件信息,系統(tǒng)狀態(tài)指安裝的軟件及其版本、運行服務及相應設置和補丁信息。針對某一漏洞的檢測,首先從信息源中獲取安全檢測所需的系統(tǒng)狀態(tài)信息,在此基礎上進行中間的脆弱軟件和脆弱配置邏輯判斷,最后執(zhí)行邏輯“與”運算,實現(xiàn)最終的脆弱性判斷。形式化的漏洞檢測過程如下
首先,定義5個集合軟件名稱集FN={fn1,……,fnn)、軟件版本集AV={av1,……avn)、軟件補丁集PS={ps1,……,psm}、運行服務集RS={rs1,……,rsv}和配置設置集CS={cs1,……,csu),且5個集合中每個元素用原子謂詞公式exist(x)或其邏輯組合進行表示,所有元素均為三態(tài)變量,其值域為{0,1,φ}。取值為φ,表示漏洞檢測判斷不使用該原子謂詞公式;取值為1或0,表示漏洞判斷所需的系統(tǒng)謂詞為“TRUE”或“FALSE”。
其次,定義系統(tǒng)脆弱軟件的判別函數(shù)
公式1
其中,fn∈FN,av∈AV,ps∈PS,輸出結(jié)果表示漏洞寄存的脆弱軟件存在與否。
再次,定義系統(tǒng)脆弱配置的判別函數(shù)
公式2
其中,rs∈RS,cs∈CS,結(jié)果為與漏洞相關的脆弱配置是否存在的結(jié)論。
最后,定義系統(tǒng)脆弱點的判別函數(shù)
f(g,h)=g(fn,av,ps)∩h(rs,cs) 公式3
其中,g(fn,av,ps)、h(rs,cs)分別由公式1和2得到,輸出結(jié)果為系統(tǒng)是否存在此脆弱點。
AVCS的已知漏洞檢測涉及3個步驟收集系統(tǒng)特征和配置數(shù)據(jù)、判斷漏洞和配置問題、提交檢測結(jié)果,最終由嵌入式SQL語句實現(xiàn)。
未知漏洞的分析
以發(fā)現(xiàn)的已知漏洞信息為基礎,從計算機網(wǎng)絡整體防衛(wèi)角度出發(fā),研究利用低層漏洞怎樣組合實現(xiàn)高層的攻擊目標,構(gòu)建危及安全目標的潛在攻擊路徑,屬于網(wǎng)絡安全脆弱性的全局分析,是傳統(tǒng)掃描器的一個超越。
如圖8所示,給出基于謂詞邏輯的攻擊/漏洞關聯(lián)分析原理,核心思想是利用攻擊/漏洞的互為因果關系,即攻擊事件是以網(wǎng)絡系統(tǒng)中的某些主機信息和訪問控制權(quán)限為前提發(fā)生的,發(fā)生以后反過來又改變網(wǎng)絡系統(tǒng)中的主機信息和訪問控制權(quán)限,包括發(fā)現(xiàn)有價值信息、提升用戶權(quán)限、去除過濾規(guī)則、添加信任關系等。通過匹配前一個攻擊利用系統(tǒng)漏洞帶來的后果與后一個攻擊發(fā)起的前提,發(fā)現(xiàn)網(wǎng)絡系統(tǒng)中從系統(tǒng)初始條件出發(fā),組合一系列漏洞到達系統(tǒng)安全目標的潛在攻擊路徑。
如圖9所示,給出本發(fā)明的網(wǎng)絡系統(tǒng)漏洞分析模型,由4大模塊知識收集、系統(tǒng)信息獲取、關聯(lián)分析引擎和可視化顯示組成。4個模塊既相對獨立,又互相關聯(lián)。
知識收集
知識收集模塊是本模型的基礎知識體系,建立攻擊/漏洞的基礎知識庫(漏洞特征數(shù)據(jù)庫、攻擊特征數(shù)據(jù)庫、攻擊事件前因表和攻擊事件后果表),為主動式漏洞檢測器AVCS實現(xiàn)攻擊/漏洞的關聯(lián)分析奠定基礎。然而,由于大多漏洞檢測器使用自然語言文本描述發(fā)現(xiàn)的漏洞信息,難以自動捕捉攻擊前提和攻擊結(jié)果所需的語義。為此,根據(jù)一些著名安全網(wǎng)站提供的已知漏洞和攻擊技術的信息,進行系統(tǒng)化整理,建立攻擊/漏洞數(shù)據(jù)庫。基于此數(shù)據(jù)庫,進一步使用漏洞的原子謂詞公式表示攻擊的前提和后果,建立全面的攻擊前提和攻擊結(jié)果規(guī)則庫。知識收集過程中,涉及到系統(tǒng)漏洞、黑客攻擊、以及攻擊和漏洞之間關系的建模。
(1)漏洞建模
本發(fā)明提及的漏洞指能夠作為攻擊前提的任意系統(tǒng)屬性,根據(jù)漏洞定義,其包含4部分受害機的CVE(通用漏洞紕漏,Common Vulnerabilities andExposures)列表、攻擊者初始權(quán)限(攻擊者在攻擊機的用戶權(quán)限、程序執(zhí)行能力以及擁有的攻擊腳本)、防火墻設置的訪問策略以及攻擊者在受害機的用戶權(quán)限。使用原子謂詞公式,對漏洞建模為
Vul_Name(VICTIM) Predicate 1
User_Name(VICTIM) Predicate 2
User_Name(ATTACK) Predicate 3
Policy_Name(ATTACK,VICTIM) Predicate 4
EXECUTE(ATTACK)Predicate 5
PGM_Name(ATTACK) Predicate 6
Predicate 1表示VICTIM主機上發(fā)現(xiàn)漏洞Vul_Name,以CVE編號表示。Predicate 2和Predicate 3中,User_Name規(guī)定用戶在主機上可能執(zhí)行的操作集合,分別為無權(quán)限NONE、普通用戶NORMAL_USER、超級用戶SUP_USER三個級別。Predicate4中,系統(tǒng)訪問策略Policy_Name表示網(wǎng)絡連接性,根據(jù)TCP/IP協(xié)議族的層次結(jié)構(gòu)劃分為4個層次應用層APP_LAYER、傳輸層TRANS_LAYER、網(wǎng)絡層NET_LAYER和鏈接層LINK_LAYER。Predicate 5和Predicate 6分別表示在ATTACK主機上可以執(zhí)行程序和擁有名為PGM_Name的軟件。
(2)攻擊建模
NSMS(網(wǎng)絡安全監(jiān)控系統(tǒng),Network Security Monitoring System)已有的攻擊特征庫作為主動式安全漏洞檢測器AVCS的攻擊特征數(shù)據(jù)庫,該庫中目前存放了近千條IDS(入侵檢測系統(tǒng),Intrusion Detection System)能檢測的攻擊或可疑行為,原子攻擊的模型為
Exploit_Name(ATTACK,Mid_Host,VICTIM) Predicate 7
此模型表示來自ATTACK主機的攻擊者,把Mid_Host主機作為跳板,對VICTIM受害機發(fā)起Exploit_Name攻擊。
(3)攻擊/漏洞關系建模
為了發(fā)現(xiàn)威脅保護目標的潛在攻擊路徑,需要考慮攻擊與漏洞的互為因果關系,檢查一個攻擊后果是否有助于另一個攻擊的前提。使用謂詞邏輯建立的攻擊/漏洞關系模型為
prerequisite1∧…∧prerequisitenexploit Predicate 8
exploit{consequence1,…,consequencem} Predicate 9
其中,prerequisitei、exploit和consequencej分別用原子謂詞公式表示。上面兩個分子謂詞公式表示,exploit攻擊的成功前提是prerequisitei(i=1,…,n)必須為TRUE,成功后果是consequencej(j=1,…,m)可能為TRUE。
信息獲取
系統(tǒng)信息獲取模塊的功能是發(fā)現(xiàn)網(wǎng)絡拓撲信息,即工作站、服務器等對象的安全漏洞和訪問控制權(quán)限信息,并使用一定的格式進行描述,為攻擊路徑構(gòu)建提供有用信息。因此,自動發(fā)現(xiàn)網(wǎng)絡拓撲,對于AVCS系統(tǒng)在實際網(wǎng)絡中的應用十分重要。
作者針對Windows和Linux兩個平臺,開發(fā)了功能強大的檢測代理,充分利用OVAL,自動輸出詳細的機器配置信息,包括運行服務、軟件組件和網(wǎng)絡連接性,解決了現(xiàn)有檢測器不能提供訪問策略和其他配置信息的問題。對于Window平臺的目標主機,通過讀取注冊表中防火墻各個規(guī)則的鍵值,獲取訪問控制策略。對于Linux系統(tǒng)的評估目標,通過讀取IPTable或IPChains等防火墻的文本配置文件,獲取訪問控制策略。訪問策略有助于確定攻擊者能否發(fā)送一個數(shù)據(jù)報到目標,對于推斷多階段攻擊十分有用。進一步,分析每個檢測代理輸出的配置信息,識別系統(tǒng)存在的CVE漏洞,并根據(jù)漏洞和謂詞編號對照表(見圖6(e)),把識別的CVE漏洞和配置信息轉(zhuǎn)化成實例化漏洞,即給類漏洞的屬性名稱集fact賦以具體值,最終存儲在下表中
表1實例化漏洞
攻擊/漏洞的關聯(lián)分析引擎
關聯(lián)分析引擎是基于謂詞邏輯理論構(gòu)建潛在攻擊路徑的核心部分,充分利用關系數(shù)據(jù)庫管理系統(tǒng)的強大功能以及攻擊/漏洞之間的互為因果關,分析攻擊/漏洞知識庫和具體的系統(tǒng)配置信息,實現(xiàn)攻擊/漏洞的關聯(lián),即發(fā)現(xiàn)具有preparefor關系的攻擊和漏洞,并存儲到表2所示的關聯(lián)結(jié)果表。
表2關聯(lián)結(jié)果
首先,定義關聯(lián)過程中用到的一些變量和函數(shù)
Sfound在當前系統(tǒng)配置條件下,識別的所有可能成功的攻擊集。
Scurrent本次迭代過程中,發(fā)現(xiàn)的可能成功的攻擊集。
SCcurrent本次迭代過程中,發(fā)現(xiàn)的可能成功攻擊的后果集。
P(et)/C(et)類攻擊et的前提/后果集。
sign標識發(fā)現(xiàn)攻擊路徑的符號變量,同時規(guī)定sign取值為1,表示至少存在一條攻擊路徑;取值為0,表示沒有發(fā)現(xiàn)攻擊路徑。
函數(shù)correlation(i,temp)確定實例化攻擊能否成功的關聯(lián)規(guī)則,即判斷實例化屬性i中,與類屬性temp中字符“ATTACK”、“Mid_Host”和“VICTIM”對應位置的值是否完全相同。如果完全相同,則與i對應的實例化攻擊可能發(fā)生,函數(shù)返回值為“TRUE”。否則,實例化攻擊不可能發(fā)生,函數(shù)返回值為“FALSE”。比如一個類攻擊IISRDS,假設
i={Money,NULL,Money,Maude,Maude,NULL},i中與temp的“ATTACK”字符對應的第1和第3個元素均為Money,與“VICTIM”字符對應的第4和第5個元素均為Maude,由此判定與i對應的IISRDS的一個實例化攻擊可能發(fā)生,函數(shù)返回值為“TRUE”。
函數(shù)output(i,temp)對于一個具體的類攻擊,使用i中與temp的“ATTACK”、“Mid_Host”和“VICTIM”字符對應位置的值,分別替換原子謂詞公式et(ATTACK,Mid_Host,VICTIM)的個體。比如在定義correlation(i,temp)函數(shù)中所舉的例子,使用函數(shù)IISRDS(output(i,temp))可得到實例化的攻擊謂詞IISRDS(Money,Maude)。
函數(shù)ins(P(et))根據(jù)初始系統(tǒng)配置信息集,把與類攻擊et的前提對應的原子謂詞公式實例化,即給通用變量“ATTACK”、“Mid_Host”和“VICTIM”賦以具體的IP地址。
為保證發(fā)現(xiàn)關于網(wǎng)絡初始和目標條件的攻擊路徑集,提出由兩個過程從攻擊前提開始匹配的前向搜索Forward_search和從攻擊后果開始匹配的后向搜索Backward_search組成的攻擊/漏洞關聯(lián)算法。由于兩個搜索過程的細節(jié)相似,受空間所限,只給出Forward_search算法的具體實現(xiàn)細節(jié),算法如下
Input類攻擊集E,類漏洞集V,類攻擊的前提集TP,類攻擊的后果集TC,初始系統(tǒng)信息集TI,保護目標G。
Output關聯(lián)的攻擊/漏洞集Sve。
/*前向搜索Forward_search的細節(jié)*/
Sfouna←φ,Scurrent←φ,SCcurrent=TI,SC′current←φ,Sve←φ,sign=0;/*初始化*/
While((SCcurrent\G)∩P(E))≠φ{(diào)
For each et∈E do
If((SCcurrent\G)∩P(et))≠φ
For each a∈ins(P(et))do
If ∏aSCcurrent≠φ tempi=∏aSCcurrent\Aa;/*Aa為以前迭代中的謂詞*/
Else tempi=Aa;
For each i∈temp2 do
If correlation(i,temp)==TRUE /*判斷出可能成功的攻擊*/
Sfound=∪Scurrent,C(et)→TI,Sve=∪(P(et),et),Sve=∪(et,C(et));
For each d∈C(et)do
If(d==G)sign=1;
SCcurrent←SC′current,SC′current←φ;}If(sign==1)(Sve,Sfound)=Backward_search(Sve);/*通過后向搜索去除冗余路徑*/Else Print(“G is enough secure”);
攻擊路徑的可視化技術
可視化顯示模塊分析攻擊/漏洞關聯(lián)引擎的輸出,進一步利用關系數(shù)據(jù)庫管理系統(tǒng)的選擇、投影操作,建立攻擊/漏洞之間的有向因果圖,可視化顯示系統(tǒng)中存在的潛在攻擊路徑。在有向圖表示上,漏洞和攻擊作為圖的節(jié)點,有向邊表示攻擊和漏洞之間的相關性,一個從漏洞v指向攻擊s的有向邊,表示v是s的一個前提。相似地,從攻擊s指向漏洞v的有向邊,表示v是s的一個后果。同時,為了節(jié)省顯示空間,在攻擊路徑圖中僅僅顯示只作為攻擊前提的漏洞,對于既作為前一攻擊的后果、又為后一攻擊的前提的漏洞,在攻擊圖中不予顯示。提出的可視化顯示算法如下
Input關聯(lián)的攻擊/漏洞集Sve,識別的成功的攻擊集Sfound,保護目標G
Output威脅安全目標的攻擊路徑圖
Ping=∏preparingSve,Ped=∏preparedSve;
For each v∈Ping {
If{
e=∏prepared(σpreparing=vSve),BuildGraph(v,e);/*建前提和攻擊的有向圖*/
}
Else if v∈Sfound {
v′=∏preparde(σpreparing=vSve);
If v′==G BuildGraph(v,v′);/*建攻擊和保護目標的有向圖*/
Else{
e=∏prepared(σprepartng=v′Sve);
BuildGraph(v,e); /*建攻擊和攻擊的有向圖*/
}
}
}
本發(fā)明與現(xiàn)有技術相比,所產(chǎn)生的效果是
1.檢測精度表3給出針對IE 6.0的檢測結(jié)果,結(jié)合微軟網(wǎng)站資料,發(fā)現(xiàn)AVCS系統(tǒng)報告的7個漏洞的修補程序已經(jīng)全部納入IE 6.0 SP1中。表4給出對IIS 5.0的實驗結(jié)果,AVCS發(fā)現(xiàn)的漏洞包容了MBSA報告的所有漏洞。同時,MBSA誤報漏洞MS04-004,因為系統(tǒng)配置與其對應脆弱軟件IE 6+SP1不相符。由此看出,只要保證系統(tǒng)知識庫包含足夠多的漏洞定義和及時更新,AVCS系統(tǒng)就可提供高質(zhì)量的報告?;贠VAL的AVCS系統(tǒng)明顯改進了漏洞檢測器的誤報率,這主要歸因于漏洞檢測原理的不同。
表3針對IE 6.0的檢測結(jié)果
表4針對IIS 5.0的檢測結(jié)果
2.檢測速度
如圖10、圖11所示,給出使用AVCS和Nessus兩個檢測器,橫縱坐標分別表示評估目標主機數(shù)(臺)、檢測花費時間(秒),針對不同數(shù)目的目標進行檢測的運行時間統(tǒng)計結(jié)果。針對同樣的1臺目標主機,AVCS所用時間是NESSUS的1/9。對相同3臺主機進行檢測,AVCS和NESSUS所用的平均時間分別是58秒和346秒。
3.未知漏洞檢測
如圖12所示,給出一個小型網(wǎng)絡的漏洞分析結(jié)果,兩個CVE漏洞Amy主機的CVE-2002-1142和Rake主機的CAN-2003-0694的組合,威脅保護目標Rake主機的超級用戶權(quán)限的安全。該工作為實施有效的安全防范措施奠定基礎,幫助管理員分析現(xiàn)有的安全措施是否足以保證某一緊要資源的安全。
4.跨平臺實現(xiàn)Windows和Linux兩個平臺的漏洞檢測。
5.“零”影響典型工作情況下帶寬占用僅為8-28Kb/s,基本不會因為掃描影響網(wǎng)絡的正常使用,對同時運行控制臺和數(shù)據(jù)庫的主機僅增加2%~5%的CPU負擔。
6.擴展性對新公布的漏洞,只要定義出存在的邏輯條件,就可以實現(xiàn)其檢測,不需要開發(fā)攻擊代碼。而且,只需要定義攻擊類型的前提和后果,即可實現(xiàn)攻擊/漏洞的關聯(lián)分析,不需要定義黑客的入侵模式。
7.安全檢測采用128位的SSL加密協(xié)議,利用數(shù)據(jù)庫提供的傳輸加密功能,保證了通信安全。
權(quán)利要求
1、一種主動式網(wǎng)絡安全漏洞檢測器,其特征在于,基于開放漏洞評估語言OVAL,分布收集系統(tǒng)配置信息、集中漏洞評估分析,實現(xiàn)對網(wǎng)絡系統(tǒng)漏洞的檢測,從中發(fā)現(xiàn)漏洞組合對保護目標的威脅,進一步直觀顯示威脅保護目標的潛在攻擊路徑;它包括檢測代理、數(shù)據(jù)中心和分析控制臺三部分內(nèi)容
檢測代理分布在待評估網(wǎng)絡內(nèi)的各個主機上,利用OVAL收集各主機的系統(tǒng)特征信息,并將其上傳到數(shù)據(jù)中心,供評估分析使用;
分析控制臺是漏洞評估的用戶接口,主要負責1)根據(jù)評估需要,配置評估目標,選擇檢測策略和評估條件;2)控制檢測系統(tǒng)的啟停;3)利用開放漏洞評估語言定義OVAL Definitions,分析檢測代理的上報信息,判斷系統(tǒng)中存在的已知漏洞;4)基于發(fā)現(xiàn)的已知漏洞列表,應用謂詞邏輯的攻擊/漏洞關聯(lián)分析模型,分析漏洞組合帶來的安全問題;5)可視化顯示識別的潛在攻擊路徑;
數(shù)據(jù)中心采用數(shù)據(jù)庫系統(tǒng)實現(xiàn)漏洞信息的存儲和管理,主要包括攻擊/漏洞基礎知識庫、攻擊/漏洞關系表、各檢測代理上報的系統(tǒng)配置信息和漏洞檢測結(jié)果,數(shù)據(jù)中心與漏洞檢測代理、分析控制臺交互,協(xié)同完成漏洞檢測;
工作流程包括以下步驟
a.分析控制臺發(fā)送“開始”控制命令,啟動檢測代理;
b.檢測代理發(fā)送“問候”消息,告知分析控制臺準備就緒,等待任務;
c.分析控制臺接著發(fā)送“收集數(shù)據(jù)請求”信息,通知檢測代理收集系統(tǒng)信息;
d.檢測代理向分析控制臺發(fā)送“收集數(shù)據(jù)應答”信息,同時開始收集數(shù)據(jù),并送往數(shù)據(jù)中心;
e.當檢測代理收集數(shù)據(jù)完畢時,向分析控制臺發(fā)送“收集數(shù)據(jù)結(jié)束”通知;
f.分析控制臺接到“收集數(shù)據(jù)結(jié)束”通知,開始查詢數(shù)據(jù)中心的信息,并根據(jù)查詢結(jié)果進行漏洞判斷。
2、根據(jù)權(quán)利要求1所述的主動式網(wǎng)絡安全漏洞檢測器,其特征在于,所說的檢測代理,基于OVAL,其核心子線程類AgentTask依賴于通信包裝類SSL_Agent和信息收集類InfoCollector完成具體的檢測過程,分布式收集目標主機的信息,包括系統(tǒng)文件、注冊碼、進程、注冊用戶、Windows網(wǎng)絡信息服務器IIS注冊信息以及網(wǎng)絡連接狀態(tài)的信息;
SSL_Agent類負責通信的所有工作,包括端口的初始化、安全套接層SSL過程的初始化,以及通信過程中的異常處理;InfoCollector類負責數(shù)據(jù)收集,在Windows平臺下依賴于RegistryKeys、Ps、MetabaseKeys、AccountPrivileges、FileAttributes類分別收集注冊碼、進程、IIS注冊信息、注冊用戶帳號和系統(tǒng)文件信息,在Linux系統(tǒng)下分別依賴File、InetListeningServers、Process、RPMInfo、RPMVersionCompare和Uname類收集系統(tǒng)文件、網(wǎng)絡監(jiān)聽服務、進程、套件管理與所需文件關聯(lián)性數(shù)據(jù)庫信息、套件版本比較信息和常規(guī)系統(tǒng)信息。
3、根據(jù)權(quán)利要求1所述的主動式網(wǎng)絡安全漏洞檢測器,其特征在于,所說的謂詞邏輯的攻擊/漏洞關聯(lián)分析模型使用原子謂詞公式作為基本的模型單元,對攻擊、漏洞以及二者之間的因果關系進行建模,并自動把檢測代理提供的配置信息和分析控制臺識別出的通用漏洞紕漏CVE列表使用原子謂詞公式建模,進一步基于攻擊/漏洞知識庫以及二者之間的互為因果關系,通過攻擊/漏洞關聯(lián)分析算法進行攻擊/漏洞的關聯(lián)分析,構(gòu)建威脅安全目標的潛在攻擊路徑。
4、根據(jù)權(quán)利要求1或3所述的主動式網(wǎng)絡安全漏洞檢測器,其特征在于,攻擊/漏洞關聯(lián)分析算法,利用關系數(shù)據(jù)庫管理系統(tǒng)的連接、選擇和投影3個關系演算,首先從類攻擊的前提與系統(tǒng)的實例化漏洞匹配開始進行前向搜索,然后從類攻擊的后果與保護目標的匹配開始執(zhí)行后向搜索,且在每次迭代中只分析類攻擊的前提或后果發(fā)生改變的攻擊類型。
5、根據(jù)權(quán)利要求1所述的主動式網(wǎng)絡安全漏洞檢測器,其特征在于,所說的可視化顯示識別的潛在攻擊路徑是把漏洞和攻擊作為圖的節(jié)點,有向邊表示攻擊和漏洞之間的相關性,且規(guī)定只顯示僅作為攻擊前提的漏洞,利用關系數(shù)據(jù)庫管理系統(tǒng)的選擇和投影關系演算,分析攻擊/漏洞關聯(lián)引擎的輸出,建立攻擊/漏洞之間的有向因果圖,可視化顯示系統(tǒng)中存在的潛在攻擊路徑。
全文摘要
本發(fā)明公開了一種主動式網(wǎng)絡安全漏洞檢測器,其由檢測代理、數(shù)據(jù)中心和分析控制臺三大模塊組成,相互協(xié)作實現(xiàn)漏洞的檢測。其中檢測代理收集系統(tǒng)配置信息,并上傳到數(shù)據(jù)中心。分析控制臺分析數(shù)據(jù)中心存放的信息,利用OVAL漏洞定義識別主機漏洞,并進一步應用謂詞邏輯理論,進行攻擊/漏洞的關聯(lián)分析,發(fā)現(xiàn)漏洞組合帶來的安全問題,可視化顯示潛在的攻擊路徑。本發(fā)明可成功實現(xiàn)對網(wǎng)絡系統(tǒng)的快速、高精度漏洞檢測,且對被評估系統(tǒng)的性能影響小,可擴展性強,適用于網(wǎng)絡安全的評估與管理。
文檔編號H04L29/06GK1694454SQ20051004265
公開日2005年11月9日 申請日期2005年5月10日 優(yōu)先權(quán)日2005年5月10日
發(fā)明者鄭慶華, 管曉宏, 陳秀真, 林晨光, 趙婷, 姚婷婷 申請人:西安交通大學