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