入侵監測
入侵監測
入侵檢測是防火牆的合理補充,幫助系統對付網路攻擊,擴展了系統管理員的安全管理能力(包括安全審計、監視、進攻識別和響應),提高了信息安全基礎結構的完整性。它從計算機網路系統中的若干關鍵點收集信息,並分析這些信息,看看網路中是否有違反安全策略的行為和遭到襲擊的跡象。入侵檢測被認為是防火牆之後的第二道安全閘門,在不影響網路性能的情況下能對網路進行監測,從而提供對內部攻擊、外部攻擊和誤操作的實時保護。
1980年James P.Anderson寫了一份題為《計算機安全威脅監控與監視》的技術報告,首次提出了“威脅”等術語。這裡所指的“威脅”與入侵的含義基本相同,將入侵或威脅定義為:潛在的、有預謀的、未經授權的訪問,企圖致使系統不可靠或無法使用。1984年到1986年喬治敦大學的Dorothy Denning和SRI公司計算機科學實驗室的Peter Neumann研究出了一個抽象的實時入侵檢測系統模型——入侵檢測專家系統IDEs(Intrusion Detection Expert Systems)。這是第一個在一個應用中運用了統計和基於規則兩種技術的系統,是入侵檢測研究中最有影響的一個系統,並將入侵檢測作為一個新的安全防禦措施提出。1989年,加州大學戴維斯分校的Todd Heberlein寫了一篇題為“A Network Security Monitor”的論文,提出監控器用於捕獲TCP/IP分組,第一次直接將網路流作為審計數據來源,因而可以在不將審計數據轉換成統一格式的情況下監控異種主機,網路入侵檢測從此誕生。
入侵檢測的原理,是從一組數據中檢測出符合某一特點的數據。
(1)異常入侵檢測原理
構築異常檢測原理的入侵檢測系統,首先要建立系統或用戶的正常行為模式庫,不屬於該庫的行為被視為異常行為。但是,入侵性活動並不總是與異常活動相符合,而是存在下列4種可能性:入侵性非異常;非入侵性且異常;非入侵性非異常;入侵性且異常。
另外,設置異常的門檻值不當,往往會導致IDS許多誤報警或者漏檢的現象。IDS給安全管理員造成了系統安全假象,漏檢對於重要的安全系統來說是相當危險的。
(2)誤用入侵檢測原理
誤用入侵檢測依賴於模式庫。誤用人侵檢測能直接檢測出模式庫中已涵蓋的入侵行為或不可接受的行為,而異常入侵檢測是發現同正常行為相違背的行為。誤用入侵檢測的主要假設是具有能夠被精確地按某種方式編碼的攻擊。通過捕獲攻擊及重新整理,可確認入侵活動是基於同一弱點進行攻擊的入侵方法的變種。誤用人侵檢測主要的局限性是僅僅可檢測已知的弱點.對檢測未知的入侵可能用處不大.
(1)信息收集。入侵檢測的第一步是信息收集,內容包括系統、網路、數據及用戶活動的狀態和行為。而且,需要在計算機網路系統中的若干不同關鍵點(不同網段和不同主機)收集信息,這除了儘可能擴大檢測範圍的因素外,還有一個重要的因素就是從一個源來的信息有可能看不出疑點,但從幾個源來的信息的不一致性卻是可疑行為或入侵的昂好標識。
當然,入侵檢測很大程度上依賴於收集信息的可靠性和正確性,因此,很有必要只昶用所知道的真正的和精確的軟體來報告這些信息。因為黑客經常替換軟體以搞混和移走這些信息,例如替換被程序調用的子程序、庫和其他工具。黑客對系統的修改可能使系統功能失常並看起來跟正常的一樣,而實際上不是。例如,UNIX系統的PS指令可以被替換為一個不顯示侵入過程的指令,或者是編輯器被替換成一個讀取不同於指定文件的文件(票客隱藏了初始文件並用另一版本代替)。這需要保證用來檢測網路系統的軟體的完整性,特別是入侵檢測系統軟體本身應具有相當強的堅固性,防止被篡改而收集到錯誤的信息。
(2)信號分析。對上述四類收集到的有關係統、網路、數據及用戶活動的狀態和行為等信息,一般通過三種技術手段進行分析:模式匹配、統計分析和完整性分析。其中前兩種方法用於實時的入侵檢測,而完整性分析則用於事後分析。
1)基於主機的檢測:對於這一類的檢測通常是通過主機系統的日誌和管理員的設置來檢測。在系統的日誌里記錄了進入系統的ID、時間以及行為等。這些可通過印表機列印出來,以便進一步分析。管理員的設置包括用戶許可權、工作組、所使用的許可權等。如果這些與管理員的設置有不同之處,說明系統有可能被入侵。
2)基於網路檢測:網路入侵者通常利用網路的漏洞進入系統,如TCP/IP協議的三次握手,就給入侵者提供入侵系統的途徑。任何一個網路適配器都具有收聽其它數據包的功能。它首先檢查每個數據包目的地址,只要符合本機地址的包就向上一層傳輸,這樣,通過對適配器適當的配置,就可以捕獲同一個子網上的所有數據包。所以,通常將入侵檢測系統放置在網關或防火牆后,用來捕獲所有進出的數據包,實現對所有的數據包進行監視。
3)基於內核的檢測:基於內核的檢測是從操作系統的內核收集數據,作為檢測入侵或異常行為的依據。這種檢測策略的特點是具有良好的檢測效率和數據源的可信度。對於這種檢測,要求操作系統具有開放性和原碼公開性。目前基於這種檢測的主要是針對開發與原碼的Linux系統。
1)基於行為的檢測:基於行為的檢測是根據使用者的行為或資源使用狀況的正常程度來判斷是否入侵,而不依賴於具體行為是否出現來檢測,所以又稱為異常檢測。它首先總結正常操作應該具有的特徵(用戶輪廓),當用戶活動與正常行為有重大偏離時即被認為是入侵。因為不需要對每種入侵行為進行定義,所以能有效檢測未知的入侵,漏報率低,誤報率高。
2)基於知識的檢測:基於知識的檢測是指運用已知的方法,根據定義好的入侵模式,通過判斷這些入侵模式是否出現來檢測。因為有很大一部分的入侵是利用系統的脆弱性,所以通過分析入侵的特徵、條件、排列以及相關事件就能描述入侵行為的跡象。這種方法是依據具體的特徵庫進行判斷,所以檢測準確度很高,誤報率低、漏報率高。對於已知的攻擊,它可以詳細、準確地報告出攻擊類型,但是對未知攻擊卻效果有限,而且特徵庫必須不斷更新。
大多數的IDS程序可以提供關於網路流量非常詳盡的分析,它們可以監視任何定義好的流量。大多數的程序對FTP、HTTP和Telnet流量都有預設的設置,還有其他的流量像NetBus,本地和遠程登錄失敗等,用戶也可以自己定製策略。下面討論一些常見的檢測技巧。
像Computer Associates’ eTrust Intrusiofl Detection(以前是SessionWall)、Axent IntruderAlert和ISS RealSecure等IDS程序,允許記錄、報告和禁止幾乎所有形式的網路訪問。還可以用這些程序來監視某一台主機的網路流量,eTrust Intrusion Detection可以讀取這台主機上用戶最後訪問的Web頁。
如果定義了策略和規則,便可以獲得FTP、SMTP、Telnet和任何其他的流量。這種規則有助於追查該連接和確定網路上發生過什麼,現在正在發生什麼。這些程序在需要確定網路中策略實施的一致性情況時,是非常有效的工具。
雖然IDS是安全管理人員或審計人員非常有價值的工具,但公司的僱員同樣可以安裝像eTrust Intrusion Detection或Intrude Alert這樣的程序來訪問重要的信息。攻擊者不僅可以讀取未加密的郵件,還可以嗅探密碼和收集重要的協議方面的信息。所以,首要的工作是要檢查在網路中是否有類似的程序在運行。
前面講到如何應用不同的策略來加強有效的安全,這項任務需要在網路中不同的部分實施控制,從操作系統到掃描器、IDS程序和防火牆。許多安全專家將這些程序和IDS結合起來,系統完整性檢查、廣泛地記錄日誌、黑客“監獄”和引誘程序都是可以同IDS前後配合的有效工具。
IDS所能做到的不僅僅是記錄事件,它還可以確定事件發生的位置,這是許多安全專家購買IDS的主要原因。通過追蹤來源,可以更多地了解攻擊者。這些經驗不僅可以記錄下攻擊過程,同時也有助於確定解決方案。