摘要:提出漏洞掃描與入侵檢測系統(tǒng)聯(lián)動工作模型。通過定期對系統(tǒng)進行漏洞掃描,及時修補系統(tǒng)安全漏洞,同時IDS根據(jù)漏洞掃描結(jié)果,對模式庫進行動態(tài)更新,刪除和得到與修補的漏洞有關(guān)的攻擊模式,縮減模式庫的規(guī)模,從而可以有效地提高IDS檢測效率。根據(jù)該模型,系統(tǒng)采用開放接口方式實現(xiàn)雙方聯(lián)動,使用基于插件的開放式模塊化方法編程,以提高系統(tǒng)的可擴展性。
關(guān)鍵詞:漏洞掃描; 入侵檢測; 聯(lián)動; 開放接口
中圖分類號:TP309文獻標(biāo)志碼:A
文章編號:1001-3695(2007)07-0128-03
0引言
入侵檢測系統(tǒng)(Intrusion Detection System,IDS)通過對網(wǎng)絡(luò)和系統(tǒng)記錄日志文件的分析來發(fā)現(xiàn)非法入侵行為以及合法用戶的濫用行為。作為一種主動的網(wǎng)絡(luò)安全防御手段,IDS已經(jīng)成為現(xiàn)代網(wǎng)絡(luò)安全技術(shù)的重要組成部分。目前大部分IDS采用基于模式匹配的入侵檢測方法。該方法由Kumar在1995年提出[1]。其原理是用一定的模式描述來提取攻擊的主要特征,通過判別網(wǎng)絡(luò)中搜集到的數(shù)據(jù)特征或從主機審計數(shù)據(jù)中提取的數(shù)據(jù)特征是否在模式庫中出現(xiàn)來檢測入侵行為。模式匹配方法原理簡單、擴展性好、檢測效率高,可以實現(xiàn)實時檢測,因而已經(jīng)成為入侵領(lǐng)域中應(yīng)用最為廣泛的檢測手段和機制之一。
采用模式匹配的IDS能否準(zhǔn)確地識別出入侵行為,一方面依賴于入侵模式庫的完備性,另一方面也取決于能否對網(wǎng)絡(luò)上的全部數(shù)據(jù)包進行監(jiān)聽和分析。在IDS中,截獲網(wǎng)絡(luò)的每一個數(shù)據(jù)包,并分析、匹配其中是否具有某種攻擊的特征需要花費大量的時間和系統(tǒng)資源。由于新的攻擊方法層出不窮,新的漏洞不斷被發(fā)現(xiàn),入侵模式庫需及時更新,否則會造成系統(tǒng)漏報。然而入侵模式庫的不斷更新必將使其變得越來越龐大,對整個模式庫中的所有模式進行一次匹配耗費的時間也就越長,從而不可避免地會降低檢測效率。可以看出,隨著網(wǎng)絡(luò)規(guī)模的不斷擴大及攻擊手段的不斷翻新,網(wǎng)絡(luò)傳送的數(shù)據(jù)包數(shù)量不斷增加,入侵模式庫不斷膨脹,采用傳統(tǒng)模式匹配方法的IDS的性能將呈線性下降。
為了解決上述問題,本文提出將漏洞掃描技術(shù)與入侵檢測技術(shù)相結(jié)合。漏洞掃描也稱安全性評估或脆弱性分析[2]。其主要通過對整個網(wǎng)絡(luò)范圍掃描發(fā)現(xiàn)網(wǎng)絡(luò)中存在的漏洞,及時給出修補方案,防止黑客利用該漏洞進行入侵活動。它是為了降低系統(tǒng)安全風(fēng)險而發(fā)展起來的一種安全技術(shù),是一種防患于未然的主動式安全防御技術(shù)。通過漏洞掃描與網(wǎng)絡(luò)入侵檢測系統(tǒng)的聯(lián)動,系統(tǒng)定期進行漏洞掃描;根據(jù)掃描結(jié)果對網(wǎng)絡(luò)中的安全漏洞及時進行修補;然后將掃描結(jié)果傳送給IDS;IDS將模式庫中與已得到修補的安全漏洞相關(guān)的攻擊特征刪除,以縮減模式庫規(guī)模,縮短模式匹配時間。系統(tǒng)可以在對漏洞庫更新的同時,檢索模式庫。對于新發(fā)現(xiàn)的安全漏洞,在模式庫中動態(tài)增加其攻擊特征,從而實現(xiàn)模式庫的自動實時更新,達到提高IDS檢測效率的目的。
1漏洞掃描與入侵檢測聯(lián)動的系統(tǒng)模型
在該模型中,漏洞掃描的工作過程如下:
(1)漏洞庫更新。由于新的安全漏洞不斷被發(fā)現(xiàn),每次進行漏洞掃描之前,應(yīng)先對漏洞庫進行更新。同時將新發(fā)現(xiàn)的安全漏洞信息傳送給IDS的模式庫更新模塊,以便于IDS的模式庫動態(tài)更新。
(2)收集信息。采用網(wǎng)絡(luò)掃描/主機掃描方式,完成對網(wǎng)絡(luò)、主機信息的收集。這些信息包括主機提供的服務(wù)及軟件版本、端口分配,操作系統(tǒng)的版本類型及補丁版本、系統(tǒng)內(nèi)核、文件屬性設(shè)置、網(wǎng)絡(luò)協(xié)議版本等。
(3)漏洞分析。將收集到的信息與漏洞庫中的信息進行比對,并將分析結(jié)果存放于結(jié)果分析庫。
(4)漏洞修補。漏洞管理模塊從結(jié)果分析庫中取出分析結(jié)果,生成相應(yīng)的報表;針對發(fā)現(xiàn)的漏洞,提出需要采取的補救措施,對系統(tǒng)漏洞進行修補。
(5)結(jié)果傳輸。漏洞管理模塊將掃描結(jié)果傳送給IDS的模式庫更新模塊。
與漏洞掃描實現(xiàn)聯(lián)動的IDS工作過程如下:
(1)網(wǎng)絡(luò)/主機數(shù)據(jù)采集。收集網(wǎng)絡(luò)數(shù)據(jù)包和主機的系統(tǒng)日志、審計記錄等信息,并轉(zhuǎn)換成相應(yīng)的格式。
(2)入侵檢測。采用基于協(xié)議分析的模式匹配方法,對采集到的數(shù)據(jù)進行檢測,并將檢測結(jié)果傳送給響應(yīng)與恢復(fù)模塊。
(3)入侵響應(yīng)。響應(yīng)與恢復(fù)模塊根據(jù)檢測到的攻擊類型,采取相應(yīng)的響應(yīng)或恢復(fù)措施。這些措施包括報警、切斷網(wǎng)絡(luò)連接、關(guān)閉或重新啟動機器、中斷用戶會話、入侵追蹤等。
(4)模式庫更新。模式庫更新模塊完成模式庫的動態(tài)更新。它包括兩個方面內(nèi)容:①在每次漏洞檢測完成后,模式庫更新模塊根據(jù)漏洞管理模塊傳送的掃描結(jié)果,將模式庫中與已得到修補的漏洞相關(guān)的模式刪除;同時對于漏洞庫更新時新發(fā)現(xiàn)的安全漏洞,在模式庫增加相應(yīng)的攻擊模式。②對于不斷出現(xiàn)的新的攻擊手段,模式庫更新模塊定期對模式庫進行升級維護。
2漏洞掃描與IDS的聯(lián)動實現(xiàn)
2.1漏洞掃描與IDS之間的通信
當(dāng)漏洞掃描完成后,通過一個開放接口并按照固定的協(xié)議將掃描結(jié)果傳送給IDS,實現(xiàn)與IDS的通信。對于漏洞掃描與IDS之間的通信,應(yīng)考慮如下幾個方面:
(1)互操作性。隨著網(wǎng)絡(luò)安全技術(shù)的不斷發(fā)展,IDS與防火墻、漏洞掃描等其他安全產(chǎn)品之間的互操作性要求已日益突出[3,4]。通用消息格式與通信協(xié)議的引入將為IDS與其他安全產(chǎn)品之間的信息交換與協(xié)同防御提供有效的協(xié)同通信機制,從而全面增強整個網(wǎng)絡(luò)的安全特性。
(2)可擴展性。由于新的攻擊方法及手段層出不窮,傳輸?shù)男畔?yīng)有標(biāo)準(zhǔn)的格式以支持系統(tǒng)擴展。
(3)安全性。采取有效的安全措施,確保漏洞掃描與IDS之間信息傳輸?shù)谋C苄浴⒄鎸嵭院屯暾浴*?/p>
根據(jù)以上要求,在系統(tǒng)的通信模型中,采用面向?qū)ο蟮募夹g(shù),以符合國際標(biāo)準(zhǔn)的XML作為定義語言,對傳送的消息進行形式化描述,同時通過安全通信隧道傳送消息。系統(tǒng)采用的通信機制如圖2所示。
安全通信隧道的建立分為四個步驟:
(1)通信雙方互致問候消息,交換參數(shù),協(xié)商隧道的建立方式;
(2)通信雙方協(xié)商安全策略,包括SSL驗證和TLS傳輸加密協(xié)商;
(3)雙方采用安全策略互致問候消息,進行身份認證;
(4)建立安全通信隧道,開始傳送消息。
2.2通信安全機制
在協(xié)同通信過程中,傳送的是安全敏感信息,因而傳輸過程應(yīng)確保其真實性、完整性和不可竄改性。采用安全通道隧道提供強壯的認證和加密通信的優(yōu)點在于:
(1)數(shù)據(jù)在傳送前首先通過認證,確保漏洞掃描與IDS之間的信息交換是建立在安全通信隧道上的,保證信息在傳送過程中不被竊取;
(2)數(shù)據(jù)在傳送時加密,因此沒有任何明文數(shù)據(jù)在網(wǎng)絡(luò)中傳送。
3系統(tǒng)實現(xiàn)
系統(tǒng)的開發(fā)平臺為Windows 2000 Professional,開發(fā)工具為Visual C++,采用基于插件的編程技術(shù)。插件技術(shù)是現(xiàn)代軟件設(shè)計思想的體現(xiàn)。采用插件技術(shù)可以減少系統(tǒng)開發(fā)所需的費用和時間,而且有利于提高系統(tǒng)的可維護性和可擴展性。插件通過在接口中定義的方法來提供服務(wù)。本質(zhì)上,所有插件均通過應(yīng)用程序提供的API來向應(yīng)用程序添加用戶接口,取得應(yīng)用程序的數(shù)據(jù)或向應(yīng)用程序提供數(shù)據(jù)。插件在應(yīng)用時被加載,不需要時被釋放。
3.1系統(tǒng)使用的數(shù)據(jù)格式
3.1.1漏洞庫格式
漏洞庫中存放的是公開的已知漏洞。為了便于分析模塊的搜索比對,漏洞庫中漏洞的分類是按平臺、協(xié)議、服務(wù)類型、數(shù)據(jù)庫等進行劃分的。
對于漏洞掃描而言,建立一個易于擴充的、完備的漏洞庫非常重要。要求漏洞庫能夠不斷更新。由于各網(wǎng)絡(luò)安全公司及組織對漏洞命名沒有統(tǒng)一的標(biāo)準(zhǔn),這就給資源共享帶來了一定的困難。Mitre對漏洞做了一些標(biāo)準(zhǔn)化工作,形成了CVE列表[5],并得到Microsoft、Cisco、Sun、IBM等眾多廠商及組織的支持。為了便于漏洞庫的動態(tài)更新,本文對漏洞庫中漏洞的命名采用了CVE列表。漏洞庫的漏洞ID被系統(tǒng)內(nèi)部使用,與入侵模式庫中的漏洞ID一致。
漏洞庫中每項記錄的數(shù)據(jù)結(jié)構(gòu)如下:
typedef struct VUL_RECORD
{int VuID;//漏洞ID
char VuName[50];//漏洞名字
char VuAlias[50];//漏洞別名
char VuCVE[30];//CVE編號
char VuRemote[6];//遠程
char VuLocal[6];//本地
char VuSystem[100];//受影響的系統(tǒng)
intVuLevel;//風(fēng)險等級
char VuRealeseData[15];//發(fā)布日期
char VuUpdateData[15];//更新日期
char VuSuggestion[1024];//修補方案及建議
char VuSiteL[128];//補丁連接地址
char VuRealeseSite[128];//發(fā)布網(wǎng)址(來源)
char VuReference[128];//其他參考資源
char VuTestfile[100];//測試源碼(目錄/txt文件名)
}VUL_RECORD;
漏洞列表結(jié)構(gòu)如下:
typedef struct VUL_LIST
{ vul_record vul_info;
struct vul_list *next
}VUL_LIST;
3.1.2結(jié)果分析庫格式
結(jié)果分析庫針對掃描的每一目標(biāo)都會生成日志記錄,存放在結(jié)果分析庫中。其數(shù)據(jù)結(jié)構(gòu)如下:
typedef struct result_record
{ char Scan_Data[15];//掃描日期
char dName[50];//目標(biāo)主機名或IP
char dOS[50];//目標(biāo)主機運行操作系統(tǒng)及版本
struct PORT_LIST*Port_List;//開放端口列表
struct VUL_LIST*Vul_List;//漏洞列表
}result_record;
3.1.3入侵模式庫格式
入侵模式庫中存放的是已知各種攻擊手段的主要特征,采用鏈表形式存儲。為了便于根據(jù)漏洞掃描的結(jié)果對入侵模式庫進行檢索更新,入侵模式庫中應(yīng)加入漏洞ID、CVE編號等關(guān)聯(lián)字段。
入侵模式的數(shù)據(jù)結(jié)構(gòu)如下:
typedef struct INTRUSION_PATTERN
{ char intru_sig[1024]; //入侵模式
int VuID; //漏洞ID
char VuCVE[30]; //CVE編號
char flag[1]; //檢測標(biāo)志位
}INTRUSION_PATTERN
入侵模式鏈的數(shù)據(jù)格式如下:
typedef struct INTRUSION_LIST
{ INTRUSION_PATTERN intrusion_info;
struct INTRUSION_LIST *next;
}INTRUSION_LIST;
入侵模式庫的記錄格式如下:
typedef struct Intrusion_Library
{ char srcIP[20];//源IP地址
char srcPort[8];//源端口號
char desIP[20];//目標(biāo)IP地址
char desPort[8];//目標(biāo)端口號
char protocol_id[2];//采用協(xié)議編號
struct INTRUSION_LIST *intrusion_list//入侵模式鏈表
} Intrusion_Library;
3.2入侵模式庫更新
由于新的安全漏洞不斷被發(fā)現(xiàn),利用這些新漏洞的入侵方式也將不斷出現(xiàn)。入侵模式庫也必須不斷更新完善,才能檢測到這些新的攻擊手段。對入侵模式庫的這種更新可通過向入侵模式庫中增添新的入侵模式記錄來完成。
另外,當(dāng)漏洞掃描完成后,IDS應(yīng)根據(jù)漏洞掃描結(jié)果將入侵模式庫中與已被修補的漏洞相關(guān)的入侵模式打上標(biāo)記,以減少檢測時的模式匹配量。入侵模式庫更新時,可通過漏洞分析結(jié)果庫中的漏洞ID號,在入侵模式庫中進行搜索,查找匹配記錄。若有匹配記錄,則將模式庫中該記錄的flag值置為0,表示該模式在入侵檢測時無須進行匹配。其更新算法如下:
void intrusion_pattern_update(VUL_LIST*p,INTRUSION_LIST*s)
{ int i;j
struct VUL_LIST *p;
struct INTRUSION_LIST *s;
while p->next<>1 //漏洞鏈不為空
{p=p->next;
i=p->vul_info.VuID; //將漏洞鏈中的漏洞ID賦予變量i
While s->next<>1 //入侵模式鏈不為空
{s=s->next;
j=s->intrusion_info.VuID;
//將入侵模式鏈中的漏洞ID賦予變量j
if (i==j)
s->intrusion_info.flag=0; //入侵檢測標(biāo)志置為0;
}
}
}
4結(jié)束語
將多種網(wǎng)絡(luò)安全技術(shù)手段無縫集成,形成綜合網(wǎng)絡(luò)安全防護體系,是網(wǎng)絡(luò)安全技術(shù)的發(fā)展趨勢。漏洞掃描與IDS聯(lián)動,一方面可以增強被監(jiān)控主機的抗入侵能力;另一方面,入侵檢測系統(tǒng)根據(jù)漏洞掃描結(jié)果,可以實現(xiàn)模式庫的實時動態(tài)更新,從而極大地減少模式匹配的數(shù)量,有效地提高檢測效率。
參考文獻:
[1]Kumar G. Classification and detection of computer intrusion[D]. USA:Dept. of Computer Science,Purdue University,1995.
[2]徐漫江.一種主機與網(wǎng)絡(luò)相結(jié)合的漏洞掃描工具的設(shè)計與實現(xiàn)[J].雷達與對抗,2002(2):65-68.
[3]桂春梅,鐘求喜,王懷民.基于UML的防火墻和入侵檢測聯(lián)動模型的研究[J].計算機工程與科學(xué),2004,26(11):22-25,79
[4]張興東,胡華平,況曉輝,等.防火墻與入侵檢測系統(tǒng)聯(lián)動的研究與實現(xiàn)[J].計算機工程與科學(xué),2004,26(4):22-26.
[5]陳鐵明,蔡家楣,蔣融融,等.基于插件的安全漏洞掃描系統(tǒng)設(shè)計[J].計算機工程與設(shè)計,2004,25(2):194-196.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”