1IDS基本原理
入侵檢測系統(tǒng)(IDS)是一種主動(dòng)保護(hù)自己免受攻擊的網(wǎng)絡(luò)安全系統(tǒng)。入侵檢測系統(tǒng)對網(wǎng)絡(luò)行為進(jìn)行實(shí)時(shí)檢測,可以記錄和阻止某些網(wǎng)絡(luò)行為,被認(rèn)為是防火墻之后的第二道安全閘門,可與防火墻配合工作。
IDS掃描當(dāng)前網(wǎng)絡(luò)的活動(dòng),監(jiān)視和記錄網(wǎng)絡(luò)的流量,根據(jù)定義好的規(guī)則來過濾經(jīng)主機(jī)網(wǎng)卡的流量,并提供實(shí)時(shí)報(bào)警。入侵檢測系統(tǒng)至少應(yīng)包括3個(gè)功能模塊:
提供事件記錄流的信息源、發(fā)現(xiàn)入侵跡象的分析引擎和基于分析引擎的響應(yīng)部件。公共入侵檢測框架CIDF闡述了一個(gè)入侵檢測系統(tǒng)的通用模型,即入侵檢測系統(tǒng)的四個(gè)組件:事件產(chǎn)生器、事件分析器、響應(yīng)單元和事件數(shù)據(jù)庫,共通用模型如圖1所示。CIDF將需要分析的數(shù)據(jù)統(tǒng)稱為事件。

2無線網(wǎng)絡(luò)入侵檢測系統(tǒng)架構(gòu)
2.1入侵檢測體系結(jié)構(gòu)
目前比較成熟的入侵檢測方法是異常檢測和誤用檢測兩種類型。異常檢測是根據(jù)使用者的行為或資源使用狀況的正常程度來判斷是否入侵。異常檢測與系統(tǒng)相對無關(guān),通用性較強(qiáng),其主要缺陷是誤檢率較高。誤用檢測有時(shí)也稱為特征分析或基于知識的檢測,根據(jù)已定義的入侵模式,判斷在實(shí)際的安全審計(jì)數(shù)據(jù)中是否出現(xiàn)這些入侵模式,這種檢測準(zhǔn)確度較高,檢測結(jié)果有明確的參照性,便于決策響應(yīng),缺陷是無法檢測未知的攻擊類型。無線網(wǎng)絡(luò)的IDS系統(tǒng),必須考慮兩者的互補(bǔ)性結(jié)合使用,如圖2所示。

信息獲取和預(yù)處理層主要由主機(jī)探頭(HSeNSor)和網(wǎng)絡(luò)探頭(NSensor)組成。綜合分析決策層包含分析器(AnalysisSvr)和數(shù)據(jù)庫(DB),在獲取數(shù)據(jù)進(jìn)行預(yù)處理后,進(jìn)一步詳細(xì)分析和最后的決策融合,從而制訂響應(yīng)策略和方式。控制管理層則是進(jìn)行人機(jī)交互、控制管理、報(bào)警融合以及態(tài)勢分析。
2.2入侵單元檢測模型
為滿足無線網(wǎng)絡(luò)的需要,入侵檢測與響應(yīng)系統(tǒng)應(yīng)采用分布式結(jié)構(gòu),且協(xié)同工作。網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都參與入侵檢測與響應(yīng),每個(gè)節(jié)點(diǎn)檢測本地入侵,鄰近節(jié)點(diǎn)進(jìn)行協(xié)作檢測。在系統(tǒng)的每個(gè)節(jié)點(diǎn)都有獨(dú)立的入侵檢測單元,每個(gè)單元能夠獨(dú)立運(yùn)行,監(jiān)測本地行為(包括用戶和系統(tǒng)的行為、節(jié)點(diǎn)間的通信行為),檢測來自本地的入侵,并發(fā)起響應(yīng)。這些入侵檢測單元共同組成無線網(wǎng)絡(luò)的入侵檢測系統(tǒng),如圖3所示。

數(shù)據(jù)采集模塊采集實(shí)時(shí)審計(jì)數(shù)據(jù),這些數(shù)據(jù)包含系統(tǒng)和用戶在節(jié)點(diǎn)內(nèi)部的操作行為、通過該節(jié)點(diǎn)的通信行為以及在通信范圍內(nèi)、通過該節(jié)點(diǎn)可觀察到的其他通信行為。協(xié)作檢測模塊的作用是傳送鄰近節(jié)點(diǎn)之間的入侵檢測狀態(tài)信息,利用最近接收到的其他節(jié)點(diǎn)的狀態(tài)信息,計(jì)算出本節(jié)點(diǎn)的入侵檢測狀態(tài)。協(xié)作檢測的步驟如圖4所示。

2.3分析器概念模型與系統(tǒng)部署
分析器概念模型如圖5所示。首先獲取來自主機(jī)探頭和網(wǎng)絡(luò)探頭的數(shù)據(jù)信息,然后采用特征檢測、異常檢測、統(tǒng)計(jì)分析、拒絕服務(wù)檢測等多種方法進(jìn)行并行分析,把分析的結(jié)果采用特定的融合算法進(jìn)行融合,從而得出分析結(jié)果。分析結(jié)果一方面通知控制管理層,另一方面通知響應(yīng)決策部分,驅(qū)動(dòng)響應(yīng)決策,并進(jìn)行物理定位。

IDS系統(tǒng)部署時(shí),主機(jī)探頭安裝在客戶端操作系統(tǒng)上,而網(wǎng)絡(luò)探頭則根據(jù)其地理環(huán)境情況適當(dāng)布置,分析機(jī)盡可能地放在用戶內(nèi)部網(wǎng)絡(luò),降低分析機(jī)的風(fēng)險(xiǎn),系統(tǒng)應(yīng)該部署在電磁波干擾小的地方,避免由于輻射信號不穩(wěn)定而帶來的影響。
3無線網(wǎng)絡(luò)入侵檢測系統(tǒng)核心模塊實(shí)現(xiàn)
分布式入侵檢測系統(tǒng)分為3個(gè)部件,(1)探測器。對應(yīng)信息采集和預(yù)警層,下設(shè)探頭和數(shù)據(jù)采集模塊;(2)分析器對應(yīng)綜合分析決策層,下設(shè)協(xié)議解碼模塊、預(yù)處理模塊和檢測分析模塊;(3)控制管理器。對應(yīng)控制管理層,下設(shè)規(guī)則解析模塊、日志模塊和響應(yīng)報(bào)警模塊。本文將重點(diǎn)介紹數(shù)據(jù)預(yù)處理、數(shù)據(jù)檢測與分析和規(guī)則解析三個(gè)模塊。
3.1數(shù)據(jù)預(yù)處理模塊
預(yù)處理模塊對得到的數(shù)據(jù)包進(jìn)行預(yù)處理,一方面可發(fā)現(xiàn)入侵信息,另一方面為檢測分析模塊做最后的準(zhǔn)備。預(yù)處理模塊采用了插件技術(shù),可以很方便地增加功能,使系統(tǒng)具有可擴(kuò)展性。與預(yù)處理相關(guān)的函數(shù)以鏈表的形式存在于動(dòng)態(tài)鏈接庫中,如圖6所示。

圖6數(shù)據(jù)預(yù)處理模塊處理過程
預(yù)處理函數(shù)是由控制管理器來配置的??刂浦行膶⑴渲靡?guī)則和預(yù)處理函數(shù)一起傳送到各檢測引擎,檢測引擎在進(jìn)行規(guī)則解析時(shí),自行識別預(yù)處理指令,并作相應(yīng)的處理。在IP報(bào)文的首部包含了分片和重組的信息,如圖7所示。

圖7IP包(32位)格式
?。?)IdenTIficATIon:唯一標(biāo)識發(fā)送端的一個(gè)IP報(bào)文,如果需要分片,則所有分片具有相同的標(biāo)識,這樣目標(biāo)主機(jī)便能夠根據(jù)源主機(jī)的IP地址以及該標(biāo)識來組合報(bào)文;(2)R:保留未用;(3)D:“不分片”位,置為1,則IP層不將數(shù)據(jù)報(bào)分片,只有為0時(shí)才允許分片;(4)F:“更多分片”位,為1表示后面還有數(shù)據(jù)報(bào)的更多分片,為0則表示這是數(shù)據(jù)報(bào)的最后一個(gè)分片;(5)FragmentOffset:分片偏移,指出該分片數(shù)據(jù)在原始數(shù)據(jù)報(bào)文(未分片前)相對于起點(diǎn)的位置,實(shí)際位置為偏移值乘以8,如為0則表示這是分片后的第一個(gè)信息包,放在組合后分組的最前面。
IP 重組的函數(shù)中定義了每一個(gè)分片的結(jié)構(gòu)為:
STruct IpFrag
{
dint offset ; //IP 分片的偏移值
int end : // 分片的最后字節(jié)
int len ; // 分片的長度
u char mff ; // 更多的分片標(biāo)志
unsigned char *ptr ; // 指向分片包中的數(shù)據(jù)
struct IpFrag *ipf next ;//鏈接的下一個(gè)分片
};
些分片形成一個(gè)單向鏈表,表示一個(gè)尚未組裝完的分片隊(duì)列,它屬于一個(gè)IP 報(bào)文,而分片鏈表的頭指針放在IpHeader 結(jié)構(gòu)中:
struct IpHeader
{
struct IpFrag ; // 第一個(gè)IP 分片
int len ; // 報(bào)文長度
struct timer list timer ; // 定時(shí)器
u_char Proto ; // 協(xié)議類型
u_short Ip_ttl ; // 生存時(shí)間
u_short id ; //IP 標(biāo)識
struct in addr Ip-Src ,Ip_Dst ; //IP 報(bào)文的源, 目的
IP 地址
struct IpHeader *next ; // 下一個(gè)IP 報(bào)文
} ;
IpHeader描述還未收到全部分片報(bào)文結(jié)構(gòu),多個(gè)Ip-Header構(gòu)成的鏈表形成一個(gè)重裝鏈表,等待其他分片到達(dá)后重裝。
3.2數(shù)據(jù)檢測分析模塊
檢測分析模塊對預(yù)處理模塊提交的數(shù)據(jù),運(yùn)用匹配算法和規(guī)則庫中的規(guī)則進(jìn)行比較分析,從而判斷是否有入侵行為。檢測分析模塊是檢測引擎的核心,它將從數(shù)據(jù)采集模塊傳來的數(shù)據(jù)順著規(guī)則鏈表與入侵規(guī)則進(jìn)行比較,如果匹配成功,則說明檢測到了入侵,同時(shí)產(chǎn)生報(bào)警。其流程如圖8所示。

圖8數(shù)據(jù)檢測分析模塊流程圖
3.3規(guī)則解析模塊
規(guī)則解析模塊將從控制中心傳送過來的規(guī)則按照一定的數(shù)據(jù)結(jié)構(gòu)存儲在規(guī)則庫中,作為對入侵行為進(jìn)行判斷分析的知識庫。在該模塊的設(shè)計(jì)中,本文采用動(dòng)態(tài)生成鏈表的方式構(gòu)建規(guī)則的語法樹,把所選擇的規(guī)則存儲在數(shù)據(jù)檢測器所在的主機(jī)內(nèi)存中,規(guī)則鏈表的結(jié)構(gòu)如圖9所示。

第一層是具有相同處理動(dòng)作(Alert(警告),Log(記錄),Pass(忽略))的節(jié)點(diǎn),以RuleListNode結(jié)構(gòu)表示。其次,是在具有相同處理動(dòng)作的基礎(chǔ)上,按照不同的協(xié)議類型(IP,TCP,ICMP和UDP)再分成幾條鏈表。而在每條鏈表中,具有相同源IP地址、目的IP地址、源端口和目的端口的規(guī)則頭節(jié)點(diǎn)RuleTreeNode構(gòu)成了結(jié)構(gòu)圖的第二層。以下的幾層由具有相同源IP地址、目的IP地址、源端口和目的端口所對應(yīng)的規(guī)則選項(xiàng)節(jié)點(diǎn)即tTreeNode組成。例如在一組規(guī)則中有45條檢測CGI-BIN探測活動(dòng)的規(guī)則,而它們都具有相同的源/目的IP地址及端口號,則它們在鏈表中可以將這些共同屬性壓縮到一個(gè)單獨(dú)的RuleTreeNode節(jié)點(diǎn)中,而每個(gè)不同的屬性(規(guī)則選項(xiàng))保存在與RuleTreeNode節(jié)點(diǎn)相連的OptTreeNode節(jié)點(diǎn)中。這樣的結(jié)構(gòu)方式,將大大有助于提高檢測速度。
建立規(guī)則鏈表的流程如下:首先讀取規(guī)則文件,檢查規(guī)則文件是否存在并可讀,然后依次讀取每一條規(guī)則,同時(shí)進(jìn)行多行規(guī)則的整理;對規(guī)則進(jìn)行解析,按類型進(jìn)行分支處理,并用相應(yīng)的規(guī)則語法表示,建立規(guī)則語法樹;最后進(jìn)行一些完善操作,如連接所有的動(dòng)態(tài)規(guī)則,進(jìn)行規(guī)則樹的完整性檢查。其中解釋規(guī)則并將其添加到規(guī)則鏈表的流程如圖10所示。

圖10規(guī)則解析模塊流程
作為個(gè)人通信的一個(gè)重要的組成部分,無線局域網(wǎng)在現(xiàn)實(shí)及未來的社會(huì)生活中將得到廣泛的應(yīng)用。無線入侵檢測技術(shù)也將必然隨著計(jì)算機(jī)技術(shù)的發(fā)展而發(fā)展,隨著無線網(wǎng)絡(luò)的普及和移動(dòng)設(shè)備的性能的提高而得到進(jìn)一步的發(fā)展。下一步將在本文研究的基礎(chǔ)上,重點(diǎn)解決入侵檢測系統(tǒng)的應(yīng)用瓶頸問題,以大幅度提升檢測準(zhǔn)確性以及大量應(yīng)用網(wǎng)絡(luò)環(huán)境下的系統(tǒng)性能。
