有在用win 2003系統的用戶會涉及到一個叫IDS的技術,在有些時候這個技術的作用是很大的,當然IDS的技術手段其實並不很神秘,接下來本文會用一種“順籐摸瓜”的脈絡,給大家介紹一個較簡單的IDS入門級構架。從市場分布、入手難易的角度來看,選擇NIDS作為范例進行部署,比較地恰當。本文以完全的Windows平台來貫穿整個入侵檢測流程,由於篇幅所限,以定性分析角度來陳述。
預備知識
IDS:Intrusion Detection System(入侵檢測系統),通過收集網絡系統信息來進行入侵檢測分析的軟件與硬件的智能組合。
對IDS進行標准化工作的兩個組織:作為國際互聯網標准的制定者IETF的Intrusion Detection working Group(IDWG,入侵檢測工作組)和Common Intrusion Detection Framework(CIDF,通用入侵檢測框架)。
IDS分類:Network IDS(基於網絡)、Host-based IDS(基於主機)、Hybrid IDS(混合式)、Consoles IDS(控制台)、File Integrity Checkers(文件完整性檢查器)、Honeypots(蜜罐)。事件產生系統
根據CIDF闡述入侵檢測系統(IDS)的通用模型思想,具備所有要素、最簡單的入侵檢測組件如圖所示。根據CIDF規范,將IDS需要分析的數據統稱為Event(事件),Event既可能是網絡中的Data Packets(數據包),也可能是從System Log等其他方式得到的Information(信息)。
沒有數據流進(或數據被采集),IDS就是無根之木,完全無用武之地。
作為IDS的基層組織,事件產生系統大可施展拳腳,它收集被定義的所有事件,然後一股腦地傳到其它組件裡。在Windows環境下,目前比較基本的做法是使用Winpcap和WinDump。
大家知道,對於事件產生和事件分析系統來說,眼下流行采用Linux和Unix平台的軟件和程序;其實在Windows平台中,也有類似Libpcap(是Unix或Linux從內核捕獲網絡數據包的必備軟件)的工具即Winpcap。
Winpcap是一套免費的, 基於Windows的網絡接口API,把網卡設置為“混雜”模式,然後循環處理網絡捕獲的數據包。其技術實現簡單,可移植性強,與網卡無關,但效率不高,適合在100 Mbps以下的網絡
相應的基於Windows的網絡嗅探工具是WinDump(是Linux/Unix平台的Tcpdump在Windows上的移植版),這個軟件必須基於Winpcap接口(這裡有人形象地稱Winpcap為:數據嗅探驅動程序)。使用WinDump,它能把匹配規則的數據包的包頭給顯示出來。你能使用這個工具去查找網絡問題或者去監視網絡上的狀況,可以在一定程度上有效監控來自網絡上的安全和不安全的行為。
這兩個軟件在網上都可以免費地找到,讀者還可以查看相關軟件使用教程。
下面大略介紹一下建立事件探測及采集的步驟
1、裝配軟件和硬件系統。根據網絡繁忙程度決定是否采用普通兼容機或性能較高的專用服務器;安裝NT核心的Windows操作系統,推薦使用Windows Server 2003企業版,如果條件不滿足也可使用windows 2000 Advanced Server。分區格式建議為NTFS格式。
2、服務器的空間劃分要合理有效,執行程序的安裝、數據日志的存儲,兩者空間最好分別放置在不同分區。
3、Winpcap的簡單實現。首先安裝它的驅動程序,可以到它的主頁或鏡像站點下載WinPcap auto-installer (Driver+DLLs),直接安裝。
注:如果用Winpcap做開發,還需要下載 Developer's pack。
WinPcap 包括三個模塊:第一個模塊NPF(Netgroup Packet Filter),是一個VxD(虛擬設備驅動程序)文件。其功能是過濾數據包,並把這些包完好無損地傳給用戶態模塊。第二個模塊packet.dll為Win32平台提供了一個公共接口,架構在packet.dll之上,提供了更方便、更直接的編程方法。第三個模塊 Wpcap.dll不依賴於任何操作系統,是底層的動態鏈接庫,提供了高層、抽象的函數。具體使用說明在各大網站上都有涉及,如何更好利用Winpcap需要較強的C環境編程能力。
4、WinDump的創建。安裝後,在Windows命令提示符模式下運行,用戶自己可以查看網絡狀態,恕不贅述。
如果沒有軟件兼容性問題、安裝和配置正確的話,事件探測及采集已能實現。