【賽迪網-IT技術報道】從現實來看,市場上所大行其道的IDS產品價格從數十萬到數百萬不等,這種相對昂貴的奶酪被廣為詬病,所導致的結果就是:一般中小企業並不具備實施IDS產品的能力,它們的精力會放在路由器、防火牆以及3層以上交換機的加固上;大中型企業雖然很多已經上了IDS產品,但IDS天然的缺陷導致其似乎無所作為。但我們還不能就此喜新厭舊,因為IDS是必需的一個過程,具有IDS功能的IPS很可能在幾年後徹底取代單一性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命令提示符模式下運行,用戶自己可以查看網絡狀態,恕不贅述。
如果沒有軟體兼容性問題、安裝和配置正確的話,事件探測及採集已能實現。
事件分析系統
由於我們的網絡大都用交換式以太網交換機連接,所以建立事件分析系統的目的是實現對多種網絡防火牆設備的探測,以及多種採集方式(如基於Snmp、Syslog資料信息的採集)日誌的支持,並提供一定的事件日誌處理,統計、分析和查詢功能。
事件分析系統是IDS的核心模塊,主要功能是對各種事件進行分析,從中發現違反安全策略的行為,如何建立是重點也是難點。如果自己能或與人合作編寫軟體系統,就需要做好嚴謹的前期開發準備,如對網絡協議、黑客攻擊、系統漏洞有著比較清晰的認識,接著開始制定規則和策略,它應該基於標準的技術標準和規範,然後優化算法以提高執行效率,建立檢測模型,可以模擬進行攻擊及分析過程。
事件分析系統把檢測引擎駐留在監視網段中,一般通過三種技術手段進行分析:模式匹配、協議分析和行為分析。當檢測到某種誤用模式時,產生對應的警告信息並發送給響應系統。目前來看,使用協議分析是實時檢測的最好方式。
這個系統一種可能的方式是由協議分析器作為主體,可以在現成的、開放式的協議分析工具包基礎上來構建;協議分析器可以顯示分組級網絡傳輸流,基於網絡協議規則的警告進行自動分析來快速探測攻擊的存在;由此,網絡程序員和管理員可監控並分析網絡活動,從而主動檢測並定位故障。用戶可以嘗試一下一個叫Ethereal的免費網絡協議分析器,它支持Windows系統。用戶可以對由事件產生系統抓取後保存在硬碟上的資料進行分析。你能交互式地瀏覽抓取到的資料包,查看每一個資料包的摘要和詳細信息。Ethereal有多種強大的特徵,如支持幾乎所有的協議、豐富的過濾語言、易於查看TCP會話經重構後的資料流等。
響應系統
響應系統是面向人、物的交互系統,可以說是整個系統的中轉站和協調站。人即是系統管理員、物是其他所有組件。詳細說來,響應系統這個協調員要做的事很多:按照預置定義的方式,記錄安全事件、產生報警信息(如E-mail形式)、記錄附加日誌、隔離入侵者、終止進程、禁止受害者的端口和服務、甚至反戈一擊;可以採取人工響應和自動響應(基於機器的響應),兩者結合起來會比較好。
響應系統的設計要素
(1) 接受自事件產生系統經事件分析系統過濾、分析、重建後的事件警報信息,然後交互給用戶(管理員)查詢並做出規則判斷和採取管理行為。
(2) 給管理員提供管理事件資料庫系統的一個接口,可以修改規則庫、根據不同網絡環境情況配置安全策略、讀寫資料庫系統。
(3)作用於前端系統時,可管理事件產生、分析系統(合稱事件探測器),對該系統採集、探測、分析的事件進行分類、篩選,可針對不同安全狀況,重新對安全規則進行洗牌。
響應系統和事件探測器通常是以應用程序的形式實現。
設計思路:響應系統可分為兩個程序部分,監聽和控制。 監聽部分綁定某個空閒端口,接收從事件探測器發出的分析結果和其他信息,並轉化儲存文件到事件資料庫系統中,作為管理員可根據用戶權限調用來只讀、修改以及特別的操作。控制部分可用GTK+來編寫GUI,開發出較為直觀的圖形用戶界面,目的主要是給用戶一個更方便友好的界面來瀏覽警告信息。
事件資料庫系統
在Windows平台下,雖然Access更易掌握,但採用SQL Server 2000構建會比Access有效,而且並不是很難入手,此系統主要功能:記錄、儲存、重排事件信息,可供管理員調用查看和對攻擊審查取證使用。
此系統構造相對簡單,只需利用到資料庫軟體的一些基本功能。
要協調各組件之間的有目的通信,各組件就必須能正確理解相互之間傳遞的各種資料的語義。可參考CIDF的通信機制,構建3層模型。注意各個組件之間的互操作性,保證安全、高效、順暢。
整合在後續的工作中會不斷進行,各個組件的功能也會不斷完善。一個基本的、基於Windows平台的IDS框架就構建完畢。滿足網絡條件的話,試試親手做做自己的奶酪吧,有一種不可名狀的勞作後的甜蜜。
(