Snort入侵檢測系統之我見
Snort入侵檢測作為一款免費的輕量級入侵檢測IDS系統,它具有實時數據流量分析和日志Ip網絡數據包的能力,能夠進行協議分析,對內容搜索/匹配并且它擁有良好的拓展性以及可移性。本文從Snort入侵檢測的特點等方面對Snort入侵檢測進行一次簡單的分析。
Snort的特點
Snort是一個強大的清量級的網絡入侵檢測系統。它具有實時數據流量分析和日志Ip網絡數據包的能力,能夠進行協議分析,對內容搜索/匹配。它能夠檢測各種不同的攻擊方式,對攻擊進行實時警報。此外,Snort具有很好的擴展性和可移植性。
還有,這個軟件遵循公用許可GPL,所以只要遵守GPL任何組織和個人都可以自由使用。
Snort是一個輕量級的入侵檢測系統
1.Snort雖然功能強大,但是其代碼極為簡潔,短小,其源代碼壓縮包只有200KB不到。Snort可移植性非常好。Snort的跨平臺性能極佳,目前已經支持Linux系列, Solaris,BSD系列,IRIX,HP-UX,Windows系列,ScoOpenserver,Unixware等。
Snort的功能非常強大
2.Snort具有實時流量分析和日志Ip網數據包的能力。能夠快速地檢測網絡攻擊,及時地發出警報。Snort的警報機制很豐富。
例如:Syslog,用戶指定文件,UnixSocket,還有使用SAMBA協議向Windows客戶程序發出WinPopup消息。利用XML插件,Snort可以使用SNML(簡單網絡標記語言.simple network markup language)把日志存放在一個文件或者適時警報。
3.Snort能夠進行協議分析,內容的搜索/匹配。現在Snort能夠分析的協議有TCP,UDP和ICMP。將來的版本,將提供對ARP.ICRP,GRE,OSPF,RIP,ERIP,IPX,APPLEX等協議的支持。它能夠檢測多種方式的攻擊和探測,例如:緩沖區溢出,CGI攻擊,SMB檢測,探測操作系統質問特征的企圖等等。
4.Snort的日至格式既可以是Tcpdump的二進制格式,也可以編碼成ASCII字符形式,更便于擁護尤其是新手檢查,使用數據庫輸出插件,Snort可以把日志記入數據庫,當前支持的數據庫包括:Postagresql,MySQL,任何UnixODBC數據庫,MicrosoftMsSQL,還有Oracle等數據庫。
5.使用TCP流插件(TCPSTREAM),Snort可以對TCP包進行重組。Snort能夠對IP包的內容進行匹配,但是對于TCP攻擊,如果攻擊者使用一個程序,每次發送只有一個字節的數據包,完全可以避開Snort的模式匹配。而被攻擊的主機的TCP西醫棧會重組這些數據,將其發送給目標端口上監聽的進程,從而使攻擊包逃過Snort的監視。使用TCP流插件,可以對TCP包進行緩沖,然后進行匹配,使Snort具備對付上面攻擊的能力。
6.使用Spade(Statistical Packet Anomaly Detection Engine)插件,Snort能夠報告非正常的可以包,從而對端口掃描進行有效的檢測。
7.Snort還有很強的系統防護能力。如:是用其IPTables,IPFilter插件可以使入侵檢測主機與防火墻聯動,通過FlexResp功能,Snort能夠命令防火墻主動短開惡意連接。
8.擴展性能較好,對于新的攻擊威脅反應迅速。
作為一個輕量級的網絡入侵檢測系統,Snort有足夠的擴展能力。它使用一種簡單的規則描述語言(很多商用入侵檢測系統都兼容Snort的規則語言)。最基本的規則知識包含四個域:處理動作,協議,方向,端口。
例如 Log Tcp Any any -> 10.1.1.0/24 80(誰都看得明白)
9.Snort支持插件,可以使用具有特定功能的報告,檢測子系統插件對其功能進行擴展。Snort當前支持的插件包括:數據庫日志輸出插件,破碎數據包檢測插件,斷口掃描檢測插件,HTTP URI插件,XML網頁生成等插件。
10.Snort的規則語言非常簡單,能夠對新的網絡攻擊做出很快的反應。發現新攻擊后,可以很快地根據Bugtrag郵件列表,找到特征碼,寫出新的規則文件。
總之,對于世界上各安全組織來講,Snort入侵檢測都是一個優秀入侵檢測系統的一個標準的標準。通過研究它,我們可以學到到所有入侵檢測系統的內部框架及工作流程(也包括同類型的商業入侵檢測系統的框架及工作流程)。
【編輯推薦】