針對無線網絡的入侵檢測系統設計方法研究
3.1 數據預處理模塊
預處理模塊對得到的數據包進行預處理, 一方面可發現入侵信息, 另一方面為檢測分析模塊做最后的準備。預處理模塊采用了插件技術, 可以很方便地增加功能, 使系統具有可擴展性。與預處理相關的函數以鏈表的形式存在于動態鏈接庫中, 如圖6 所示。
圖6 數據預處理模塊處理過程
預處理函數是由控制管理器來配置的。控制中心將配置規則和預處理函數一起傳送到各檢測引擎, 檢測引擎在進行規則解析時, 自行識別預處理指令, 并作相應的處理。在IP 報文的首部包含了分片和重組的信息, 如圖7 所示。
圖7 IP 包(32 位) 格式
(1)IdenTIficATIon : 唯一標識發送端的一個IP 報文, 如果需要分片, 則所有分片具有相同的標識, 這樣目標主機便能夠根據源主機的IP 地址以及該標識來組合報文;(2)R: 保留未用;(3)D: “ 不分片” 位, 置為1, 則IP 層不將數據報分片, 只有為0 時才允許分片;(4)F: “ 更多分片” 位, 為1 表示后面還有數據報的更多分片, 為0 則表示這是數據報的最后一個分片;(5)Fragment Offset : 分片偏移, 指出該分片數據在原始數據報文( 未分片前) 相對于起點的位置, 實際位置為偏移值乘以8, 如為0 則表示這是分片后的第一個信息包, 放在組合后分組的最前面。
IP 重組的函數中定義了每一個分片的結構為:
STruct IpFrag
{
dint offset ; //IP 分片的偏移值
int end : // 分片的最后字節
int len ; // 分片的長度
u char mff ; // 更多的分片標志
unsigned char *ptr ; // 指向分片包中的數據
struct IpFrag *ipf next ;//鏈接的下一個分片
};
些分片形成一個單向鏈表, 表示一個尚未組裝完的分片隊列, 它屬于一個IP 報文, 而分片鏈表的頭指針放在IpHeader 結構中:
struct IpHeader
{
struct IpFrag ; // 第一個IP 分片
int len ; // 報文長度
struct timer list timer ; // 定時器
u_char Proto ; // 協議類型
u_short Ip_ttl ; // 生存時間
u_short id ; //IP 標識
struct in addr Ip-Src ,Ip_Dst ; //IP 報文的源, 目的
IP 地址
struct IpHeader *next ; // 下一個IP 報文
} ;
IpHeader 描述還未收到全部分片報文結構, 多個Ip-Header 構成的鏈表形成一個重裝鏈表, 等待其他分片到達后重裝。
3.2 數據檢測分析模塊
檢測分析模塊對預處理模塊提交的數據, 運用匹配算法和規則庫中的規則進行比較分析, 從而判斷是否有入侵行為。檢測分析模塊是檢測引擎的核心, 它將從數據采集模塊傳來的數據順著規則鏈表與入侵規則進行比較, 如果匹配成功, 則說明檢測到了入侵, 同時產生報警。其流程如圖8 所示。
圖8 數據檢測分析模塊流程圖
3.3 規則解析模塊
規則解析模塊將從控制中心傳送過來的規則按照一定的數據結構存儲在規則庫中, 作為對入侵行為進行判斷分析的知識庫。在該模塊的設計中, 本文采用動態生成鏈表的方式構建規則的語法樹, 把所選擇的規則存儲在數據檢測器所在的主機內存中, 規則鏈表的結構如圖9 所示。
第一層是具有相同處理動作(Alert ( 警告),Log ( 記錄),Pass( 忽略)) 的節點, 以RuleListNode 結構表示。其次,是在具有相同處理動作的基礎上, 按照不同的協議類型(IP, TCP, ICMP 和UDP) 再分成幾條鏈表。而在每條鏈表中, 具有相同源IP 地址、目的IP 地址、源端口和目的端口的規則頭節點RuleTreeNode 構成了結構圖的第二層。以下的幾層由具有相同源IP 地址、目的IP 地址、源端口和目的端口所對應的規則選項節點即tTreeNode 組成。例如在一組規則中有45 條檢測CGI-BIN 探測活動的規則, 而它們都具有相同的源/目的IP 地址及端口號, 則它們在鏈表中可以將這些共同屬性壓縮到一個單獨的RuleTreeNode 節點中, 而每個不同的屬性( 規則選項) 保存在與RuleTreeNode 節點相連的OptTreeNode 節點中。這樣的結構方式, 將大大有助于提高檢測速度。
建立規則鏈表的流程如下: 首先讀取規則文件, 檢查規則文件是否存在并可讀, 然后依次讀取每一條規則, 同時進行多行規則的整理; 對規則進行解析, 按類型進行分支處理, 并用相應的規則語法表示, 建立規則語法樹; 最后進行一些完善操作, 如連接所有的動態規則,進行規則樹的完整性檢查。其中解釋規則并將其添加到規則鏈表的流程如圖10 所示。
圖10 規則解析模塊流程
作為個人通信的一個重要的組成部分, 無線局域網在現實及未來的社會生活中將得到廣泛的應用。無線入侵檢測技術也將必然隨著計算機技術的發展而發展, 隨著無線網絡的普及和移動設備的性能的提高而得到進一步的發展。下一步將在本文研究的基礎上, 重點解決入侵檢測系統的應用瓶頸問題, 以大幅度提升檢測準確性以及大量應用網絡環境下的系統性能。
評論