snort 學習

Snort 

(來自度娘)

在1998年,Martin Roesch先生用C語言開發了開放源代碼(Open Source)的入侵檢測系統Snort.直至今天,Snort已發展成爲一個多平臺(Multi-Platform),實時(Real-Time)流量分析,網絡IP數據包(Pocket)記錄等特性的強大的網絡入侵檢測/防禦系統(Network Intrusion Detection/Prevention System),即NIDS/NIPS.Snort符合通用公共許可(GPL——GUN General Pubic License),snort基於libpcap。


Snort有三種工作模式嗅探器數據包記錄器、網絡入侵檢測系統

嗅探器模式僅僅是從網絡上讀取數據包並作爲連續不斷的流顯示在端上。

數據包記錄器模式把數據包記錄到硬盤上。

網絡入侵檢測模式是最複雜的,而且是可配置的。我們可以讓snort分析網絡數據流以匹配用戶定義的一些規則,並根據檢測結果採取一定的動作。


工作原理

Snort能夠對網絡上的數據包進行抓包分析,但區別於其它嗅探器的是,它能根據所定義的規則進行響應及處理。Snort 通過對獲取的數據包,進行各規則的分析後,根據規則鏈,可採取Activation(報警並啓動另外一個動態規則鏈)、Dynamic(由其它的規則包調用)、Alert(報警),Pass(忽略),Log(不報警但記錄網絡流量)五種響應的機制。 
  Snort有數據包嗅探,數據包分析,數據包檢測,響應處理等多種功能,每個模塊實現不同的功能,各模塊都是用插件的方式和Snort相結合,功能擴展方便。例如,預處理插件的功能就是在規則匹配誤用檢測之前運行,完成TIP碎片重組,http解碼,telnet解碼等功能,處理插件完成檢查協議各字段,關閉連接,攻擊響應等功能,輸出插件將得理後的各種情況以日誌或警告的方式輸出。


工作過程

在數據鏈路層進行抓包--》包解碼器(進行解碼)--》預處理器(通過插件完成預處理)--》規則檢測(檢測數據包釋放包含有入侵行爲)--》輸出模塊

1)Snort通過在網絡TCP/IP的5層結構的數據鏈路層進行抓取網絡數據包,抓包時需將網卡設置爲混雜模式,根據操作系統的不同採用libpcap或winpcap函數從網絡中捕獲數據包

2)然後將捕獲的數據包送到包解碼器進行解碼。網絡中的數據包有可能是以太網包、令牌環包、TCP/IP包、802.11包等格式。在這一過程包解碼器將其解碼成Snort認識的統一的格式;

3)之後就將數據包送到預處理器進行處理,預處理包括能分片的數據包進行重新組裝,處理一些明顯的錯誤等問題。預處理的過程主要是通過插件來完成,比如Http預處理器完成對Http請求解碼的規格化,Frag2事務處理器完成數據包的組裝,Stream4預處理器用來使Snort狀態化,端口掃描預處理器能檢測端口掃描的能力等;

4)對數據包進行了解碼,過濾,預處理後,進入了Snort的最重要一環,進行規則的建立及根據規則進行檢測。規則檢測是Snort中最重要的部分,作用是檢測數據包中是否包含有入侵行爲。

例如規則alert tcp any any ->202.12.1.0/24 80(msg:”misc large tcp packet”;dsize:>3000;)這條規則的意思是,當一個流入202.12.1.0這個網段的TCP包長度超過3000B時就發出警報。規則語法涉及到協議的類型、內容、長度、報頭等各種要素。處理規則文件的時候,用三維鏈表來存規則信息以便和後面的數據包進行匹配,三維鏈表一旦構建好了,就通過某種方法查找三維鏈表並進行匹配和發生響應。規則檢測的處理能力需要根據規則的數量,運行Snort機器的性能,網絡負載等因素決定;

5)最後一步就是輸出模塊,經過檢測後的數據包需要以各種形式將結果進行輸出,輸出形式可以是輸出到alert文件、其它日誌文件、數據庫UNIX域或Socket等。


部署

Snort的部署非常靈活,很多操作系統上都可以運行,可以運行在window xp,windows2003,linux等操作系統上。在Linux與Windows操作系統相比較之下,Linux更加健壯,安全和穩定。Snort的運行,主要是通過各插件協同工作才使其功能強大,所以在部署時選擇合適的數據庫,Web服務器,圖形處理程序軟件及版本也非常重要。

Snort部署時一般是由傳感器層、服務器層、管理員控制檯層三層結構組成。傳感器層層就是一個網絡數據包的嗅探器層,收集網絡數據包交給服務器層進行處理,管理員控制檯層則主要是顯示檢測分析結果。


運行

Snort的有三種模式的運行方式:嗅探器模式,包記錄器模式,和網絡入侵檢測系統模式。嗅探器模式僅僅是從捕獲網絡數據包顯示在終端上,包記錄器模式則是把捕獲的數據包存儲到磁盤,入侵檢測模式則是最複雜的能對數據包進行分析、按規則進行檢測、做出響應。

不足

Snort入侵檢測系統適應多種平臺,源代碼開放,使用免費,受衆多用戶喜愛,但也有不少缺點。Snort之所以說他是輕量型就是說他的功能還不夠完善,比如與其它產品產生聯動等方面還有待改進;Snort由各功能插件協同工作,安裝複雜,各軟件插件有時會因版本等問題影響程序運行;Snort對所有流量的數據根據規則進行匹配,有時會產生很多合法程序的誤報。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章