趙妙軍
(杭州師范大學錢江學院 計算機科學與技術專業(yè),浙江 杭州 310012)
一個合格的入侵檢測系統(tǒng)能大大簡化安全管理員的工作,保證網絡安全的運行。具體說來,入侵檢測系統(tǒng)的主要功能有以下幾點:監(jiān)測并分析用戶和系統(tǒng)的活動;核查系統(tǒng)配置和漏洞;評估系統(tǒng)關鍵資源和數(shù)據(jù)文件的完整性;識別已知的攻擊行為;統(tǒng)計分析異常行為;操作系統(tǒng)日志管理,并識別違反安全策略的用戶活動。
一個入侵檢測系統(tǒng)(IDS)的通用模型。它將一個入侵檢測系統(tǒng)分為以下組件:事件產生器(Event Generators);事件分析器(Event Analyzers);響應單元 (Response Units);事件數(shù)據(jù)庫(Event Databases)
CIDF將IDS需要分析的數(shù)據(jù)稱為事件(event),它可以是網絡中的數(shù)據(jù)包,也可以是從系統(tǒng)日志等其他路徑得到的消息。入侵檢測的通用模型見圖1:
圖1 入侵檢測的通用模型
入侵檢測系統(tǒng)的主要功能就是通過采集網絡數(shù)據(jù)對數(shù)據(jù)進行分析,發(fā)現(xiàn)入侵則進行實時報警且進行日志記錄,并且能夠動態(tài)配置檢測規(guī)則,將配置信息記錄在數(shù)據(jù)庫中。數(shù)據(jù)流圖如圖2所示。
圖2 入侵檢測系統(tǒng)數(shù)據(jù)流程圖
預處理實現(xiàn)數(shù)據(jù)分析中的一個預處理功能,即根據(jù)目標主機的IP地址將檢測的規(guī)則分組,并將采集到的網絡數(shù)據(jù)包分發(fā)為所屬分組。系統(tǒng)的數(shù)據(jù)、預處理、檢測規(guī)則等的初始化都是在捕獲數(shù)據(jù)包前進行的。一旦初始化完畢,那么就開始捕獲數(shù)據(jù)包,每收到一個數(shù)據(jù)包都會首先調用預處理程序中的函數(shù)進行處理后,再調用規(guī)則函數(shù)。即首先根據(jù)數(shù)據(jù)包的協(xié)議類型定位規(guī)則函數(shù),其次調用規(guī)則函數(shù)進行規(guī)則的逐一匹配,即首先匹配規(guī)則頭,若匹配則繼續(xù)匹配規(guī)則選項,若不匹配,直接匹配下一條規(guī)則。本系統(tǒng)采用模塊化設計方法,依據(jù)入侵子系統(tǒng)的功能需求和系統(tǒng)結構將系統(tǒng)劃分成如下功能模塊,如圖3:
圖3 系統(tǒng)功能模塊
各模塊功能如下:
采集模塊:網絡數(shù)據(jù)采集與包過濾。
分析模塊:對數(shù)據(jù)包進行包分析和模式匹配、判斷網絡入侵。
響應模塊:控制臺屏幕報警、控制臺警報報警、發(fā)送警報由防火墻阻斷攻擊。
系統(tǒng)管理模塊:控制系統(tǒng)的啟動和系統(tǒng)的停止。
系統(tǒng)設置模塊:配置入侵檢測策略。
日志管理模塊:記錄系統(tǒng)日志和記錄網絡攻擊日志:讀取日志、分析日志和歸類綜合日志內容。
幫助模塊:提供入侵檢測系統(tǒng)的一些幫助文檔。
WinPcap是面向Win32平臺的進行數(shù)據(jù)包捕獲和網絡分析的一個架構。它包括一個核心層的數(shù)據(jù)包過濾器,一個底層的動態(tài)連接庫(packet.d 11)和一個高層并且系統(tǒng)獨立的動態(tài)連接庫(wpcap.dll)。數(shù)據(jù)包捕獲是一個面向底層的機制,它需要與網絡適配器、操作系統(tǒng)、特別是網絡應用程序進行嚴格的交互。
NPF(Netgroup Packet Filter)是WinPcap的核心部分。它的主要功能就是捕獲數(shù)據(jù)包,還可以發(fā)送數(shù)據(jù)包、存儲數(shù)據(jù)包以及對網絡進行統(tǒng)計分析。NPF工作在內核層,有一個網絡轉發(fā)部件,從網卡驅動程序收集網絡數(shù)據(jù)包,即可以發(fā)送給過濾部件,對網絡數(shù)據(jù)包進行過濾,也可以發(fā)給統(tǒng)計部件,對網絡進行統(tǒng)計分析,還可以發(fā)送給存儲部件,把網絡數(shù)據(jù)包直接存儲到磁盤。數(shù)據(jù)包在NPF中使用了緩存機制,主要是為了提高效率和速度。
NPF和NDIS(Network Driver Interface Specification)有密切的關系。NDIS是一個標準,它定義了網絡適配器(確切地說,是管理網絡適配器的驅動程序)和協(xié)議驅動程序之間的通信規(guī)范。NDIS的主要目的是使協(xié)議驅動程序獨立于網絡適配器的特殊性和Win32操作系統(tǒng)的特殊性來接收網絡上的數(shù)據(jù)包或發(fā)送數(shù)據(jù)包到網絡上。
Winpcap使用NPF部件捕獲數(shù)據(jù)包。為了用戶層的應用程序能利用核心驅動程序所提供的服務,還提供一個接口。WinPcap提供了兩種不同的動態(tài)連接庫:packet.dll和wpcap.dll來提供這種服務。packet.dll提供了一個底層的API使用這個獨立于微軟操作系統(tǒng)的編程接口即可直接訪問核心驅動程序提供的功能。wpcap.dll提供了一個更加強大的用于高層捕獲的函數(shù)子集,它和libpcap,并允許以一種獨立于下層的網絡硬件和操作系統(tǒng)的方式來捕獲數(shù)據(jù)包。
本系統(tǒng)就是運用了wpcap.dll實現(xiàn)了高層的數(shù)據(jù)包捕獲。通過調用一系列的wpcap.dll函數(shù),實現(xiàn)數(shù)據(jù)包采集工作。過程如下:首先調用函數(shù)pcap_findalldevs ex()獲得本機網卡名,接著調用函數(shù)pcap_open()獲得網長句柄,最后調用函數(shù)pcap_next_ex()獲得網絡數(shù)據(jù)包句柄,接收網絡數(shù)據(jù)包。出于數(shù)據(jù)分析時只需要IP包,所以數(shù)據(jù)采集只接收IP包,其它數(shù)據(jù)包則丟棄。
木系統(tǒng)基于誤用檢測的實現(xiàn):事件判決引擎依據(jù)協(xié)議解碼器提交的網絡協(xié)議數(shù)據(jù)進行分析,并從這些網絡活動中找出預先定義的攻擊模式,一旦發(fā)現(xiàn)其中含有攻擊事件的特征碼,即將此事件提交“響應系統(tǒng)”。
本系統(tǒng)基于異常檢測的實現(xiàn):對攻擊規(guī)則進行初始化存儲的同時也根據(jù)配置初始化相應的計數(shù)器、定時器,用來記錄特征包的到達。特征包到達速度判決器對每一種要檢測的初始化一個“先進先出”隊列,記錄一定數(shù)量的包到達的時間戳,對符合條件的包的到達時問進行登記,并對一段時間內到達包進行計數(shù),一旦超出預先設置的門限值,即將此事件提交“響應系統(tǒng)”。
誤用檢測以網絡協(xié)議數(shù)據(jù)為檢測數(shù)據(jù)源,異常檢測以特征包的到達速度為檢測數(shù)據(jù)樣本。通過這種方式綜合運用了兩種檢測技術,實現(xiàn)誤用、異常技術的互補,最大限度地阻斷網絡入侵行為,解決工DS檢測效率低的問題,提高工DS的綜合檢測能力,很好的控制了檢測系統(tǒng)產生的誤報、漏報現(xiàn)象。
檢測引擎通過循環(huán)捕獲數(shù)據(jù)包,對網絡流量進行實時監(jiān)控的過程從程序設計的角度看是一個無限循環(huán)的過程,這個過程必將耗盡系統(tǒng)資源,使系統(tǒng)無法響應其它事件。為了能夠主動控制過程的開始和中止,WNIDS系統(tǒng)采用了vc++提供的線程技術,采用主線程響應用戶輸入,兩個檢測線程分別控制誤用、異常檢測的技術。
[1]薛靜鋒,入侵檢測技術,機械土業(yè)出版社,2004
[2]韓東海等著,《入侵檢測系統(tǒng)實例剖析》[M],清華大學出版社,2002
[3]李曉鶯,協(xié)議分析在入侵檢測系統(tǒng)中的應用,網絡安全技術與應用,2002