歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

IDS及其linux下的實現

入侵檢測系統簡介 當越來越多的公司將其核心業務向互聯網轉移的時候,網絡安全作為一個無法回避的問題呈現在人們面前。傳統上,公司一般采用防火牆作為安全的第一道防線。而隨著攻擊者知識的日趨成熟,攻擊工具與手法的日趨復雜多樣,單純的防火牆策略已經無法滿足對安全高度敏感的部門的需要,網絡的防衛必須采用一種縱深的、多樣的手段。與此同時,當今的網絡環境也變得越來越復雜,各式各樣的復雜的設備,需要不斷升級、補漏的系統使得網絡管理員的工作不斷加重,不經意的疏忽便有可能造成安全的重大隱患。在這種環境下,入侵檢測系統成為了安全市場上新的熱點,不僅愈來愈多的受到人們的關注,而且已經開始在各種不同的環境中發揮其關鍵作用。 本文中的“入侵”(Intrusion)是個廣義的概念,不僅包括被發起攻擊的人(如惡意的黑客)取得超出合法范圍的系統控制權,也包括收集漏洞信息,造成拒絕訪問(Denial of Service)等對計算機系統造成危害的行為。 入侵檢測(Intrusion Detection),顧名思義,便是對入侵行為的發覺。它通過對計算機網絡或計算機系統中得若干關鍵點收集信息並對其進行分析,從中發現網絡或系統中是否有違反安全策略的行為和被攻擊的跡象。進行入侵檢測的軟件與硬件的組合便是入侵檢測系統(Intrusion Detection sys tem,簡稱IDS)。與其他安全產品不同的是,入侵檢測系統需要更多的智能,它必須可以將得到的數據進行分析,並得出有用的結果。一個合格的入侵檢測系統能大大的簡化管理員的工作,保證網絡安全的運行。 具體說來,入侵檢測系統的主要功能有: a.監測並分析用戶和系統的活動; b.核查系統配置和漏洞; c.評估系統關鍵資源和數據文件的完整性; d.識別已知的攻擊行為; e.統計分析異常行為; f.操作系統日志管理,並識別違反安全策略的用戶活動。 由於入侵檢測系統的市場在近幾年中飛速發展,許多公司投入到這一領域上來。ISS、axent、NFR、cisco等公司都推出了自己相應的產品(國內目前還沒有成熟的產品出現)。但就目前而言,入侵檢測系統還缺乏相應的標准。目前,試圖對IDS進行標准化的工作有兩個組織:IETF的Intrusion Detection Working Group (idwg)和Common Intrusion Detection Framework (CIDF),但進展非常緩慢,尚沒有被廣泛接收的標准出台。 入侵檢測系統模型 CIDF模型 Common Intrusion Detection Framework (CIDF)(http://www.gidos.org/)闡述了一個入侵檢測系統(IDS)的通用模型。它將一個入侵檢測系統分為以下組件: l事件產生器(Event generators) l事件分析器(Event analyzers l響應單元(Response units ) l事件數據庫(Event databases ) CIDF將IDS需要分析的數據統稱為事件(event),它可以是網絡中的數據包,也可以是從系統日志等其他途徑得到的信息。 事件產生器的目的是從整個計算環境中獲得事件,並向系統的其他部分提供此事件。事件分析器分析得到的數據,並產生分析結果。響應單元則是對分析結果作出作出反應的功能單元,它可以作出切斷連接、改變文件屬性等強烈反應,也可以只是簡單的報警。事件數據庫是存放各種中間和最終數據的地方的統稱,它可以是復雜的數據庫,也可以是簡單的文本文件。 在這個模型中,前三者以程序的形式出現,而最後一個則往往是文件或數據流的形式。 在其他文章中,經常用數據采集部分、分析部分和控制台部分來分別代替事件產生器、事件分析器和響應單元這些術語。且常用日志來簡單的指代事件數據庫。如不特別指明,本文中兩套術語意義相同。 IDS分類 一般來說,入侵檢測系統可分為主機型和網絡型。 主機型入侵檢測系統往往以系統日志、應用程序日志等作為數據源,當然也可以通過其他手段(如監督系統調用)從所在的主機收集信息進行分析。主機型入侵檢測系統保護的一般是所在的系統。 網絡型入侵檢測系統的數據源則是網絡上的數據包。往往將一台機子的網卡設於混雜模式(promisc mode),監聽所有本網段內的數據包並進行判斷。一般網絡型入侵檢測系統擔負著保護整個網段的任務。 不難看出,網絡型IDS的優點主要是簡便:一個網段上只需安裝一個或幾個這樣的系統,便可以監測整個網段的情況。且由於往往分出單獨的計算機做這種應用,不會給運行關鍵業務的主機帶來負載上的增加。但由於現在網絡的日趨復雜和高速網絡的普及,這種結構正受到越來越大的挑戰。一個典型的例子便是交換式以太網。 而盡管主機型IDS的缺點顯而易見:必須為不同平台開發不同的程序、增加系統負荷、所需安裝數量眾多等,但是內在結構卻沒有任何束縛,同時可以利用操作系統本身提供的功能、並結合異常分析,更准確的報告攻擊行為。《Next Generation Intrusion Detection in High-Speed Networks》對此做了描述,感興趣的讀者可參看。 入侵檢測系統的幾個部件往往位於不同的主機上。一般來說會有三台機器,分別運行事件產生器、事件分析器和響應單元。HereLine將前兩者合在了一起,因此只需兩台。在安裝IDS的時候,關鍵是選擇數據采集部分所在的位置,因為它決定了“事件”的可見度。


對於主機型IDS,其數據采集部分當然位於其所監測的主機上。 對於網絡型IDS,其數據采集部分則有多種可能: (1)如果網段用總線式的集線器相連,則可將其簡單的接在集線器的一個端口上即可; (2)對於交換式以太網交換機,問題則會變得復雜。由於交換機不采用共享媒質的辦法,傳統的采用一個sniffer來監聽整個子網的辦法不再可行。可解決的辦法有: a.交換機的核心芯片上一般有一個用於調試的端口(span port),任何其他端口的進出信息都可從此得到。如果交換機廠商把此端口開放出來,用戶可將IDS系統接到此端口上。 優點:無需改變IDS體系結構。 缺點:采用此端口會降低交換機性能。 b.把入侵檢測系統放在交換機內部或防火牆內部等數據流的關鍵入口、出口。 優點:可得到幾乎所有關鍵數據。 缺點:必須與其他廠商緊密合作,且會降低網絡性能。 c.采用分接器(Tap),將其接在所有要監測的線路上。 優點:再不降低網絡性能的前提下收集了所需的信息。 缺點:必須購買額外的設備(Tap);若所保護的資源眾多,IDS必須配備眾多網絡接口。 d.可能唯一在理論上沒有限制的辦法就是采用主機型IDS。 通信協議 IDS系統組件之間需要通信,不同的廠商的IDS系統之間也需要通信。因此,定義統一的協議,使各部分能夠根據協議所致訂的的標准進行溝通是很有必要的。 IETF目前有一個專門的小組Intrusion Detection Working Group (idwg)負責定義這種通信格式,稱作Intrusion Detection Exchange format。目前只有相關的草案(internet draft),並未形成正式的RFC文檔。盡管如此,草案為IDS各部分之間甚至不同IDS系統之間的通信提供了一定的指引。 IAP(Intrusion Alert Protocol)是idwg制定的、運行於TCP之上的應用層協議,其設計在很大程度上參考了HTTP,但補充了許多其他功能(如可從任意端發起連接,結合了加密、身份驗證等)。對於IAP的具體實現,請參看 《Intrusion Alert Protocol - IAP》,其中給出了非常詳盡的說明。這裡我們主要討論一下設計一個入侵檢測系統通信協議時應考慮的問題: 1.分析系統與控制系統之間傳輸的信息是非常重要的信息,因此必須要保持數據的真實性和完整性。必須有一定的機制進行通信雙方的身份驗證和保密傳輸(同時防止主動和被動攻擊)。 2. 通信的雙方均有可能因異常情況而導致通信中斷,IDS系統必須有額外措施保證系統正常工作。 入侵檢測技術 對各種事件進行分析,從中發現違反安全策略的行為是入侵檢測系統的核心功能。從技術上,入侵檢測分為兩類:一種基於標志(signature-based),另一種基於異常情況(anomaly-based)。 對於基於標識的檢測技術來說,首先要定義違背安全策略的事件的特征,如網絡數據包的某些頭信息。檢測主要判別這類特征是否在所收集到的數據中出現。此方法非常類似殺毒軟件。 而基於異常的檢測技術則是先定義一組系統“正常”情況的數值,如CPU利用率、內存利用率、文件校驗和等(這類數據可以人為定義,也可以通過觀察系統、並用統計的辦法得出),然後將系統運行時的數值與所定義的“正常”情況比較,得出是否有被攻擊的跡象。這種檢測方式的核心在於如何定義所謂的“正常”情況。 兩種檢測技術的方法、所得出的結論有非常大的差異。基於異常的檢測技術的核心是維護一個知識庫。對於已知得攻擊,它可以詳細、准確的報告報告出攻擊類型,但是對未知攻擊卻效果有限,而且知識庫必須不斷更新。基於異常的檢測技術則無法准確判別出攻擊的手法,但它可以(至少在理論上可以)判別更廣范、甚至未發覺的攻擊。 如果條件允許,兩者結合的檢測會達到更好的效果。 Linux下的實現 系統框架 HereLine是一個在linux下運行的基於標識檢測的網絡IDS。從邏輯上分為數據采集、數據分析和結果顯示三部分,符合CIDF的規范。 從實現結構上看,HereLine分成三個應用程序,它們分別是: 1.數據收集及分析程序(watcher) ;2.告警信息收集程序(listener);3.告警信息顯示程序(console)。watcher是數據采集和數據分析的合體;listener接收watcher發出的告警信息,並將接到的信息存儲為日志;console為管理員提供了更友好的觀察日志的圖形界面。 同大多數商業IDS一樣,HereLine采



如果條件允許,兩者結合的檢測會達到更好的效果。 Linux下的實現 系統框架 HereLine是一個在linux下運行的基於標識檢測的網絡IDS。從邏輯上分為數據采集、數據分析和結果顯示三部分,符合CIDF的規范。 從實現結構上看,HereLine分成三個應用程序,它們分別是: 1.數據收集及分析程序(watcher) ;2.告警信息收集程序(listener);3.告警信息顯示程序(console)。watcher是數據采集和數據分析的合體;listener接收watcher發出的告警信息,並將接到的信息存儲為日志;console為管理員提供了更友好的觀察日志的圖形界面。 同大多數商業IDS一樣,HereLine采



Copyright © Linux教程網 All Rights Reserved