一.介紹 冰塊 現在大家已經公認了,世界上沒有絕對的方法或絕對安全的系統來阻止黑客的入侵: 沒有漏洞的軟件對我們來說還是一個夢想。即使是很流行的程序或是操作系統一樣會包含很都可以被入侵者利用的漏洞。 許多軟件包的行為都是和其他操作系統的組件(函數庫或是內核)相互作用的。 由於這個原因,所以入侵檢測和如何處理入侵行為在計算機工業裡一直在廣泛的討論和研究。 很多現有的入侵檢測的技術都是基於一些對審計和日志文件的分析。主要思想是搜索整個系統的文件和參考列表來發現畸形的,不期望的系統配置的改變。(如,有一個新的用戶的用戶ID是0)。另外一種方法就是周期性的執行一個程序來做系統文件的屬性和參考列表的比較。這些過程主要是來對付Trojan木馬的。這樣的程序是看起來對系統不是很危險,但是可以讓入侵者得到控制整個系統所需的權限。 這樣程序的好處是不用進入內核部分。如,他們不用進行對系統命令的修改。但是,他們也不能對入侵進行即時的防范,因為,大多數情況下,這些結果都是在入侵者攻擊以後才生成的。 因為所有對系統的破壞性攻擊都是通過一些敏感的系統調用來實現的。所以,即時的入侵檢測通過監視每一個系統調用就可以保護你的系統不受攻擊者破壞。 這裡我們建立一個在內核級能夠實現截獲和監視特殊系統調用的函數。我們的方法需要最小的改變系統原來內部的結構。由於類UNIX系統的這個代碼都是公開的,我們就可以基於公開的內核代碼來截獲系統調用,並根據我們設定的規則來檢驗系統調用是否是惡意的,起到入侵檢測和防范的功能。 這軟件的主要設計目的如下: 在惡意的系統調用執完全行前檢測到它,以起到阻止惡意的入侵攻擊。 允許對系統調用參數的一個有效的檢測。 在不改變系統已經存在的數據結構和體系的情況下,通過擴展內核的功能來實現一個增強的安全的操作系統。 感謝即時的入侵檢測,因為原來的擴展操作系統可以讓入侵者的惡意進程和合法的進程一起運行。有了這個系統,我們就可以對系統的所有進程進行分析,發現惡意的進程以及他們之間的關系。 作為一個實現我們技術的例子我們創建了一個在攻擊完成前對緩沖區溢出攻擊進行檢測的原形。一個基於操作系統的入侵檢測的實現能在檢測緩沖區溢的時候的提供一些必要的功能選項。