Snort的配置與使用.ppt_第1頁
Snort的配置與使用.ppt_第2頁
Snort的配置與使用.ppt_第3頁
Snort的配置與使用.ppt_第4頁
Snort的配置與使用.ppt_第5頁
免費預覽已結束,剩余110頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第六章 Snort的配置與使用,入侵檢測技術,本章內容,Snort的安裝與配置 Snort的總體結構分析 Snort的使用 Snort的規(guī)則 使用Snort構建入侵檢測系統(tǒng)實例,6.1 Snort的安裝與配置,3,一、Snort簡介,snort 是一個用C語言編寫的開放源代碼的軟件 Snort是一個跨平臺的,輕量級的網(wǎng)絡入侵軟件,基于libpcap的數(shù)據(jù)包嗅探器和日志記錄工具 Snort采用基于規(guī)則的網(wǎng)絡信息搜索機制,對數(shù)據(jù)包進行內容的模式匹配,從中發(fā)現(xiàn)入侵和探測行為。 Martin Roesch Snort Team Snort ,1. Snort的組成 數(shù)據(jù)包解碼器 檢測引擎

2、 日志和報警子系統(tǒng),2. Snort的工作模式(3種) 嗅探器 數(shù)據(jù)包記錄器 網(wǎng)絡入侵檢測系統(tǒng),4. Snort的工作模式(3種) 嗅探器嗅探器模式僅僅是從網(wǎng)絡上讀取數(shù)據(jù)包并作為連續(xù)不斷的流顯示在終端上。 ./snort v ./snort vd ./snort vde 數(shù)據(jù)包記錄器數(shù)據(jù)包記錄器模式把數(shù)據(jù)包記錄到硬盤上。 ./snort dev l ./log,網(wǎng)絡入侵檢測系統(tǒng)網(wǎng)絡入侵檢測模式是最復雜的,而且是可配置的。用戶可以讓Snort分析網(wǎng)絡數(shù)據(jù)流以匹配用戶定義的一些規(guī)則,并根據(jù)檢測結果采取一定的動作。 ./snot dev l ./log c snort.conf,二、Snort軟件的

3、下載,下載snort 入侵檢測的核心部分 下載winpcap或者libpcap http:/winpcap.polito.it/ 網(wǎng)絡數(shù)據(jù)包截取驅動程序,用于從網(wǎng)卡中抓取數(shù)據(jù)包,輔助軟件: Acid(Analysis Console for Intrusion Databases ) 基于PHP的入侵檢測數(shù)據(jù)庫分析控制臺 ADOdb(ADOdb Database Abstraction Library) Adodb庫為PHP提供了統(tǒng)一的數(shù)據(jù)庫連接函數(shù) Apache Windows版本的Apache Web 服務

4、器 Jpgraph PHP所用圖形庫 Mysql Windows版本的Mysql數(shù)據(jù)庫, 用于存儲snrot的日志,報警,權限等信息 PHP Windows中PHP腳本的支持環(huán)境,三、 Windows環(huán)境下Snort的安裝,ACID+snort的入侵檢測系統(tǒng) 1. 搭建apache+PHP的運行環(huán)境 2. 安裝snort和Winpcap 3. 安裝MySQL 4. 安裝ADOdb 5. 安裝Jpgraph 6. 安裝和配置ACID 7. 配置和啟動snort,幾點說明,1. 在snort中有一腳本create_mysql,用于建立所有必要的表。 C:mysqlbinmysql u root p

5、 (Mysql)create database snort; (Mysql)quit (c:mysqlbin)Mysql D snort u root p C:snortcontribcreate_mysql,為用戶分配權限 (mysql)grant usage on *.* to acidloacalhost identified by “acidPwd”; (mysql)grant select,insert,update,delete,create,alter on snort.* to acidlocalhost;,需要了解的Mysql命令: 顯示數(shù)據(jù)庫列表: show databas

6、es; 顯示庫中的數(shù)據(jù)表: use mysql; show tables; 建庫與刪庫: create database 庫名; drop database 庫名;,激活和配置ACID 解壓縮acid至apache安裝目錄的htdocsacid目錄下 修改htdocsacid下的acid_conf.php文件 DBlib_path = C:phpadodb; $DBtype=”mysql”; $alert_dbname = snort; $alert_host = localhost; $alert_port = 3306; $alert_user = acid; $alert_passwor

7、d = acidpwd;,/* Archive DB connection parameters */ $archive_dbname = snort_archive; $archive_host = localhost; $archive_port = 3306; $archive_user = acid; $archive_password = acidpwd; $ChartLib_path=”C:phpjpgraphsrc”;,:50080/acid/acid_db_setup.php,配置并啟動snort 打開C:snortetcsnort.conf文件,

8、將文件中的下列語句: include classification.config include reference.config 修改為絕對路徑: include C:snortetcclassfication.config include C:snortetcreference. config 在該文件的最后加入下面語句: 目的:將日志記錄到數(shù)據(jù)庫中 output database: alert,mysql,host=localhost user=snort password=snortpwd dbname=snort encoding=hex detail=full,進入命令行方式,輸入

9、下面的命令: C:snortbinsnort c “C:snortetcsnort.conf” l “C:snortlog” d e X X參數(shù):用于在數(shù)據(jù)鏈接層記錄rawpacket數(shù)據(jù);d參數(shù):記錄應用層的數(shù)據(jù);e參數(shù):顯示記錄第二層報文頭數(shù)據(jù);c參數(shù):用以指定snort的配置文件的路徑;i參數(shù):指定監(jiān)視的網(wǎng)絡適配器的編號。 上面的命令將啟動snort,如果snort正常運行,系統(tǒng)最后將顯示如下圖所示,四、Snort的配置,配置snort.conf文件 設置網(wǎng)絡相關變量; 配置預處理器; 配置輸出插件; 定制snort規(guī)則集。,設置網(wǎng)絡相關變量 Snort.conf中的主要環(huán)境變量有: v

10、ar HOME_NET any 本地網(wǎng)絡 var EXTERNAL_NET any 外地網(wǎng)絡 var DNS_SERVER $HOME_NET var HTTP_SERVER $HOME_NET var SQL_SERVER $HOME_NET var TELNET_SERVER $HOME_NET var SNMP_SERVER $HOME_NET,var HTTP_PORTS 80 var ORACLE_PORTS 1521 var RULE_PATH ./rules 本地規(guī)則路徑,配置預處理器 是在基于規(guī)則的模式匹配之前運行的模塊,通常為規(guī)則匹配進行一些前期的處理。如:IP分片重組(fr

11、ag2)、TCP流重組(stream4) 、各種應用層解碼等。根據(jù)需要配置,通常采用默認值.,配置輸出插件 主要在報文匹配某條規(guī)則需要輸出時,調用相應的輸出插件。根據(jù)snort.conf說明進行相應配置。 例: output database :log, mysql, user=westfox dbname=detector host=localhost password password=t123 port=1234 output database: alert, mysql, host=localhost user=snort password=snorttest dbname=snort

12、 encoding=hex detail=full,定制snort規(guī)則集 #include include $RULE_PATH/local.rules,6.2 Snort的總體結構分析,Snort的模塊結構 插件機制 Snort的總體流程 入侵檢測流程,Snort分析,32,一、Snort總體結構分析,Snort的模塊組成及其相互關系,二、Snort的插件機制,優(yōu)點 增強可擴展性 簡化編碼工作 使代碼功能內聚,模塊行強,程序相對易讀 插件模塊包括預處理插件、處理插件和輸出插件3種,它們通常對應規(guī)則中的一個或幾個關鍵字,規(guī)則匹配中遇到這些關鍵字時就會激活相應的插件,以完成相應的功能。,1預處理

13、插件 它們的源文件名都是以spp_開頭的,在規(guī)則匹配(誤用檢測)之前運行,完成的功能主要分為以下幾類。 模擬TCP/IP堆棧功能的插件:如IP碎片重組、TCP流重組插件。 各種解碼插件:如HTTP解碼插件、Unicode解碼插件、RPC解碼插件、Telnet協(xié)商插件等。 規(guī)則匹配無法進行攻擊檢測時所用的檢測插件:如端口掃描插件、Spade異常入侵檢測插件、Bo檢測插件、Arp欺騙檢測插件等。,2處理插件 它們的源文件名都以sp_開頭,在規(guī)則匹配階段的ParseRuleOptions中被調用,輔助完成基于規(guī)則的匹配檢測過程。每個規(guī)則處理函數(shù)通常對應規(guī)則選項中的一個關鍵字,實現(xiàn)對這個關鍵字的解釋或

14、輔助解釋。 這些插件的主要功能如下。 協(xié)議各字段的檢查,如TCPFlag,IcmpType,IcmpCode,Ttl,IpId,TcpAck,TcpSeq,Dsize,IpOption,Rpc,IcmpId,IcmpSeq,IpTos,F(xiàn)ragBits,TcpWin,IpProto和 IpSame等。 一些輔助功能,如Respond,Priority,PatternMatch,Session,React,Reference等,這些插件分別完成響應(關閉連接)、嚴重級別、模式匹配(內容)、會話記錄、攻擊響應(高級的響應機制)、攻擊參考信息等功能。,3輸出插件 它們的源文件名都以spo_開頭,這些

15、插件分為日志和警告兩種類型放入兩個列表中,在規(guī)則匹配過程中和匹配結束之后調用,以便記錄日志和警告。,以一個HTTP解碼預處理器插件為例來解釋插件的內部結構: 每個插件都有一個安裝函數(shù),名稱為SetupXXX(),如Spp_http_decode.c:SetupHttpDecode()。 在解釋規(guī)則文件時,如果檢測到相應的關鍵字,系統(tǒng)就會使用規(guī)則文件中這些關鍵字后的字符串作為參數(shù)來調用相應的初始化函數(shù)。 在檢測過程中,一旦規(guī)則匹配成功,就會觸發(fā)處理函數(shù)的執(zhí)行,預處理器就會在預處理過程中對數(shù)據(jù)報調用相應處理函數(shù)進行處理。,三、Snort的總體流程,四、入侵檢測流程,規(guī)則解析流程 規(guī)則匹配流程,入侵

16、檢測流程規(guī)則解析流程,Snort規(guī)則內存表示邏輯圖,入侵檢測流程規(guī)則匹配流程,Snort規(guī)則匹配檢測流程,6.3 Snort的使用,Snort的命令行 高性能的配置方式,一、Snort的命令行,Snort命令參數(shù)及作用 c:snortoptions 主要snort參數(shù)介紹 -A 設置的模式是full、fast,還是none;full模式是記錄標準的alert模式到alert文件中;fast模式只寫入時間戳、messages、IPs、ports到文件中,none模式關閉報警。 -a 顯示ARP包。,-b 把LOG的信息包記錄為TCPDUMP格式,所有信息包都被記錄為二進制形式,這個選項對于fas

17、t記錄模式比較好,因為它不需要花費包的信息轉化為文本的時間。Snort在100Mbps網(wǎng)絡中使用“b”比較好。 -c 使用配置文件,這個規(guī)則文件是告訴系統(tǒng)什么樣的信息要LOG,或者要報警,或者通過。 -C 在信息包信息使用ASCII碼來顯示,而不是hexdump。,-d 解碼應用層 -D 把Snort以守護進程的方法來運行,默認情況下alert記錄發(fā)送到/var/log/snort.alert文件中去。 -e 顯示第二層(數(shù)據(jù)鏈路層)的包頭信息。 -F 從文件中讀BPF過濾器(filters),這里的filters是標準的BPF格式過濾器。,-h 設置網(wǎng)絡地址,如一個C類IP地址192.168

18、.0.1,使用這個選項,可限制數(shù)據(jù)進出的方向。 -i 使用網(wǎng)絡接口參數(shù)。 -l :LOG信息包記錄到目錄中去。 -M : 發(fā)送WinPopup信息到包含文件中存在的工作站列表中去,這選項需要Samba的支持,wkstn文件很簡單,每一行只要添加包含在SMB中的主機名即可(注意不需要兩個斜杠)。,-n 指定在處理個數(shù)據(jù)包后退出。 -N: 關閉Log記錄,但ALERT功能仍舊正常。 -o 改變所采用的記錄文件,如正常情況下采用AlertPassLog,而采用此選項是這樣的順序:PassAlertLog,其中Pass是那些允許通過的規(guī)則而不記錄和報警,ALERT是不允許通過的規(guī)則,LOG指LOG記錄

19、。 -p 關閉雜亂模式嗅探方式,一般用來更安全的調試網(wǎng)絡。,-r 讀取tcpdump方式產(chǎn)生的文件,這個方法用來得到一個Shadow(ShadowIDS產(chǎn)生)文件,因為這些文件不能用一般的EDIT來編輯查看。 -s LOG: 報警的記錄到syslog中去,在LINUX機器上,這些警告信息會出現(xiàn)在/var/log/secure,在其它平臺上將出現(xiàn)在/var/log/message中。 -S 設置變量值,這可以用來在命令行定義Snortrules文件中的變量,如要在Snortrules文件中定義變量HOME_NET,可以在命令行中給它預定義值。,-v 使用為verbose模式,把信息包打印在con

20、sole中,這個選項使用后會使速度很慢,這樣結果在記錄多的是時候會出現(xiàn)丟包現(xiàn)象。 -V 顯示SNORT版本并退出。 -? 顯示幫助信息。 -W Lists available interfaces. (Win32 only) 以上這些參數(shù)大多可組合進行使用。,Snort入侵檢測實例 1.實現(xiàn)快速嗅探在命令行輸出檢測到的IP/TCP/UDP/ICMP數(shù)據(jù)。如果想要把數(shù)據(jù)的包頭信息在命令行顯示,可以使用:c:snort-v-i2 命令行中會打印出如下的數(shù)據(jù): =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+06/09-15:01:13.846531172.22.140.

21、117:61440_49:61440UDPTTL:64TOS:0 x0ID:50650IpLen:20DgmLen:64Len:36 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+,如果打開-d開關,將顯示HEX和ASCII形式的應用數(shù)據(jù)(OSI模型的第七層),命令如下:c:snort-vd-i2 命令行中會打印出如下的數(shù)據(jù): =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+05/2516:25:22.22856403:137_55:137UDPTTL:128TOS

22、:0 x0ID:34222IpLen:20DgmLen:78Len:50B4 52 01 10 00 01 00 00 00 00 00 00 20 44 46 45.R.DFE44 45 43 44 47 45 43 44 41 44 48 44 4A 44 49 44 DECDGECDADHDJDID43 45 46 44 44 44 45 44 42 45 42 41 41 00 00 20 CEFDDDEDBEBAA. 00 01.=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+,2.實現(xiàn)記錄數(shù)據(jù)包先建立一個LOG目錄,再使用下面的命令: c:snortbi

23、n-snort-de-l c:snortlog-i2 注意這里少了-v選項,這意味著Snort將不在屏幕上顯示輸出信息。命令的前部分使Snort進入探測模式,它在c:snortlog目錄下為每個用戶發(fā)起的連接創(chuàng)建文件。每個文件中包含的是以ASCII格式顯示的流量信息。同時,在該目錄下,會自動生成日志文件,前面的配置創(chuàng)建了基于文本的文件,其中包含流量的解碼。利用下面的命令: c:snortbin-snort-l c:snortlog-b-i2 這時命令行會進入數(shù)據(jù)包記錄界面,同時在c:snortlog目錄下會生成一個名如snort.log.1244770040的日志文件,所有的網(wǎng)絡流量將以二進制

24、的形式記錄下來,并且以PCAP的格式寫入到該日志文件中。,這樣做的優(yōu)點: (1)允許利用開放源碼或者商業(yè)的探測器程序進行瀏覽,例如,Wireshark等。 (2)允許重放Snort或者探測程序。 (3)速度快,基本上Snort可以得到所有的流量并寫入到文件。,現(xiàn)在,如果想重新讀入剛剛創(chuàng)建的PCAP格式的文件,并且讓Snort像前面那個例子那樣解碼,該怎么辦呢? 下面的命令可以把文件重新讀入到Snort,用于解碼: c:snortbin_snort-de-r snort.log.1244532070 另外也可以應用BPF過濾程序對日志文件進行過濾:c:snortbin - snort-de-F

25、c:filter -r snort.log.1244532070,二、高性能的配置方式,在一個高數(shù)據(jù)流量(如大于100Mb/s)的網(wǎng)絡環(huán)境下運行snort,就需考慮如何配置snort才能使它高效率地運行,這就要求使用更快的輸出功能,產(chǎn)生更少的警告,可使用: -b,-A fast, -s等選項。,6.4 Snort的規(guī)則,規(guī)則結構 規(guī)則的語法 攻擊手段對應規(guī)則舉例 規(guī)則的設計,一、規(guī)則的結構,snort的每條規(guī)則都可以分成邏輯上的兩個部分: 規(guī)則頭 規(guī)則選項 規(guī)則頭包括:規(guī)則行為(rules action)、協(xié)議(protocol)、源/目的IP地址、子網(wǎng)掩碼以及源/目的端口。 規(guī)則選項包含報警

26、信息和異常包的信息(特征碼,signature),使用這些特征碼來決定是否采取規(guī)則規(guī)定的行動。,alert tcp any any - /24 111 (content:”|00 01 86 a5|”;msg:”mountd access”;),規(guī)則頭,規(guī)則選項,規(guī)則操作 協(xié)議 源IP 源端口 方向操作符 目的IP 目的端口,規(guī)則含義: 任何使用TCP協(xié)議連接網(wǎng)絡/24中任何主機的111端口的數(shù)據(jù)包中,如果出現(xiàn)了二進制數(shù)據(jù)00 01 86 a5,便發(fā)出警告信息mountd access,1.規(guī)則頭 (1)規(guī)則的動作 alert:使用選定的報警方法產(chǎn)生

27、報警信息,并且記錄數(shù)據(jù)包 log:記錄數(shù)據(jù)包 pass:忽略數(shù)據(jù)包 activate:報警并激活另一條dynamic規(guī)則 dynamic:保持空閑狀態(tài),直到被activete規(guī)則激活,作為一條log規(guī)則 自定義動作(ruletype),(2)協(xié)議 每條規(guī)則的第二項就是協(xié)議項。當前,snort能夠分析的協(xié)議是:IP、TCP、UDP和ICMP,(3)IP地址 關鍵詞any可以用來定義任意的IP地址 地址只能使用數(shù)字/CIDR的形式 /24表示一個C類網(wǎng)絡;/16表示一個B類網(wǎng)絡;而/32表示一臺特定的主機地址 /24表示從到55 在

28、規(guī)則中,可以使用使用否定操作符(?。P地址進行操作 alert tcp !/24 any - /24 111 IP地址表示:所有IP源地址不是內部網(wǎng)絡的地址,而目的地址是內部網(wǎng)絡地址,IP地址列表的格式 IP地址1/CIDR,IP地址/CIDR,. 每個IP地址之間不能有空格 alert tcp !/24,.0/24 any -/24,/24 111 (4)端口號 any、靜態(tài)端口號 、端口范圍(:),以及使用非操作定義 例: 1:1023 :1024,(5)方向操作符

29、- (6)activate和dynamic規(guī)則 activates: activated_by:,2. 規(guī)則選項 規(guī)則選項構成了snort入侵檢測引擎的核心 在每條snort規(guī)則中,選項之間使用分號進行分割。 規(guī)則選項關鍵詞和其參數(shù)之間使用冒號分割,Snort規(guī)則選項,msg:在報警和日志中打印的消息 msg:; 例:alert tcp $EXTERNAL any - $INTERNAL 79(msg:”Finger”) logto:把日志記錄到一個用戶指定的文件,而不是輸出到標準的輸出文件 使用這個選項,對處理來自nmap掃描、HTTP CGI掃描的數(shù)據(jù)非常方便。注意如果使用二進制日志模式,

30、這個選項會失效。 logto:;,ttl:測試IP包頭的TTL域的值 ttl:; 支持 和=操作符 tos:測試IP包頭的TOS域的值 tos:; 例; alert tcp $EXTERNAL any - $CISCO any (msg:”Cisco TOS Example”;tos:!”0”;),id:測試IP分組標志符(fragment ID)域是否是一個特定的值 id: ; ipoption:查看IP選項(IP option)域 rr:路由記錄 ,eof:End of list ,nop:無操作 ,ts:時間戳 ,sec:IP安全選項 ,lsrr:寬松源路由 ,ssrr:嚴格源路由 ,s

31、atid:流標識符 ipopts: ;,fragbits:測試IP包頭的分片位 R:保留位D:DF位M:MF位 + ALL標志,指定的位加上任何其它的位為真 * ANY標志,指定的任何位為真! NOT標志,指定的位不為真 - 不包含指定位 例: alert tcp !$HOME_NET any - $HOME_NET any (fragbits:R+;msg:Reserverd IP bit set!;),dsize:測試數(shù)據(jù)包數(shù)據(jù)段的大小 這個規(guī)則選項用來測試數(shù)據(jù)包負載的大小 如果知道某個服務有一個特定大小的緩沖區(qū),就能夠設置這個選項來捕獲制造緩沖區(qū)溢出的企圖 dsize: |,flags:

32、測試TCP標志(flag)是否是某個值 F:FIN(TCP標志字節(jié)最左邊一位)S:SYNR:RSTP:PSHA:ACKU:URG2:保留位21:保留位1 例: alert any any - /24 any (flags:SF;msg:Possible SYN FIN scan;),seq:測試TCP包的序列號是否是某個值 seq: ack:測試TCP包的確認域是否為某個值 只有一個實際的用途:檢測NMAP TCP ping掃描。 掃描程序nmap進行TCP ping掃描時,把TCP包頭的確認號(4個字節(jié))設置為0,然后向目標主機發(fā)出TCP ACK包,確定目標主機是否正在

33、運行 alert any any - /24 any (flags:A;ack:0;msg:nmap TCP ping;),itype:測試ICMP數(shù)據(jù)包的類型(type)域 拒絕服務和淹沒攻擊的數(shù)據(jù)包有時使用無效的ICMP類型,可以使用這個規(guī)則選項對無效的ICMP類型進行檢測,也就是說,這個規(guī)則選項中的值可以不是正常的數(shù)值 itype: icode:測試ICMP數(shù)據(jù)包的編碼(code)域 icode規(guī)則選項和itype非常相似,也是使用數(shù)字進行設置 icode:,icmp_id:測試ICMP回送包的標志符(ICMP ECHO ID)是否為某個值 icmp_id: icm

34、p_seq:檢測ICMP回送包的序列號的值 因為一些隱秘通道程序在通訊時使用靜態(tài)的ICMP域。 icmp_seq:,content:在數(shù)據(jù)包的數(shù)據(jù)段中搜索模式進行比較的數(shù)據(jù)中可以包含二進制數(shù)據(jù):|00 01 86 a5|/bin/sh; content:; alert tcp any any - /24 143(content:“|90c8 c0ff ffff|/bin/sh”; msg:IMAP buffer overflow); “|” 。管道符號,offset:調整content選項,設置開始搜索的偏移量 depth:調整content選項,設置搜索最大深度 ale

35、rt tcp any any - /24 80 (content:cgi-bin/phf; offset:3; depth:22; msg:CGI-PHF access;),nocase:大小寫不敏感匹配內容字符串 nocase; alert tcp any any - /24 21 (content:USER root; nocase; msg:FTP root login attempt;),session:對一個指定的會話記錄其應用層信息 觀察用戶在telnet、rlogin、ftp,甚至WEB會話過程中輸入了什么,就可以使用這個規(guī)則選項 se

36、ssion規(guī)則選項有兩個參數(shù)關鍵詞:printable、all。 log tcp any any /24 23 (session: printable;),content-list:在數(shù)據(jù)包的數(shù)據(jù)段中搜索模式清單 使用content-list關鍵詞可以指定更多的正文字符串,突破了content規(guī)則選項只能指定單一字符串的限制。 每個要搜索的字符串占一行。這個規(guī)則選項是使用react關鍵詞的基礎 content-list:; #adult sites porn adults hard core # .,react:激活反應措施(阻塞WEB站點) 基本的反應就是阻塞用戶要訪問

37、的站點,例如色情站點 block:關閉連接并發(fā)出注意信息warn:發(fā)出警告信息 msg:定義要包含在警告信息中的文本proxy::使用代理服務器端口發(fā)送警告信息 可選參數(shù)使用逗號分開,react關鍵詞應該放在所有選項的最后 react: alert tcp any any /24 80 (content-list:“adults”; msg:“Not for children!”; react:block,msg;),rpc:觀察RPC服務對特定應用程序的調用 規(guī)則選項rpc可以使snort觀察RPC請求,并且自動對應用程序、過程、程序版本進行解碼。只有這三個變量都匹配時

38、,才算成功。統(tǒng)配符*可以用來代替過程和版本號 alert tcp any any - /24 111 (rpc: 100000,*,3;msg:RPC getport (TCP);),resp:激活反應措施(斷開連接等) 對于匹配某個規(guī)則的數(shù)據(jù)包,可以通過resp關鍵詞使snort的靈活反應機制生效。使用FlexResp插件,snort能夠主動斷開惡意連接 rst_snd:向發(fā)送方套接字發(fā)送TCP-RST數(shù)據(jù)包rst_rcv:向接受方套接字發(fā)送TCP-RST數(shù)據(jù)包rst_all:在兩個方向上發(fā)送TCP-TST數(shù)據(jù)包icmp_net:向發(fā)送方發(fā)送ICMP_NET_UNREA

39、CH數(shù)據(jù)包icmp_host:向發(fā)送方發(fā)送ICMP_HOST_UNREACH數(shù)據(jù)包icmp_port:向發(fā)送方發(fā)送ICMP_PORT_UNREACH數(shù)據(jù)包icmp_all:向發(fā)送方發(fā)送以上各種類型的ICMP數(shù)據(jù)包多個參數(shù)可以結合使用,各個參數(shù)之間使用逗號隔開。,alert tcp any any - /24 1524 (flags:S;resp:rst_all;msg:Root shell backdoor attempt;) alert udp any any - .0/ 31 (resp:icmp_port,icmp_host;msg:Hacke

40、rs Paradise access attempt;),uricontent: 在特定的URL字段域內搜索特定模式; flow : 指定網(wǎng)絡TCP數(shù)據(jù)流的方向,例如從服務器發(fā)出或是客戶端發(fā)出; flow: to_server to_client .,其他Snort規(guī)則選項,reference: 外部參考idsid: snort的規(guī)則idrev: 規(guī)則的修正號classtype: 規(guī)則的分類號priority: 規(guī)則的優(yōu)先級tag: 高級記錄動作ip_proto: ip頭的協(xié)議值sameip: 源地址和目標地址相同stateless: 無狀態(tài)連接regex: 通配符模式匹配,二、規(guī)則的語法,規(guī)

41、則分類存放在規(guī)則文件中 規(guī)則文件是文本文件“類名.rules”, 在snort.conf文件類激活。 規(guī)則要在一行內寫完 注釋行使用#開頭,規(guī)則中使用變量名的定義 變量的定義格式: var 例: var MY_NET /24 alert tcp any any -$MY_NET any(flags:S;msg:”SYN Packet”),說明: 1) $name 或$(name) :用name的內容替換變量name 2) $(name:-default):如果name沒有定義就使用default的內容替換變量 4) $(name:?message):使用變量name的內容

42、替換變量,如果不成功就打印錯誤信息message并退出。 例: var MY_NET $(MY_NET:-/24) log tcp any any - $(MY_NET:?MY_NET is undefined!) 23,include 例: include $RULE_PATH/local.rules #include $RULE_PATH/ftp.rules,三、攻擊手段對應規(guī)則舉例,實例1: IIS發(fā)布之初,附帶的例子網(wǎng)頁存在漏洞 特點: 保存在Web根目錄下的/site/iisamples目錄下。 alert tcp $EXTERNAL_NET any -$HTT

43、P_SERVER 80(msg:”WEB_IIS site/iisamples access”;flag:A+; uricontent:”/site/iisamples”;nocase;classtype:attemped-recon;sid:1046;rev:1;),實例2: 紅色代碼的一個變種CodeRed。 特點 利用MS Index Server(.ida/.idq)ISAPI擴展遠程溢出漏洞(MS01-033) alert tcp $EXTERNAL any-$INTERNAL 80 (msg:”IDS552/web-iis_IIS ISAPI Overflow ids”;dsize

44、:239;flags:A+;uricontent:”.ida?”;classtype:system-or-info-attempt;reference:arachnids,552;),規(guī)則的更新,經(jīng)常訪問snort的官方網(wǎng)站,更新它所發(fā)布的規(guī)則。 加入snort的郵件列表 根據(jù)自己的環(huán)境定制自己的規(guī)則,四、規(guī)則的設計,根據(jù)網(wǎng)絡的安全策略定制自己的規(guī)則 對付新的攻擊 自己動手寫好的規(guī)則 加速含有內容選項的規(guī)則,修改已存在的規(guī)則 假設某機構中只有一臺IIS服務器,管理員想修改相關規(guī)則使它僅僅應用在這臺服務器上,而不是用在每臺web服務器上,一開始你可能想修改snort-

45、sigs郵件列表的后綴為.htr chunked的編碼規(guī)則,這條規(guī)則如下:,alert tcp $EXTERNAL_NET any - $HTTP_SERVER $HTTP_PORTS(msg:”WEB_IIS .hrt chunked encoding”; uricontent:”.htr”; classtype: web-application-attack; rev:1) alert tcp $EXTERNAL_NET any - $HTTP_PORTS(msg:”WEB_IIS .hrt chunked encoding”; uricontent:”.htr”;

46、 classtype: web-application-attack; rev:2),alert tcp $EXTERNAL_NET any - $HTTP_PORTS(msg:”WEB_IIS .hrt chunked encoding”; flow:to_server,establish; uricontent:”.htr”; classtype: web-application-attack; rev:3),POST /EEYE.htr HTTP/1.1 Host: Transfer-Encoding:chunked 20 XXXXXXXXXXXXXXXXXXXX

47、XXXXEEYE2002 0 Enter Enter,alert tcp $EXTERNAL_NET any - $HTTP_PORTS(msg:”WEB_IIS .hrt chunked encoding”; flow:to_server,establish; uricontent:”.htr”; content:”Transfer-Encoding:”; content:”chunked”; classtype: web-application-attack; rev:4),alert tcp $EXTERNAL_NET any - $HTT

48、P_PORTS(msg:”WEB_IIS .hrt chunked encoding”; flow:to_server,establish; uricontent:”.htr”; content:”Transfer-Encoding:”; content:”chunkd”; nocase; classtype: web-application-attack; rev:5),一些規(guī)則使用的例子,(1)記錄所有登錄到一個特定主機的數(shù)據(jù)包: log tcp any any - /32 23 (2)在第一條的基礎上記錄了雙向的流量: log tcp any any /32 23 (3)這一條規(guī)則記錄了所有到達你的本地主機的icmp數(shù)據(jù)包: log icmp any any - /24 any,(4)這條規(guī)則允許雙向的從你的機子到其他站點的http包: pass tcp any 80 /24 any (5)這條告警規(guī)則顯示了本地主機對其他主機的111端口的訪問,并在log中顯示端口影射調用(portmap

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論