摘要:入侵檢測系統(IDS)是網絡安全領域使用最為廣泛的一類網絡安全設備。該文以DARPA2000數據集作為測試數據源,分別測試了開源的Snort、ISS公司的RealSecure和3com公司的TippingPoint50這三種IDS的性能。
關鍵詞:入侵檢測系統;DARPA2000數據集;Snort
中圖分類號:TP311 文獻標識碼:A文章編號:1009-3044(2010)03-547-03
Comparison of Intrusion Detection Systems
LI Ming, XU Guang-hui, CHEN Jia-jia, CHEN Chen
(Institute of Command Automation, PLAUST, Nanjing 210007, China)
Abstract: Intrusion detection system (IDS) is the most widely used network security equipment. Three kinds of IDS products are tested in this paper using DARPA2000 datasets, which are open-source Snort, ISS RealSecure and 3com TippingPoint50 respectively.
Key words: intrusion detection system; DARPA2000 datasets; Snort
隨著網絡技術的不斷發展和Internet的日益普及,人們對網絡安全越來越重視。入侵檢測系統(IDS)是各種網絡安全產品中具有代表性的一類產品。它不同于傳統的防火墻,是一種主動的信息安全保障和防衛系統。在發現入侵后,IDS會及時做出響應,包括斷開網絡連接、記錄事件和報警等。IDS的主要功能有:檢測并分析用戶和系統的活動,查找非法用戶和合法用戶的越權操作;評估系統關鍵資源和數據文件的完整性;識別已知的攻擊行為;統計分析異常行為;操作系統日志管理,并識別違反安全策略的用戶活動。本文的測試側重于識別已知攻擊行為的能力。IDS通常采用的分析方法有模式匹配、統計分析、完整性分析等。目前的IDS產品有很多,免費的有Snort、shadow等,商業化的產品有ISS公司的RealSecure、Cisco的NetRanger等。由于各種IDS采用的檢測技術和分析方法不同,其檢測效果也是千差萬別。本文使用麻省理工學院林肯實驗室的入侵評估數據集DARPA2000[1]作為數據源來測試比較三種IDS產品的性能:分別為Snort[2](開源IDS軟件的代表)、ISS公司的RealSecure[3](商業IDS軟件的代表)的和3com公司的TippingPoint50[4](商業IDS硬件的代表,下文簡稱TP50)。
1 測試環境
1.1 Snort
Snort是一個基于libpcap的輕量級網絡入侵檢測系統,可以運行在多種操作系統平臺。它通過分析捕獲的數據包,匹配入侵行為的特征或者從網絡活動的角度檢測異常行為,進而采取入侵的預警或記錄。從檢測模式而言,Snort屬于濫用檢測(Misuse Detection),是基于規則的入侵檢測工具,即針對每一種入侵行為,都提煉出特征值并按照規范寫出檢測規則,從而形成一個規則數據庫。然后將捕獲的數據包按照規則庫逐一匹配,如果匹配成功,則認為該入侵行為成立。
Snort有數十類上千條檢測規則,其中包括緩沖區溢出、端口掃描和CGI攻擊等。它集成了多種告警機制來提供實時告警功能,包括syslog、用戶指定文件、UNIX Socket等。Snort可以幫助中小網絡的系統管理員有效地監視網絡流量和檢測入侵行為[5]。
1.2 RealSecure
ISS公司的RealSecure是一種混合型的入侵檢測系統,提供基于網絡和主機的實時入侵檢測,并允許用戶在系統受到危害之前截取和響應入侵行為和內部網絡誤用。它包含三大組件:網絡感應器(Engine)、主機感應器(Agent)和管理器。網絡感應器運行在一個專門的主機上監視網絡上流過的數據包,識別正在進行的攻擊。該過程是實時的,用戶可定義報警和識別攻擊后的響應。主機感應器是對網絡感應器的補充,它分析主機日志來識別攻擊,決定攻擊是否成功并提供其它實時環境中無法得到的證據。它可以通過中斷用戶進程和掛起用戶賬戶來阻止進一步的入侵,還會發出報警、記錄事件、發現陷阱和執行用戶自定義的動作。所有網絡感應器和主機感應器都向RealSecure管理器報告并由管理器進行配置[5]。
1.3 TippingPoint50
TippingPoint50是一種嵌入式入侵防御系統(IPS)。IPS是一類特殊的IDS,其檢測功能類似IDS,但是檢測到攻擊后會采取行動阻止攻擊。本文只用到了它的入侵檢測功能。
TP50可以透明地接入被保護網絡。當數據包通過時,TP50會根據用戶自定義的規則來執行相應的動作。該系統的核心是威脅抑制引擎(TSE),它是由最新的網絡處理器技術和TippingPoint自定義的一套專用集成電路所組成的基于硬件的專業化入侵防護平臺。通過流水線和大量并行處理硬件的組合,TSE有能力同時檢測一個數據流數千遍,并且不會給數據流引入太大(小于84微秒)的時延。它還可以進行流量整形,以支持關鍵的應用程序和基礎設施。
1.4 DARPA2000數據集
DARPA2000數據集是入侵檢測領域使用最為廣泛的測試數據集,該數據集模擬了美國Eyrie空軍基地的主機被實施分布式拒絕服務攻擊的情形,它包括兩個攻擊場景:LLDOS1.0和LLDOS2.0.2。它由四個文件組成, LLS_DDOS_1.0-dmz.dump和LLS_DDOS_1.0-inside.dump分別記錄了攻擊場景LLDOS1.0發生時非軍事區(DMZ)和內網的流量;LLS_DDOS_2.0.2-outside.dump和LLS_DDOS_2.0.2-inside.dump分別記錄了攻擊場景LLDOS2.0.2發生時非軍事區(DMZ)和內網的流量。
攻擊場景LLDOS1.0分五個步驟[9]:
1)IPsweep:從一個遠程站點發起對目標網絡的掃描;
2)Probe:探測前一階段發現的主機,尋找存在sadmind漏洞的Solaris主機;
3)Breakin:使用緩沖區溢出攻擊,侵入前一階段發現的存在sadmind漏洞的主機;
4)Installation:在入侵成功的主機中安裝特洛伊木馬軟件(Mstream);
5)Launching:發起DDoS攻擊;
攻擊場景LLDOS2.0.2和LLDOS1.0類似,主要不同有兩點:1)攻擊者采用DNS HINFO查詢來獲取主機信息而不是用RPC端口掃描和sadmind ping;2)攻擊者先入侵一臺主機,上傳攻擊腳本攻擊其它主機,而不是手工逐臺攻擊。
2 測試過程
本文使用tcpreplay[6]來重放DARPA2000數據集的離線文件,發送速率使用默認的速率。用Snort對產生的流量進行檢測分析,并通過修改配置文件直接將Snort的檢測結果寫入SQL Server數據庫中。對于RealSecure,本文采用PengNing網站 提供的RealSecure6.0檢測DARPA2000數據集所產生的報警事件文件,然后將該文件導入SQL Server據庫。
TP50的檢測過程和Snort類似,不同的是需要將IPS串接(in-line)在網絡中,其部署圖見圖1。
3 測試結果及分析
本文使用檢測率和誤報率來比較兩種IDS的性能。檢測率反映了IDS識別攻擊的能力,其計算公式為:
■
誤報率反映了IDS報警的準確性,其計算公式為:
■
本文中所說的一次攻擊是指攻擊場景中一次具體的攻擊行為,比如一次telnet或者一次rsh連接。而報警是指IDS設備對可能的攻擊行為產生的報警事件。在攻擊的第一階段,攻擊者掃描目標網絡的存活主機,雖然包括大量的探測數據包,也產生了很多報警,但是本文認為這屬于一次攻擊。同樣在攻擊的最后階段攻擊者發起DDoS攻擊,本文也認為這屬于一次攻擊。總攻擊數包含攻擊場景中的所有攻擊,是通過分析數據集的會話列表(list of sessions)文件得到的。每一個會話列表文件列出了對應攻擊步驟中的所有會話(TCP、UDP或ICMP)。總報警數是指IDS設備實際產生的報警數。真實報警數是指總報警數中由本攻擊場景產生的報警,實際上就是總報警數去掉誤報剩下的報警數。檢測攻擊數是指IDS設備檢測到的攻擊數,其數值可能小于真實報警數,因為一次攻擊可能產生多條報警,比如一次rsh連接可能在RealSecure中產生兩條報警[8]。具體結果見表1。
TP50在場景1.0的DMZ中只檢測到IP掃描這一攻擊行為;在場景2.0.2中的Inside中產生了大量IP地址哄騙的報警,這些報警實際上就是攻擊最后階段攻擊者發起DDoS攻擊產生的,屬于一次攻擊。而在其它的情況下一次攻擊也沒有檢測出來。對于TP50檢測效果如此低的問題,3com的工程師認為可能是由于其TOS需要升級,也有可能是硬件出現故障。所以TP50檢測結果不具有參考性,本文主要比較Snort和RealSecure的檢測效果。
對比兩個場景的數據可以看出,場景1.0總攻擊數明顯多于場景2.0.2,這從側面說明了在場景2.0.2中攻擊者采用的方法比較高明,難以察覺。通過查看兩種IDS的報警也可以印證這一點。兩種IDS都未能檢測出DNS HINFO查詢,而對于RPC端口掃描和sadmind ping產生了大量的報警。
對于場景1.0,Snort的真實報警數較多,因為攻擊者對非Solaris主機掃描sadmind服務會導致掃描數據包被重復發送,而Snort不能識別這些重復的數據包,故而產生了大量sadmind端口掃描報警。RealSecure不將sadmind端口掃描作為一條單獨的報警,所以其檢測攻擊數少于Snort。
對于場景2.0.2,RealSecure檢測率明顯高于Snort,這是因為Snort不能檢測到Mstream木馬軟件的主控端(master)和服務器(server)之間的通信。安裝了Mstream server軟件的主機稱為服務器,安裝了Mstream master軟件的主機稱為主控端。每一臺服務器會都會向主控端注冊,主控端有記錄當前活動服務器的列表。攻擊者發動攻擊時,先登錄主控端,輸入攻擊命令,然后主控端向每一臺活動的服務器發出攻擊命令。所以它們之間的通信是一種危害性極高的行為,表明網絡中的主機已被入侵,DDoS攻擊將要發生。而且RealSecure能夠檢測到攻擊者通過ftp給被控主機上傳Mstream軟件。所以在該場景下RealSecure的檢測到的攻擊數要高于Snort。
在兩種場景中RealSecure的誤報率都較高,是因為它對一些危害性不高的行為也產生報警,比如ftp和電子郵件傳輸過程中的EHLO等。
4 結束語
通過本文的測試,Snort確實是一款優秀的輕量級網絡入侵檢測系統,在低速網絡環境下,其性能略遜于商用的入侵檢測系統。而RealSecure作為一款具有代表性的商用IDS,其性能相當優秀,識別攻擊能力較強,可以檢測到大部分攻擊,其檢測率在55%以上,但是誤報率較高。
DARPA2000評估數據集是入侵檢測領域使用最為廣泛的測試數據集,但是它也有一些不足,比如攻擊過程過于標準化。McHugh在文獻[7]指出DARPA1999數據集的幾個缺點:被攻擊的目標網絡拓撲結構過于平坦;被攻擊主機不是平均分布;收集的網絡數據與典型的美國空軍網絡流量缺乏統計學上的相似性。而這些問題在DARPA2000數據集中依然存在。另外,本文使用DARPA2000數據集作為唯一的測試源可能會使結果具有一定的片面性。
參考文獻:
[1] Lincoln Lab,MIT.DARPA 2000 intrusion detection evaluation datasets[EB/OL].http://ideval.ll.mit.edu/2000/index.html,2009.
[2] Snort[EB/OL].http://www.snort.org,2009.
[3] RealSecure[EB/OL].http://www.realsecure.net,2009.
[4] TippingPoint[EB/OL].http://www.tippingpoint.com.cn,2009.
[5] 張世永.網絡安全原理與應用[M].北京:科學出版社,2003:319-340.
[6] Tcpreplay[EB/OL].http://tcpreplay.synfin.net,2009.
[7] J.McHugh.Testing Intrusion Detection Systems:A Critique of the 1998 and 1999 DARPA Intrusion Detection System Evaluations as Performed by Lincoln Laboratory[J].Proc.ACM TISSEC,2000,3(4)262-294.
[8] 王澤平,秦拯.因果告警相關方法在入侵檢測系統中的應用和實現[J].計算機科學,2008,35(6):280-282.
[9] Peng Ning,Cui Y,Reeves D S.Constructing attack scenarios through correlation of intrusion alerts[C].In:9th ACM Conference on Computer and Communications Security,November2002.