歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

使用Snort1.7

  使用Snort1.7 westfox([email protected])06/08/2001 1. 簡介 2. 安裝(Linux)及配置 3. 使用Snort 4. 入侵檢測 5. Snort Addons 6. 參考資料 1. 簡介 Snort是一個開放源碼的網絡入侵檢測系統。Snort的功能包括 1) 采用Libpcap捕獲數據鏈路層的分組並進行協議棧分析(TCP/IP協議)。 2) 在內部Snort使用Misused檢測模型進行入侵檢測,即通過一個完整的入侵規則庫來實時匹配並探測入侵行為。這個規則庫非常全面,包含了探測緩沖區溢出,端口掃描,CGI攻擊等等,並處於不斷更新當中。如果你使用nmap或Trin00等進行攻擊,可能你就會被snort輕易的發現。Snort也允許用戶方便的編寫並加入自己的規則。 3) 日志可以存儲成Tcpdump二進制格式,或ASCII格式,或數據庫格式(包括mysql,PostgreSQL),甚至包括XML格式。 2. 安裝(Linux)及配置 以Linux平台為例,安裝很簡單, $tar xzvf snort-1.7.tar.gz $cd snort-1.7 $./configure $make Make之後,在當前目錄下會產生一個snort可執行文件。 snort的配置文件使snort.conf,配置包含四步 1)設置網絡相關變量, IDS需要區分“內網”和外網,比如我所在子網IP是202.197.40.91,則配置為 var HOME_NET 202.197.40.0/24 #內網 var EXTERNAL_NET any #外網,關鍵字any這裡表示HOME_NET之外的所有地址 var DNS_SERVERS 202.197.32.12 #DNS 服務器 2)配置預處理器 預處理器是snort在捕獲分組時對分組作的一些"預處理"動作,比如探測過小的IP碎片,重組 IP分組,重組TCP報文等,snort預處理程序為spp_*.c形式,比如spp_defrag.c實現重組IP包。用戶可以預處理配置參數,如 preprocessor minfrag: 128 設置碎片小於128字節為非法。 3) 配置輸出插件(output plugins) Snort的插件結構允許開發者擴展snort的功能。輸出插件負責信息的輸出,你可以選擇ASCII文本文件存儲日志,也可以選擇存儲到MySQL數據庫中,也可以使用IAP協議將信息傳給管理器Manager(參見snortnet)。 這是一個MySQL的例子 output database: log, mysql, user=westfox dbname=detector host=localhost passWord=t123 port=1234 上面例子表示使用MYSQL RDBMS,數據庫名為detector,用戶名westfox,密碼t123,本地存儲,MySQL Server端口號為1234。 Snort源代碼中contrib目錄下有一個create_mysql文件,可以用來方便的構造snort所需的MySQL庫表結構,假設你已新建了一個名為detector,並將足夠的權限交給westfox,則 $mysql detector -u westfox -p <./contrib/create_mysql 上面的命令就可以建好detector庫的表結構。 4) 定制Snort 規則集(Rule Set) Snort的規則集是一般的文本文件,命名為*-lib,如backdoor-lib處理backdoor類型的入侵。所有這些*-lib文件都用“include”包含進snort.conf(1.6.3版本中名為snort-lib)中,如果用戶對某種攻擊類型的探測不感興趣,可以簡單將相應的一行注釋掉。如 -------Cut from snort.conf--------- include webcgi-lib #include webcf-lib 你對ColdFusion並不感興趣 include webiis-lib include webfp-lib include webmisc-lib include overflow-lib include finger-lib include FTP-lib


include smtp-lib include my-lib #用戶自己編寫的規則文件 ------------------------------------- 用戶也可以自己編寫規則文件,如My-lib,,Snort規則編寫語法以有人譯出,這裡不再敘述。 3.使用Snort Snort可以工作在三種模式下: 1) 嗅探器sniffer: 命令:snort -v [-d][-X] Snort使用Libpcap包捕獲庫,即TCPDUMP使用的庫。在這種模式下,Snort使用網絡接口的混雜模式讀取並解析共享信道中的網絡分組。BPF表達式可用來過濾流量。 -v verbose -d 轉儲應用層數據 -X 轉儲從鏈路層開始的原始包 2) 分組日志模式 命令:snort -l dir [-h hn][-b] 這種模式下以ASCII格式記錄解析出的分組。 -l Directory snort將把日志放在這個目錄下 -h X.X.X.X 設置本地子網號 -b 日志使用TCPDUMP二進制格式 3) 入侵檢測模式 命令: snort -c snort.conf [-l dir] 必須載入規則庫才能進入入侵檢測模式。即 #./snort -c snort.conf snort將報警信息放入/var/log/snort目錄下,可以用-l選項來改變目錄 4. 入侵檢測 Snort是一個輕量級的網絡入侵檢測系統(NIDS),采用Misused 模式進行檢測。在1.7裡,新增加的Spade插件使得Snort支持Anormal模式檢測。Snort的檢測規則是二維的,即包含規則頭和規則選項兩部分,這比較其他IDS定義的規則來說簡單的多。Snort新的插件reference可以將確定的攻擊行為同Bugtraq, CVE , arachNIDS, McAfee virus這些標准的攻擊標識庫結合,給出在線的有關此攻擊的URL參考資料。snort的探測規則庫也是時時更新反映上面這些庫的變化,用戶可以到www.snort.org上下載新的規則庫文件。 Snort本身具有良好的擴展性,包含預處理插件,插件和輸出插件三類plugins,snort運行的一個流程如下 ------------------------------------------------------------------------ Libpcap捕獲分組---->TCP/IP協議棧分析---->規則探測---->日志和報警 預處理插件 插件 輸出插件 ------------------------------------------------------------------------ 從上面可以知道,在Snort處理流程的三個重要環節,開發者都可以編寫自己的plugins來擴展功能。 當然,一般用戶僅用snort自帶的探測庫也可以探測絕大多數的攻擊。以端口掃描攻擊為例標准的snort.conf文件有一行配置portscan預處理器(源程序spp_portscan.c): preprocessor portscan: $HOME_NET 4 3 portscan.log 上一行表示對於目標地址屬於本地子網的IP流,如果在少於三秒內發現連續四次TCP SYN包或UDP的"SYN"包,指示有portscan攻擊,並記錄到portscan.log文件中。 Snort除了統計指定時間內的連接次數外,還根據各種掃描模式的特征來探測,這些規則在scan-lib中,如 alert tcp any any -> $HOME_NET any (msg:"Possible NMAP Fingerprint attempt"; flags: SFPU;) 探測NAMP的Fingerprint掃描,標志是SYN,FIN,PSH,URG全置位。 5. Snort Addons Snort1.7的contrib目錄下包含了幾個有用的snort工具。 5.1 snort-net Snort-net是一個建立在snort上的分布式入侵檢測系統(DIDS)。在snort-net裡,多個snort作為感應器(sensor)分布在各網段捕獲信息,snort-net提供一個管理器Manager,Manager負責和這些sensor聯絡,並提供一個管理者界面。Snort-net的Sensor和Manager之間采用IAP協議通信。 Snort-net遠非完善缺陷包括 1) Snort-net所依賴的libiap庫(IAP協議的實現庫)現有的實現沒有達到IAP0.3協議所規定的功能,包括最重要的TLS1.0協議支持。 2) Manager只能做簡單的信息收集和顯示工作,而沒有分析綜合的能力 3) 顯示界面過於簡陋 4)傳遞的消息格式缺乏靈活性 雖然有這些缺點,snort-net給出了snort向DIDS發展的框架。 5.2 Spade Spade即Statistical Packet Anomaly Detection Engine(統計分組異常檢測引擎),它作為一個預處理插件存在,對Snort捕獲到的包做異常檢測(Anomaly Detection)。Spade僅僅是實驗性質的,並不實用。

5.3 IDMEF-XML 因特網工程任務組織(IETF)設立了一個入侵檢測工作小組(IDWG),他們制定了一個入侵檢測消息交換格式(IDMEF),IDMEF用XML語言描述。Idmef-xml輸出插件將snort報警消息轉換成IDMEF-xml格式。Snort通過這種消息格式可以將報警消息傳遞給別的軟件做進一步,只要對方遵循IDMEF-XML格式即可。 6. 參考資料 Snort Home http://www.snort.org Bugtrap http://www.securityfocus.com CVE http://www.cve.mitre.org arachNIDS http://www.whitehats.com/ids/ IDMEF http://www.silicondefense.com/idwg/idmef/



Bugtrap http://www.securityfocus.com CVE http://www.cve.mitre.org arachNIDS http://www.whitehats.com/ids/ IDMEF http://www.silicondefense.com/idwg/idmef/



Copyright © Linux教程網 All Rights Reserved