入侵檢測系統原理和實踐

標題:入侵檢測系統原理和實踐 時間:2004-06-13 來源:http://www.fanqiang.com 作者:David Elson 翻譯:ishtar IDS:THEORY&PRACTICE 入侵檢測系統:理論和實踐 自從計算機以網絡方式被連接開始,網絡安全就成爲一個重大問題,隨着INTERNET的發展,安全系統的要求也與日俱增, 其要求之一就是入侵檢測系統。 本文旨在介紹幾種常見的入侵檢測系統及其理論和實踐,需要指出的是,本文僅僅是一篇介紹性的文章,即使我推薦了許 多可能的系統,在你相信其可靠性前,最好還是深入的研究一下他們。(NND,煩死我了,要敲4個字,以後我就簡稱ID得了。 入侵檢測系統就是IDS :-) ) 一、什麼是入侵檢測。 入侵檢測是指監視或者在可能的情況下,阻止入侵或者試圖控制你的系統或者網絡資源的那種努力。 簡而言之,它的工作方式是這樣的:你有臺機器,被連接到網絡上,也許就是被連到了INTERNET上,出於可以理解的原因, 你也願意爲被授權者設置從網絡上訪問你的系統的許可。比如,你有以臺連接到INTERNET上的WEB服務器,願意讓客戶、職 員和潛在客戶可以訪問存儲在WEB服務器上的頁面。 然而,你並不願意那些未經授權的職員、顧客或者其他未經授權的第三方訪問系統。比如,你不願意除了公司僱傭的網頁 設計人員以外的人員可以修改儲存在機器上的頁面。典型的做法之一就是使用防火牆或者某種認證系統來防止未經授權的 訪問。 但是,在一些情況下,簡單的使用防火牆或者認證系統也可以被攻破。入侵檢測就是這樣以種技術,它會對未經授權的連 接企圖作出反應,甚至可以抵禦以部分可能的入侵。 那麼, 二、爲什麼要使用ID呢? 以下給出了使用ID的理由: (1)你需要保護自己的數據安全和系統,而事實是在現在的INTERNET環境下,如果你僅僅使用普通的密碼和文件保護方式,你不可能永遠保證你數據和系統的安全性。 (2)對於保護數據來說,沒有什麼比系統的安全更重要了,想就這麼把你的機器連上INTETNET而不作任何防護,甚至連管理員密碼都不設,就指望這臺機器會太平無事,那簡直是近乎於癡心妄想。同樣,系統對核心文件或者授權數據庫(比如NT的SAM和UNIX的/ETC/PASSWORD或者/ETC/SHADOW)的保護也是非常重要的。 (3)在通過局域網連接到INTERNET的環境下,經常會採用防火牆或者其他保護措施,如果在NT環境下,如果開放了文件共享,或者允許TELNET,這臺機器就需要更好的保護,比如在防火牆中對137-139端口(屬於TCP/UDP),SMB協議下的NT文件共享加以限制、使用SSH取代UNIX環境下的TELNET連接。 (4)ID還有進一步的作用,由於被放置在防火牆和被保護的系統之間,ID等於是在系統之上增加了以層保護。比如,通過ID對敏感端口的監測就可以判斷防火牆是否已經被攻破,或者防護措施已經被滅了。 三、ID有哪些種類呢? ID可以分爲兩大類, (1)基於網絡的系統:這種ID放置於網絡之上,靠近被檢測的系統,它們監測網絡流量並判斷是否正常。 (2)基於主機的系統:這種系統經常運行在被監測的系統之上,用以監測系統上正在運行的進程是否合法。我還想補充最近出現的一種ID:位於操作系統的內核之中並監測系統的最底層行爲。所有這些系統最近已經可以被用於多種平臺。 基於網絡的ID 簡介 基於網絡的IDS是指監測整個網絡流量的系統,一塊網卡就可能會有兩種用途: 普通模式: 受數據包裏面所包含的MAC地址決定,數據被髮送到目的主機。 任意模式(Promiscuous mode):所有可以被監測到的信息均被主機接收。 網卡可以在普通模式和任意模式之間進行切換,同樣,使用操作系統的低級功能就可以完成這種變換。基於網絡的IDS一般 是需要把網卡設置成後以種模式。 包嗅探和網絡監測 包嗅探和網絡監測最初是爲了監測以太網的流量而設計的,最初的代表性產品就是NOVEL的LANALYSER和MS的NETWORK MONITOR。 這些產品一般會攔截它們在網絡上可疑攔截的一切數據包,當一個數據包被攔截後,可能會有以下幾種情況: 對包進行累加,在截取的時間段內對數據包進行累加,用以確定該時間段內網絡的負載,LANALYSER和MS的NM都在網絡負載的表示界面方面有很好的表現。 對數據包進行分析:比如,當你想對抵達一個WEB服務器的數據進行分析時,你往往會先捕獲一些數據,然後進行分析。 包嗅探工具在近年有了長足的發展,象ETHEREAL和新版的MSNM都可以對數據包進行詳盡的分析。 最後羅嗦以句(NND,洋人就是P多):工具本身無善惡,全在人心,通過對連接到UNIX的TELNET連接進行包嗅探,就可能可 以截取用戶的密碼,任何一個入侵者一旦得手,首先的事情就是會安裝包嗅探器(NND,那是說高手,象俺最多在自己的機器 上裝個嗅探器,嘿嘿) 包嗅探與任意模式 所有包嗅探都需要網卡被設置爲任意模式,因爲僅在此模式下,所有通過網卡的數據可以被傳送到嗅探器,包嗅探的使用前 提是安裝他的機器上使用者具有管理員權限 還有一點需要引起注意的是交換機的使用,請注意,不是HUB(NND,當我們中國人沒見過交換機啊!),在交換機內,一個 接口所接收的數據並不是一定會轉發到另一個接口,所以,在這種情況下,包嗅探器並不一定可以發揮其作用。 基於網絡的ID:嗅探器的發展 不幸的是,從安全的角度來看,包嗅探器好處有限。要去捕獲每一個數據包,然後是分析、手工採取行動,實在是一件煩瑣 之至的事情,但是,如果用軟件來代替我們的勞動呢? 這就是基於網絡的ID要乾的活。比如經常使用的ISS RealSecure Engine和Network Flight Recorder. 以下給出RealSecure Engine這種ID的作用: 監測網絡上的數據傳輸情況。 如果數據爲正常數據,允許其通過(或者留待以後分析),如果數據包被認爲可能會危害目的地系統的安全,則發出 "connection closed"(使用TCP協議時)或者"port unreachable’(使用ICMP時)以截斷數據發送方和接收方之間的連接。 在這種情況下,RealSecure可以在防火牆後建立起以個有效的阻止系統,當然,也有在防火牆的位置直接使用RS的,而我 (原作者-不是土鱉我啊!)不建議大夥採用這種方法。 基於網絡的ID還有一些別的功能,比如: 監測明顯的端口掃描。在攻陷系統之前,攻擊者一般會掃描系統以發現系統的缺陷,一般說來,INTERNET上來自以臺主機的 端口掃描往往是有人開始攻擊的先兆。 對常見的攻擊方式加以監測。通過80端口連接到以臺WEB服務器應該看來是以件很正常的事情,但是有些同樣通過80端口進行 的連接就可能是禍心內藏哦,看看這個命令你就知道了: “GET /../../../etc/passwd HTTP/1.0” 鑑別各種IP欺騙。用於完成IP和MAC地址之間轉換的ARP協議往往是攻擊的重點,通過在以太網上向目的地址發佈載有虛假 ARP數據的數據包,入侵者可以將自己僞裝成位於另外一個系統上,這樣的結果就是各種拒絕服務攻擊,當大型服務器 (如DNS或者身份認證服務器)遭到攻擊時,入侵者可以將數據包轉發到自己的系統上。基於網絡的IDS通過登記ARP包,對信 息源(以太網地址)進行認定,如果確認信息來自於已經被攻陷的系統,則會對入侵者進行攔截。 如果探測到了有問題的行動,基於網絡的ID會自行採取行動,包括重新配置附近的防火牆以攔截所有來自入侵者的數據流. 基於主機的ID 簡介 當數據包抵達目的主機後,防火牆和網絡監控已經無能爲力了,但是還有以個辦法可以試試,那就是“基於主機的ID” 基於主機的ID又可以分成兩大類: 網絡監測:這種監測對抵達主機的數據進行分析並試圖確認哪些是潛在的威脅,任何連接都可能是潛在的入侵者所爲,請注意, 這點與基於網絡的ID不同,因爲它僅僅對已經抵達主機的數據進行監測,而後者則是對網絡上的流量進行監控。如次一來就不 需要把網卡設置成××模式了。 主機監測:任何入侵企圖(或者成功的入侵)都會在監測文件、文件系統、登錄記錄或其他主機上的文件中留下痕跡,系統管 理員們可以從這些文件中找到相關痕跡。 外來連接監測: 主機可以在數據包真正抵達主機之前對試圖進入主機的數據包進行監測,以避免其進入系統後可能造成的損害。 可供選擇的處理方式有: 監測未經授權的試圖通過TCP或者UDP端口進行的連接,比如如果有人試圖通過未開放任何服務的端口進行連接,就往往意味着 有人在尋找系統漏洞。 監測端口掃描:在此我再推薦一種方式:調整防火牆或者調整本地IP配置(可以使用LINUX下的IPCHAINS)以拒絕來自可能的 入侵者的連接請求。 值得推薦的兩個文件是ISS的RealSecure Agent和PortSentry. 註冊行爲監測 即使網管做了最大的努力,安裝了最新的IDS,入侵者也有可能使用無法被監測到的的手段來入侵系統,造成這種情況的重要 可能之一就是入侵者使用包嗅探恩公工具已經取得了用戶密碼並能夠合法登錄系統。 HOSTSENTRY這樣的產品的任務之一就是尋找系統的不尋常操作,對用戶試圖進行註冊和註銷進行監控,並就這些活動中不正常 或者未曾預料的部分向系統管理員報警。 根操作監控 入侵者的最終目的是爲了掌握被入侵主機上的根用戶權限,如果一臺WEB服務器規劃的好的話,除了極少數的計劃好的維修時 間以外,根用戶應該很少會有什麼操作,但是根用戶們也很少按照計劃去進行檢修,而是逮空就幹,但是即使是這樣,入侵者 也很有可能在兔子都不拉屎的時間或者地方幹出些什麼事情來。 需要防禦的戰線還有以條:監視根用戶或系統管理員的任何操作。許多UNIX系統允許根用戶執行包括登錄、監測在內的所有運 算,而象LOGCHECK這樣的工具則可以對這些登錄記錄加以監控並提請網管注意。 如果使用了開放源代碼的操作系統,網管們只有一個選擇:改進內核。如何改進不在本文的討論範圍之內,畢竟INTERNET網上 這樣的資源很多。 監測文件系統 不管你的願望如何良好,ID怎麼賣命,你也不敢保證系統固若金湯,而系統一旦被攻陷,入侵者就會立即開始更改系統的文件, 或者更改一些設置以廢掉ID們的武功(哦!要練神功,必先自宮!!) 在軟件的安裝過程中,不可避免的會更改系統設置,這些設置更改一般會在系統的文件或者LIBRARY的變化中體現出來。 類似於TRIPWIRE,FCHECK和AIDE的程序被設計用於檢測系統內的文件變動,並向系統管理員報告。 在所有系統文件上使用MD5或者其他的加密、校驗和等手段,將這些設置儲存進數據庫,當文件變化時,校驗和也會發生變化。 注意所有文件的創建和修改時間,以及它們的時戳。 對SUID命令的使用加以監控,任何變化或者新的SUID命令被安裝、刪除,都可能會是問題的徵兆。 不管Tripwire, Fcheck, AIDE玩得怎麼花,它們的工作原理就是上面那些東西,它們的作用是保證那些數據庫和加密的校驗和 沒出問題。因爲不排除這樣一種可能,入侵者水平很高,高到足以理解操作系統和IDS,直接就把加密的校驗和數據庫都改得 天衣無縫。 基於內核的ID 基於內核的ID還是以種新生事務,但是成長很快,尤其是在和LINUX的配合方面。 現在有兩種基於LINUX的不同的基於內核的ID,它們是OPENWALL和LIDS。它們在防止緩衝區溢出方面有了長足進展,增強了文件 系統的保護,攔截信號並使入侵系統變得更加困難。LIDS也採取了一定措施以防止根用戶執行一些操作,比如安裝嗅探器或者 更改防火牆規則等等。 內核保護和文件系統保護 顯而易見的是,雖然最終效果相近,LIDS系統和TRIPWIRE系統差別很大,它們都可以用於阻止入侵者出於未經授權的目的使用 系統。 乍看之下,雖然象TRIPWIRE這樣的系統確實是一個監測文件系統的好東西,人們也可能會認爲他意義不大,人們的共識是:一旦 你的系統被內在的入侵者攻陷,最好的辦法就是關機重裝系統。損失已然造成,系統已然玩完,你還是老老實實從恢復盤上重裝 系統得了。而LIDS提供的服務則更有誘惑一些,如果說一般的傢伙是在屋子裏面已經被糟踐得一塌糊塗後纔來跑來告訴你門開着 的話,LIDS可能會使你的系統免遭損失。 從理論上說,我也同意以上分析,但是如果將LIDS和TRIPWIRE同時運行,肯定會帶來更好的安全性。雖然LIDS在保護文件系統方 面有着獨到之處,但是如果再加上象TRIPWIRE這樣的文件系統監視器,用他作爲一個“獨立的”審計方,效果肯定會更好,因爲 HACKER有可能會挫敗LIDS的努力。 小結 使用最新的工具可能會抵禦一切已知形式的入侵,不幸的是,隨着日常實踐,新的威脅和軟件的安全漏洞卻在不斷的被發現。 在任何環境下,非常重要的一點是知道你可能面對的所有威脅,要警惕你係統裏面可能存在的潛在漏洞並加以修補,以免遭受基 於這些漏洞的攻擊。 舉個例子來說,以臺通過防火牆被連接到INTERNET 的主機可以說會免於大多數種攻擊,但是機器裏的CGI程序則會使機器暴露出 脆弱的以面,要尤其注意並確定CGI程序已經被合適的配置,數據在執行前已經被確認合法有效。而一個ID程序則會被放在WEB服 務器和防火牆之間以攔截任何可疑的連接。 隨時更新 隨着新的入侵手段的發現,上面我們所闡述的工具也在不斷更新,所以及時更新工具也是非常重要的。 在安裝了相應的軟件以後,用戶有必要經常訪問一些和安全有關的頁面和郵件列表,同時,如果你所安裝的軟件或者防火牆報告 說其自身出現缺陷或者其他被入侵的問題,千萬不要爲了面子而不去向軟件提供商需求幫助(老外也這麼要面子嗎?嘿嘿) Which Tools? 使用什麼軟件呢? 以上我們已經探討了好幾種有着不同功能的工具。爲了儘量保證你的環境的安全性,根據功能來選擇工具就變得非常重要。工具 之間“尺有所短,寸有所長”的情況很突出,所以,你的安全防線的第以關應該就是防火牆,然後,在防火牆後側安裝基於網絡 的IDS用於監視防火牆,再以後呢(老外就是TMD煩),就應該是連接監測工具,比如PORTSEBTRY或者HOSTSENTRY之類的,最後呢, 你還可以用LOGCHECK之類的工具來監測那些最終的進入者。   原作者:DEL是新西蘭的一位有着15年IT從業的哥們。其餘的俺就不翻譯了吧了,反正各位要是有什麼問題要問我的話那就歇了, 俺好菜的,就是翻譯洋文速度好快,嘿嘿。附上這哥們簡歷,免得說俺侵犯版權,嘿嘿。 David Elson (Del) is a security and technology consultant working for Wang New Zealand in Christchurch, on the South Island of New Zealand. With 15 years IT experience, he consults to various clients on security and networking issues. He also maintains a set of web pages on Linux and other related security topics, and has given talks on various security and networking issues at conferences in Australia and New Zealand.
發佈了14 篇原創文章 · 獲贊 7 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章