Snort的配置與使用課件_第1頁
Snort的配置與使用課件_第2頁
Snort的配置與使用課件_第3頁
Snort的配置與使用課件_第4頁
Snort的配置與使用課件_第5頁
已閱讀5頁,還剩111頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Snort的配置與使用Snort的配置與使用Snort的配置與使用本章內(nèi)容Snort的安裝與配置Snort的總體結(jié)構(gòu)分析Snort的使用Snort的規(guī)則使用Snort構(gòu)建入侵檢測系統(tǒng)實例2021/2/42本章內(nèi)容Snort的安裝與配置Snort的總體結(jié)構(gòu)分析Snort的使用Snort的規(guī)則使用Snort構(gòu)建入侵檢測系統(tǒng)實例2021/2/426.1SNORT的安裝與配置32021/2/43一、Snort簡介snort是一個用C語言編寫的開放源代碼的軟件Snort是一個跨平臺的,輕量級的網(wǎng)絡入侵軟件,基于libpcap的數(shù)據(jù)包嗅探器和日志記錄工具Snort采用基于規(guī)則的網(wǎng)絡信息搜索機制,對數(shù)據(jù)包進行內(nèi)容的模式匹配,從中發(fā)現(xiàn)入侵和探測行為。MartinRoesch→……→SnortTeamSnort2021/2/441.Snort的組成數(shù)據(jù)包解碼器檢測引擎日志和報警子系統(tǒng)2021/2/452.Snort的工作模式(3種)嗅探器數(shù)據(jù)包記錄器網(wǎng)絡入侵檢測系統(tǒng)2021/2/464.Snort的工作模式(3種)嗅探器——嗅探器模式僅僅是從網(wǎng)絡上讀取數(shù)據(jù)包并作為連續(xù)不斷的流顯示在終端上。./snort–v./snort–vd./snort–vde數(shù)據(jù)包記錄器——數(shù)據(jù)包記錄器模式把數(shù)據(jù)包記錄到硬盤上。./snort–dev–l./log2021/2/47網(wǎng)絡入侵檢測系統(tǒng)——網(wǎng)絡入侵檢測模式是最復雜的,而且是可配置的。用戶可以讓Snort分析網(wǎng)絡數(shù)據(jù)流以匹配用戶定義的一些規(guī)則,并根據(jù)檢測結(jié)果采取一定的動作。./snot–dev–l./log–csnort.conf2021/2/48二、Snort軟件的下載下載snort入侵檢測的核心部分下載winpcap或者libpcaphttp://winpcap.polito.it/

網(wǎng)絡數(shù)據(jù)包截取驅(qū)動程序,用于從網(wǎng)卡中抓取數(shù)據(jù)包2021/2/49輔助軟件:Acid(AnalysisConsoleforIntrusionDatabases)

基于PHP的入侵檢測數(shù)據(jù)庫分析控制臺ADOdb(ADOdbDatabaseAbstractionLibrary)Adodb庫為PHP提供了統(tǒng)一的數(shù)據(jù)庫連接函數(shù)ApacheWindows版本的ApacheWeb服務器JpgraphPHP所用圖形庫MysqlWindows版本的Mysql數(shù)據(jù)庫,用于存儲snrot的日志,報警,權(quán)限等信息PHPWindows中PHP腳本的支持環(huán)境2021/2/410三、Windows環(huán)境下Snort的安裝ACID+snort的入侵檢測系統(tǒng)1.搭建apache+PHP的運行環(huán)境2.安裝snort和Winpcap3.安裝MySQL4.安裝ADOdb5.安裝Jpgraph6.安裝和配置ACID7.配置和啟動snort2021/2/411幾點說明1.在snort中有一腳本create_mysql,用于建立所有必要的表。

C:\mysql\bin>mysql–uroot–p(Mysql>)createdatabasesnort;

(Mysql>)quit(c:\mysql\bin>)Mysql–Dsnort–uroot–p<C:\snort\contrib\create_mysql

2021/2/412為用戶分配權(quán)限(mysql>)grantusageon*.*toacid@loacalhostidentifiedby“acidPwd”;(mysql>)grantselect,insert,update,delete,create,alteronsnort.*toacid@localhost;2021/2/413需要了解的Mysql命令:顯示數(shù)據(jù)庫列表:showdatabases;顯示庫中的數(shù)據(jù)表:usemysql;showtables;建庫與刪庫:createdatabase庫名;dropdatabase庫名;2021/2/4142021/2/4152021/2/416激活和配置ACID解壓縮acid至apache安裝目錄的htdocs\acid目錄下修改\htdocs\acid下的acid_conf.php文件DBlib_path="C:\php\adodb";$DBtype=”mysql”;$alert_dbname="snort";$alert_host="localhost";$alert_port="3306";$alert_user="acid";$alert_password="acidpwd";2021/2/417

/*ArchiveDBconnectionparameters*/$archive_dbname="snort_archive";$archive_host="localhost";$archive_port="3306";$archive_user="acid";$archive_password="acidpwd";$ChartLib_path=”C:\php\jpgraph\src”;2021/2/418:50080/acid/acid_db_setup.php2021/2/419配置并啟動snort打開C:\snort\etc\snort.conf文件,將文件中的下列語句:includeclassification.configincludereference.config修改為絕對路徑:includeC:\snort\etc\classfication.configincludeC:\snort\etc\reference.config在該文件的最后加入下面語句:目的:將日志記錄到數(shù)據(jù)庫中outputdatabase:alert,mysql,host=localhostuser=snortpassword=snortpwddbname=snortencoding=hexdetail=full2021/2/420進入命令行方式,輸入下面的命令:C:\snort\bin>snort–c“C:\snort\etc\snort.conf” –l“C:\snort\log”–d–e–XX參數(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)最后將顯示如下圖所示2021/2/4212021/2/4222021/2/4232021/2/424四、Snort的配置配置snort.conf文件①設置網(wǎng)絡相關(guān)變量;②配置預處理器;③配置輸出插件;④定制snort規(guī)則集。2021/2/425設置網(wǎng)絡相關(guān)變量Snort.conf中的主要環(huán)境變量有:varHOME_NETany本地網(wǎng)絡varEXTERNAL_NETany外地網(wǎng)絡varDNS_SERVER$HOME_NETvarHTTP_SERVER$HOME_NETvarSQL_SERVER$HOME_NETvarTELNET_SERVER$HOME_NETvarSNMP_SERVER$HOME_NET2021/2/426varHTTP_PORTS80varORACLE_PORTS1521varRULE_PATH../rules本地規(guī)則路徑2021/2/427配置預處理器是在基于規(guī)則的模式匹配之前運行的模塊,通常為規(guī)則匹配進行一些前期的處理。如:IP分片重組(frag2)、TCP流重組(stream4)、各種應用層解碼等。根據(jù)需要配置,通常采用默認值.2021/2/428配置輸出插件主要在報文匹配某條規(guī)則需要輸出時,調(diào)用相應的輸出插件。根據(jù)snort.conf說明進行相應配置。例:outputdatabase:log,mysql,user=westfoxdbname=detectorhost=localhostpasswordpassword=t123port=1234outputdatabase:alert,mysql,host=localhostuser=snortpassword=snorttestdbname=snortencoding=hexdetail=full2021/2/429定制snort規(guī)則集#include<被包含文件的完整路徑和文件名>include$RULE_PATH/local.rules2021/2/4306.2Snort的總體結(jié)構(gòu)分析Snort的模塊結(jié)構(gòu)插件機制Snort的總體流程入侵檢測流程2021/2/431Snort分析32一、Snort總體結(jié)構(gòu)分析Snort的模塊組成及其相互關(guān)系2021/2/432二、Snort的插件機制優(yōu)點增強可擴展性簡化編碼工作使代碼功能內(nèi)聚,模塊行強,程序相對易讀插件模塊包括預處理插件、處理插件和輸出插件3種,它們通常對應規(guī)則中的一個或幾個關(guān)鍵字,規(guī)則匹配中遇到這些關(guān)鍵字時就會激活相應的插件,以完成相應的功能。2021/2/4331.預處理插件它們的源文件名都是以spp_開頭的,在規(guī)則匹配(誤用檢測)之前運行,完成的功能主要分為以下幾類。模擬TCP/IP堆棧功能的插件:如IP碎片重組、TCP流重組插件。各種解碼插件:如HTTP解碼插件、Unicode解碼插件、RPC解碼插件、Telnet協(xié)商插件等。規(guī)則匹配無法進行攻擊檢測時所用的檢測插件:如端口掃描插件、Spade異常入侵檢測插件、Bo檢測插件、Arp欺騙檢測插件等。2021/2/4342.處理插件它們的源文件名都以sp_開頭,在規(guī)則匹配階段的ParseRuleOptions中被調(diào)用,輔助完成基于規(guī)則的匹配檢測過程。每個規(guī)則處理函數(shù)通常對應規(guī)則選項中的一個關(guān)鍵字,實現(xiàn)對這個關(guān)鍵字的解釋或輔助解釋。這些插件的主要功能如下。協(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等,這些插件分別完成響應(關(guān)閉連接)、嚴重級別、模式匹配(內(nèi)容)、會話記錄、攻擊響應(高級的響應機制)、攻擊參考信息等功能。2021/2/4353.輸出插件它們的源文件名都以spo_開頭,這些插件分為日志和警告兩種類型放入兩個列表中,在規(guī)則匹配過程中和匹配結(jié)束之后調(diào)用,以便記錄日志和警告。2021/2/436以一個HTTP解碼預處理器插件為例來解釋插件的內(nèi)部結(jié)構(gòu):每個插件都有一個安裝函數(shù),名稱為SetupXXX(),如Spp_http_decode.c:SetupHttpDecode()。在解釋規(guī)則文件時,如果檢測到相應的關(guān)鍵字,系統(tǒng)就會使用規(guī)則文件中這些關(guān)鍵字后的字符串作為參數(shù)來調(diào)用相應的初始化函數(shù)。在檢測過程中,一旦規(guī)則匹配成功,就會觸發(fā)處理函數(shù)的執(zhí)行,預處理器就會在預處理過程中對數(shù)據(jù)報調(diào)用相應處理函數(shù)進行處理。2021/2/437三、Snort的總體流程2021/2/438四、入侵檢測流程規(guī)則解析流程規(guī)則匹配流程2021/2/439入侵檢測流程——規(guī)則解析流程Snort規(guī)則內(nèi)存表示邏輯圖2021/2/440入侵檢測流程——規(guī)則匹配流程Snort規(guī)則匹配檢測流程12342021/2/4412021/2/4422021/2/4432021/2/4442021/2/4456.3Snort的使用Snort的命令行高性能的配置方式2021/2/446一、Snort的命令行Snort命令參數(shù)及作用c:\>snort[options]<filters>主要snort參數(shù)介紹-A<alert>設置<alert>的模式是full、fast,還是none;full模式是記錄標準的alert模式到alert文件中;fast模式只寫入時間戳、messages、IPs、ports到文件中,none模式關(guān)閉報警。-a顯示ARP包。2021/2/447-b把LOG的信息包記錄為TCPDUMP格式,所有信息包都被記錄為二進制形式,這個選項對于fast記錄模式比較好,因為它不需要花費包的信息轉(zhuǎn)化為文本的時間。Snort在100Mbps網(wǎng)絡中使用“b”比較好。-c<cf>使用配置文件<cf>,這個規(guī)則文件是告訴系統(tǒng)什么樣的信息要LOG,或者要報警,或者通過。-C在信息包信息使用ASCII碼來顯示,而不是hexdump。2021/2/448-d解碼應用層-D把Snort以守護進程的方法來運行,默認情況下alert記錄發(fā)送到/var/log/snort.alert文件中去。-e顯示第二層(數(shù)據(jù)鏈路層)的包頭信息。-F<bpf>從<bpf>文件中讀BPF過濾器(filters),這里的filters是標準的BPF格式過濾器。2021/2/449-h<hn>設置網(wǎng)絡地址,如一個C類IP地址,使用這個選項,可限制數(shù)據(jù)進出的方向。-i<if>使用網(wǎng)絡接口參數(shù)<if>。-l

<ld>:LOG信息包記錄到<ld>目錄中去。-M<wkstn>:發(fā)送WinPopup信息到包含<wkstn>文件中存在的工作站列表中去,這選項需要Samba的支持,wkstn文件很簡單,每一行只要添加包含在SMB中的主機名即可(注意不需要兩個斜杠\\)。2021/2/450-n<cnt>指定在處理<cnt>個數(shù)據(jù)包后退出。-N:關(guān)閉Log記錄,但ALERT功能仍舊正常。-o改變所采用的記錄文件,如正常情況下采用Alert→Pass→Log,而采用此選項是這樣的順序:Pass→Alert→Log,其中Pass是那些允許通過的規(guī)則而不記錄和報警,ALERT是不允許通過的規(guī)則,LOG指LOG記錄。-p關(guān)閉雜亂模式嗅探方式,一般用來更安全的調(diào)試網(wǎng)絡。2021/2/451-r<tf>讀取tcpdump方式產(chǎn)生的文件<tf>,這個方法用來得到一個Shadow(ShadowIDS產(chǎn)生)文件,因為這些文件不能用一般的EDIT來編輯查看。-sLOG:報警的記錄到syslog中去,在LINUX機器上,這些警告信息會出現(xiàn)在/var/log/secure,在其它平臺上將出現(xiàn)在/var/log/message中。-S<n=v>設置變量值,這可以用來在命令行定義Snortrules文件中的變量,如要在Snortrules文件中定義變量HOME_NET,可以在命令行中給它預定義值。2021/2/452-v使用為verbose模式,把信息包打印在console中,這個選項使用后會使速度很慢,這樣結(jié)果在記錄多的是時候會出現(xiàn)丟包現(xiàn)象。-V顯示SNORT版本并退出。-?顯示幫助信息。-W

Listsavailableinterfaces.(Win32only)

以上這些參數(shù)大多可組合進行使用。2021/2/453Snort入侵檢測實例1.實現(xiàn)快速嗅探

在命令行輸出檢測到的IP/TCP/UDP/ICMP數(shù)據(jù)。

如果想要把數(shù)據(jù)的包頭信息在命令行顯示,可以使用:

c:\>snort-v-i2

命令行中會打印出如下的數(shù)據(jù):

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

06/09-15:01:13.84653117:61440_>49:61440

UDPTTL:64TOS:0x0ID:50650IpLen:20DgmLen:64

Len:36

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+2021/2/454如果打開-d開關(guān),將顯示HEX和ASCII形式的應用數(shù)據(jù)(OSI模型的第七層),命令如下:

c:\>snort-vd-i2

命令行中會打印出如下的數(shù)據(jù):

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

05/2516:25:22.22856403:137_>55:137

UDPTTL:128TOS:0x0ID:34222IpLen:20DgmLen:78

Len:50

B4520110000100000000000020444645.R..........DFE

4445434447454344414448444A444944DECDGECDADHDJDID

43454644444445444245424141000020CEFDDDEDBEBAA..

0001

..

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+2021/2/4552.實現(xiàn)記錄數(shù)據(jù)包

先建立一個LOG目錄,再使用下面的命令:c:\snort\bin->snort-de-lc:\snort\log-i2

注意這里少了-v選項,這意味著Snort將不在屏幕上顯示輸出信息。命令的前部分使Snort進入探測模式,它在c:\snort\log目錄下為每個用戶發(fā)起的連接創(chuàng)建文件。每個文件中包含的是以ASCII格式顯示的流量信息。同時,在該目錄下,會自動生成日志文件2021/2/456前面的配置創(chuàng)建了基于文本的文件,其中包含流量的解碼。利用下面的命令:c:\snort\bin->snort-lc:\snort\log-b-i2這時命令行會進入數(shù)據(jù)包記錄界面,同時在c:\snort\log目錄下會生成一個名如snort.log.1244770040的日志文件,所有的網(wǎng)絡流量將以二進制的形式記錄下來,并且以PCAP的格式寫入到該日志文件中。2021/2/457這樣做的優(yōu)點:(1)允許利用開放源碼或者商業(yè)的探測器程序進行瀏覽,例如,Wireshark等。(2)允許重放Snort或者探測程序。(3)速度快,基本上Snort可以得到所有的流量并寫入到文件。

2021/2/458現(xiàn)在,如果想重新讀入剛剛創(chuàng)建的PCAP格式的文件,并且讓Snort像前面那個例子那樣解碼,該怎么辦呢?下面的命令可以把文件重新讀入到Snort,用于解碼:c:\snort\bin_>snort-de-rsnort.log.1244532070另外也可以應用BPF過濾程序?qū)θ罩疚募M行過濾:

c:\snort\bin->snort-de-Fc:\filter-rsnort.log.12445320702021/2/459二、高性能的配置方式在一個高數(shù)據(jù)流量(如大于100Mb/s)的網(wǎng)絡環(huán)境下運行snort,就需考慮如何配置snort才能使它高效率地運行,這就要求使用更快的輸出功能,產(chǎn)生更少的警告,可使用:-b,-Afast,-s等選項。2021/2/4606.4Snort的規(guī)則規(guī)則結(jié)構(gòu)規(guī)則的語法攻擊手段對應規(guī)則舉例規(guī)則的設計2021/2/461一、規(guī)則的結(jié)構(gòu)snort的每條規(guī)則都可以分成邏輯上的兩個部分:規(guī)則頭規(guī)則選項規(guī)則頭包括:規(guī)則行為(rule‘saction)、協(xié)議(protocol)、源/目的IP地址、子網(wǎng)掩碼以及源/目的端口。規(guī)則選項包含報警信息和異常包的信息(特征碼,signature),使用這些特征碼來決定是否采取規(guī)則規(guī)定的行動。2021/2/462alerttcpanyany->/24111(content:”|000186a5|”;msg:”mountdaccess”;)規(guī)則頭規(guī)則選項規(guī)則操作協(xié)議源IP源端口方向操作符目的IP目的端口規(guī)則含義:任何使用TCP協(xié)議連接網(wǎng)絡/24中任何主機的111端口的數(shù)據(jù)包中,如果出現(xiàn)了二進制數(shù)據(jù)000186a5,便發(fā)出警告信息mountdaccess2021/2/4631.規(guī)則頭(1)規(guī)則的動作alert:使用選定的報警方法產(chǎn)生報警信息,并且記錄數(shù)據(jù)包

log:記錄數(shù)據(jù)包

pass:忽略數(shù)據(jù)包

activate:報警并激活另一條dynamic規(guī)則

dynamic:保持空閑狀態(tài),直到被activete規(guī)則激活,作為一條log規(guī)則自定義動作(ruletype)2021/2/464(2)協(xié)議每條規(guī)則的第二項就是協(xié)議項。當前,snort能夠分析的協(xié)議是:IP、TCP、UDP和ICMP2021/2/465(3)IP地址關(guān)鍵詞any可以用來定義任意的IP地址地址只能使用數(shù)字/CIDR的形式/24表示一個C類網(wǎng)絡;/16表示一個B類網(wǎng)絡;而/32表示一臺特定的主機地址/24表示從到55在規(guī)則中,可以使用使用否定操作符(?。P地址進行操作alerttcp!/24any->/24111IP地址表示:所有IP源地址不是內(nèi)部網(wǎng)絡的地址,而目的地址是內(nèi)部網(wǎng)絡地址2021/2/466IP地址列表的格式[IP地址1/CIDR,IP地址/CIDR,....]每個IP地址之間不能有空格

alerttcp![/24,.0/24]any->[/24,/24]111(4)端口號any、靜態(tài)端口號、端口范圍(:),以及使用非操作定義例:1:1023:10242021/2/467(5)方向操作符

-><>(6)activate和dynamic規(guī)則activates:activated_by:2021/2/4682.規(guī)則選項規(guī)則選項構(gòu)成了snort入侵檢測引擎的核心在每條snort規(guī)則中,選項之間使用分號進行分割。規(guī)則選項關(guān)鍵詞和其參數(shù)之間使用冒號分割2021/2/469Snort規(guī)則選項msg:在報警和日志中打印的消息msg:"<messagetext>";例:alerttcp$EXTERNALany->$INTERNAL79(msg:”Finger”)logto:把日志記錄到一個用戶指定的文件,而不是輸出到標準的輸出文件使用這個選項,對處理來自nmap掃描、HTTPCGI掃描的數(shù)據(jù)非常方便。注意如果使用二進制日志模式,這個選項會失效。logto:"<文件名>";2021/2/470ttl:測試IP包頭的TTL域的值ttl:"<number>";支持<,>和=操作符tos:測試IP包頭的TOS域的值tos:"<number>";例;alerttcp$EXTERNALany->$CISCOany(msg:”CiscoTOSExample”;tos:!”0”;)2021/2/471id:測試IP分組標志符(fragmentID)域是否是一個特定的值id:"<number>";ipoption:查看IP選項(IPoption)域

rr:路由記錄,

eof:Endoflist,nop:無操作,

ts:時間戳,

sec:IP安全選項,

lsrr:寬松源路由,

ssrr:嚴格源路由,satid:流標識符ipopts:<option>;2021/2/472fragbits:測試IP包頭的分片位

R:保留位

D:DF位

M:MF位

+ALL標志,指定的位加上任何其它的位為真

*ANY標志,指定的任何位為真

!NOT標志,指定的位不為真

-不包含指定位例:

alerttcp!$HOME_NETany->$HOME_NETany(fragbits:R+;msg:"ReserverdIPbitset!";)2021/2/473dsize:測試數(shù)據(jù)包數(shù)據(jù)段的大小這個規(guī)則選項用來測試數(shù)據(jù)包負載的大小如果知道某個服務有一個特定大小的緩沖區(qū),就能夠設置這個選項來捕獲制造緩沖區(qū)溢出的企圖dsize:[>|<]<number>2021/2/474flags:測試TCP標志(flag)是否是某個值

F:FIN(TCP標志字節(jié)最左邊一位)

S:SYN

R:RST

P:PSH

A:ACK

U:URG

2:保留位2

1:保留位1例:

alertanyany->/24any(flags:SF;msg:"PossibleSYNFINscan";)2021/2/475seq:測試TCP包的序列號是否是某個值seq:<number>ack:測試TCP包的確認域是否為某個值只有一個實際的用途:檢測NMAPTCPping掃描。掃描程序nmap進行TCPping掃描時,把TCP包頭的確認號(4個字節(jié))設置為0,然后向目標主機發(fā)出TCPACK包,確定目標主機是否正在運行

alertanyany->/24any(flags:A;ack:0;msg:"nmapTCPping";)2021/2/476itype:測試ICMP數(shù)據(jù)包的類型(type)域拒絕服務和淹沒攻擊的數(shù)據(jù)包有時使用無效的ICMP類型,可以使用這個規(guī)則選項對無效的ICMP類型進行檢測,也就是說,這個規(guī)則選項中的值可以不是正常的數(shù)值itype:<number>icode:測試ICMP數(shù)據(jù)包的編碼(code)域icode規(guī)則選項和itype非常相似,也是使用數(shù)字進行設置icode:<number>2021/2/477icmp_id:測試ICMP回送包的標志符(ICMPECHOID)是否為某個值icmp_id:<number>icmp_seq:檢測ICMP回送包的序列號的值因為一些隱秘通道程序在通訊時使用靜態(tài)的ICMP域。icmp_seq:<number>2021/2/478content:在數(shù)據(jù)包的數(shù)據(jù)段中搜索模式進行比較的數(shù)據(jù)中可以包含二進制數(shù)據(jù):"|000186a5|/bin/sh";content:"<contentstring>";alerttcpanyany->/24143(content:“|90c8c0ffffff|/bin/sh”;msg:"IMAPbufferoverflow");“|”。管道符號2021/2/479offset:調(diào)整content選項,設置開始搜索的偏移量depth:調(diào)整content選項,設置搜索最大深度alerttcpanyany->/2480(content:"cgi-bin/phf";offset:3;depth:22;msg:"CGI-PHFaccess";)2021/2/480nocase:大小寫不敏感匹配內(nèi)容字符串nocase;alerttcpanyany->/2421(content:"USERroot";nocase;msg:"FTProotloginattempt";)2021/2/481session:對一個指定的會話記錄其應用層信息觀察用戶在telnet、rlogin、ftp,甚至WEB會話過程中輸入了什么,就可以使用這個規(guī)則選項session規(guī)則選項有兩個參數(shù)關(guān)鍵詞:printable、all。logtcpanyany<>/2423(session:printable;)2021/2/482content-list:在數(shù)據(jù)包的數(shù)據(jù)段中搜索模式清單使用content-list關(guān)鍵詞可以指定更多的正文字符串,突破了content規(guī)則選項只能指定單一字符串的限制。每個要搜索的字符串占一行。這個規(guī)則選項是使用react關(guān)鍵詞的基礎(chǔ)content-list:"<file_name>";#adultsites

porn

adults

hardcore

#...2021/2/483react:激活反應措施(阻塞WEB站點)基本的反應就是阻塞用戶要訪問的站點,例如色情站點

block:關(guān)閉連接并發(fā)出注意信息

warn:發(fā)出警告信息

msg:定義要包含在警告信息中的文本

proxy:<number>:使用代理服務器端口發(fā)送警告信息可選參數(shù)使用逗號分開,react關(guān)鍵詞應該放在所有選項的最后react:<react_basic_modifier[,react_additionall_modifier...]>alerttcpanyany<>/2480(content-list:“adults”;msg:“Notforchildren!”;react:block,msg;)2021/2/484rpc:觀察RPC服務對特定應用程序的調(diào)用規(guī)則選項rpc可以使snort觀察RPC請求,并且自動對應用程序、過程、程序版本進行解碼。只有這三個變量都匹配時,才算成功。統(tǒng)配符*可以用來代替過程和版本號alerttcpanyany->/24111(rpc:100000,*,3;msg:"RPCgetport(TCP)";)2021/2/485resp:激活反應措施(斷開連接等)對于匹配某個規(guī)則的數(shù)據(jù)包,可以通過resp關(guān)鍵詞使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_UNREACH數(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ù)可以結(jié)合使用,各個參數(shù)之間使用逗號隔開。2021/2/486alerttcpanyany->/241524(flags:S;resp:rst_all;msg:"Rootshellbackdoorattempt";)alertudpanyany->.0/31(resp:icmp_port,icmp_host;msg:"Hacker'sParadiseaccessattempt";)2021/2/487

uricontent:在特定的URL字段域內(nèi)搜索特定模式;flow:指定網(wǎng)絡TCP數(shù)據(jù)流的方向,例如從服務器發(fā)出或是客戶端發(fā)出;flow:<選項>to_serverto_client…..2021/2/488其他Snort規(guī)則選項reference:外部參考id

sid:snort的規(guī)則id

rev:規(guī)則的修正號

classtype:規(guī)則的分類號

priority:規(guī)則的優(yōu)先級

tag:高級記錄動作

ip_proto:ip頭的協(xié)議值

sameip:源地址和目標地址相同

stateless:無狀態(tài)連接

regex:通配符模式匹配

2021/2/489二、規(guī)則的語法規(guī)則分類存放在規(guī)則文件中規(guī)則文件是文本文件“類名.rules”,在snort.conf文件類激活。規(guī)則要在一行內(nèi)寫完注釋行使用#開頭2021/2/490規(guī)則中使用變量名的定義變量的定義格式:var<name><value>例:varMY_NET/24alerttcpanyany->$MY_NETany(flags:S;msg:”SYNPacket”)2021/2/491說明:1)$name或$(name):用name的內(nèi)容替換變量name2)$(name:-default):如果name沒有定義就使用default的內(nèi)容替換變量4)$(name:?message):使用變量name的內(nèi)容替換變量,如果不成功就打印錯誤信息message并退出。例:varMY_NET$(MY_NET:-/24)logtcpanyany->$(MY_NET:?MY_NETisundefined!)23

2021/2/492include<includefilepath/name>例:include$RULE_PATH/local.rules#include$RULE_PATH/ftp.rules2021/2/493三、攻擊手段對應規(guī)則舉例實例1:IIS發(fā)布之初,附帶的例子網(wǎng)頁存在漏洞特點:保存在Web根目錄下的/site/iisamples目錄下。alerttcp$EXTERNAL_NETany->$HTTP_SERVER80(msg:”WEB_IISsite/iisamplesaccess”;flag:A+;uricontent:”/site/iisamples”;nocase;classtype:attemped-recon;sid:1046;rev:1;)2021/2/494實例2:紅色代碼的一個變種CodeRedⅡ。特點利用MSIndexServer(.ida/.idq)ISAPI擴展遠程溢出漏洞(MS01-033)alerttcp$EXTERNALany->$INTERNAL80(msg:”IDS552/web-iis_IISISAPIOverflowids”;dsize:>239;flags:A+;uricontent:”.ida?”;classtype:system-or-info-attempt;reference:arachnids,552;)2021/2/495規(guī)則的更新經(jīng)常訪問snort的官方網(wǎng)站,更新它所發(fā)布的規(guī)則。加入snort的郵件列表/lists/listinfo/snort-sigs根據(jù)自己的環(huán)境定制自己的規(guī)則2021/2/496四、規(guī)則的設計根據(jù)網(wǎng)絡的安全策略定制自己的規(guī)則對付新的攻擊自己動手寫好的規(guī)則加速含有內(nèi)容選項的規(guī)則2021/2/497修改已存在的規(guī)則假設某機構(gòu)中只有一臺IIS服務器,管理員想修改相關(guān)規(guī)則使它僅僅應用在這臺服務器上,而不是用在每臺web服務器上,一開始你可能想修改snort-sigs郵件列表的后綴為.htrchunked的編碼規(guī)則,這條規(guī)則如下:2021/2/498alerttcp$EXTERNAL_NETany->$HTTP_SERVER$HTTP_PORTS(msg:”WEB_IIS.hrtchunkedencoding”;uricontent:”.htr”;classtype:web-application-attack;rev:1)alerttcp$EXTERNAL_NETany->

$HTTP_PORTS(msg:”WEB_IIS.hrtchunkedencoding”;uricontent:”.htr”;classtype:web-application-attack;rev:2)2021/2/499alerttcp$EXTERNAL_NETany->$HTTP_PORTS(msg:”WEB_IIS.hrtchunkedencoding”;flow:to_server,establish;uricontent:”.htr”;classtype:web-application-attack;rev:3)2021/2/4100POST/EEYE.htrHTTP/1.1Host:0 Transfer-Encoding:chunked 20 XXXXXXXXXXXXXXXXXXXXXXXXEEYE20020 [Enter] [Enter]

2021/2/4101alerttcp$EXTERNAL_NETany->$HTTP_PORTS(msg:”WEB_IIS.hrtchunkedencoding”;flow:to_server,establish;uricontent:”.htr”;content:”Transfer-Encoding\:”;content:”chunked”;classtype:web-application-attack;rev:4)2021/2/4102alerttcp$EXTERNAL_NETany->$HTTP_PORTS(msg:”WEB_IIS.hrtchunkedencoding”;flow:to_server,establish;uricontent:”.htr”;content:”Transfer-Encoding\:”;content:”chunkd”;nocase;classtype:web-application-attack;rev:5)2021/2/4103一些規(guī)則使用的例子(1)記錄所有登錄到一個特定主機的數(shù)據(jù)包:logtcpanyany->/3223(2)在第一條的基礎(chǔ)上記錄了雙向的流量:logtcpanyany<

>/3223(3)這一條規(guī)則記錄了

溫馨提示

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

評論

0/150

提交評論