版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Snort的規(guī)則目錄規(guī)則的基本語法規(guī)則的存儲(chǔ)結(jié)構(gòu)規(guī)則的組成規(guī)則的編寫與測試規(guī)則的基本語法1Snort是一個(gè)強(qiáng)大的、基于特征檢測的輕量級(jí)網(wǎng)絡(luò)入侵檢測系統(tǒng),它能根據(jù)規(guī)則對(duì)數(shù)據(jù)流量進(jìn)行實(shí)時(shí)分析,通過攻擊特征來識(shí)別網(wǎng)絡(luò)發(fā)生的攻擊行為,并根據(jù)檢測結(jié)果采取一定的動(dòng)作。對(duì)于Snort來說,規(guī)則很重要,它是檢測引擎的核心內(nèi)容,是檢測引擎判斷數(shù)據(jù)包是否非法的依據(jù)。規(guī)則的概述Snort規(guī)則庫中可以有很多的規(guī)則,規(guī)則有以下的語法要求:(1)規(guī)則分類存放在不同的規(guī)則文件中。每個(gè)規(guī)則文件都是文本文件,其命名格式為“類名.rules”。(2)需要使用的規(guī)則文件應(yīng)該用include語句包含在配置文件(如snort.conf,snort.lua)中,語法格式為“include<includefile_path/name>”。(3)若想禁用已包含在配置文件中的規(guī)則文件,可以在句首加“#”將其注釋掉。(4)在每個(gè)規(guī)則文件中可以添加一條或多條規(guī)則,每條規(guī)則占一行。暫時(shí)不用的規(guī)則可以用“#”注釋掉。(5)Snort3增加了#begin和#end注釋,允許規(guī)則編寫者輕松注釋多行。規(guī)則的基本語法規(guī)則中使用變量名的定義變量的定義格式:var<name><value>例:varMY_NET/24alerttcpanyany->$MY_NETany(flags:S;msg:”SYNPacket”)說明:1)$name或$(name):用name的內(nèi)容替換變量name2)$(name:-default):如果name沒有定義就使用default的內(nèi)容替換變量3)$(name:?message):使用變量name的內(nèi)容替換變量,如果不成功就打印錯(cuò)誤信息message并退出。例:varMY_NET$(MY_NET:-/24)logtcpanyany->$(MY_NET:?MY_NETisundefined!)23規(guī)則的基本語法每條規(guī)則中的各個(gè)規(guī)則選項(xiàng)之間是“與”的關(guān)系。只有當(dāng)一個(gè)數(shù)據(jù)包與一條規(guī)則中所有的規(guī)則選項(xiàng)都匹配時(shí),才算匹配該規(guī)則,從而判定該數(shù)據(jù)包為有害數(shù)據(jù)包。而在龐大的規(guī)則庫中,不同的規(guī)則之間是“或”的關(guān)系,只要一個(gè)數(shù)據(jù)包與某條規(guī)則匹配,就判定該數(shù)據(jù)包為有害數(shù)據(jù)包。規(guī)則的應(yīng)用邏輯Snort用一個(gè)二維鏈表存儲(chǔ)規(guī)則,每一條規(guī)則都包括規(guī)則頭和規(guī)則選項(xiàng)兩個(gè)部分,二維鏈表的其中一維表示規(guī)則頭,另一維表示規(guī)則選項(xiàng)。規(guī)則的存儲(chǔ)結(jié)構(gòu)每一條規(guī)則的規(guī)則頭部分以規(guī)則樹節(jié)點(diǎn)存儲(chǔ),規(guī)則選項(xiàng)部分則以規(guī)則選項(xiàng)節(jié)點(diǎn)存儲(chǔ)。同一條規(guī)則的規(guī)則樹節(jié)點(diǎn)與規(guī)則選項(xiàng)頭節(jié)點(diǎn)鏈接起來。具有相同規(guī)則動(dòng)作(如alert、log、pass等)的規(guī)則樹節(jié)點(diǎn)也鏈接起來,形成鏈表判定樹。規(guī)則的組成2snort的每條規(guī)則都可以分成邏輯上的兩個(gè)部分:規(guī)則頭和規(guī)則選項(xiàng)
規(guī)則頭:包括規(guī)則行為(action)、協(xié)議(protocol)、源/目的IP地址、源/目的端口和方向。規(guī)則選項(xiàng):包含報(bào)警信息和異常包的信息(特征碼,signature),使用這些特征碼來決定是否采取規(guī)則規(guī)定的行動(dòng)。格式:(關(guān)鍵字:參數(shù);關(guān)鍵字:參數(shù);關(guān)鍵字:參數(shù);……)采用遞歸的方法進(jìn)行規(guī)則匹配滿足一個(gè)規(guī)則時(shí),觸發(fā)相應(yīng)的操作用戶可以根據(jù)自己需要添加所需的規(guī)則模塊
規(guī)則的組成舉例規(guī)則的組成舉例規(guī)則的組成alerttcpanyany->/24111(content:”|000186a5|”;msg:”mountdaccess”;)規(guī)則頭規(guī)則選項(xiàng)規(guī)則含義:任何使用TCP協(xié)議連接網(wǎng)絡(luò)/24中任何主機(jī)的111端口的數(shù)據(jù)包中,如果出現(xiàn)了數(shù)據(jù)000186a5,便發(fā)出警告信息mountdaccess規(guī)則頭包括7個(gè)部分,按照順序分別是規(guī)則動(dòng)作(Action)、協(xié)議類型(Protocol)、網(wǎng)絡(luò)(Networks)、端口(Ports)、方向操作符(DirectionOperator)、網(wǎng)絡(luò)(Networks)、端口(Ports)。ActionProtocolNetworksPortsDirectionOperatorNetworksPorts舉例:alerttcp$HOME_NETany->$EXTERNAL_NETE$HTTP_PORTS(RULE_OPTIONS)alertudp$EXTERNAL_NET$FILE_DATA_PORTS->$HOME_NETany(RULE_OPTIONS)規(guī)則頭規(guī)則頭的語法,Snort2和Snort3有一些區(qū)別。在Snort2中,規(guī)則頭任何一個(gè)部分都不可以省略。而在Snort3中,選項(xiàng)Protocol、Networks、Ports和DirectionOperator是可選的,若省略則表示匹配任意,類似于用關(guān)鍵字any,方向是雙向(入站/出站)。下面的規(guī)則頭表示任意地址的TCP流量都要告警。alerttcp(RULES_OPTIONS)Snort3的語法有助于更快地創(chuàng)建規(guī)則、減少冗余的規(guī)則。但在實(shí)際使用時(shí)最好有選擇性地省略選項(xiàng),以免在讀取規(guī)則時(shí)產(chǎn)生歧義。規(guī)則頭(1)規(guī)則的動(dòng)作alert:使用選定的報(bào)警方法產(chǎn)生報(bào)警信息,并且記錄數(shù)據(jù)包log:記錄數(shù)據(jù)包pass:忽略數(shù)據(jù)包drop:丟棄并記錄數(shù)據(jù)包reject:拒絕并記錄數(shù)據(jù)包,如果協(xié)議是TCP則發(fā)送TCP重置;如果協(xié)議是UDP則發(fā)送ICMP端口不可達(dá)消息。sdrop:阻止數(shù)據(jù)包,但不記錄它。activate:報(bào)警并激活另一條dynamic規(guī)則dynamic:保持空閑狀態(tài),直到被activete規(guī)則激活,作為一條log規(guī)則自定義動(dòng)作(ruletype):定義自己的規(guī)則類型,并將一個(gè)或多個(gè)輸出插件與它們關(guān)聯(lián)起來。然后將規(guī)則類型作為Snort規(guī)則中的操作。規(guī)則頭Snort常作為IDS來使用,但它也可配置為IPS,只不過功能較弱。Snort使用數(shù)據(jù)采集器(DAQ)監(jiān)聽防火墻數(shù)據(jù)包隊(duì)列,配合Snort規(guī)則動(dòng)作drop、alert等處理數(shù)據(jù)包,防火墻在Snort啟動(dòng)后添加鏈表隊(duì)列。數(shù)據(jù)包經(jīng)過防火墻時(shí)將交給Snort來處理,觸發(fā)入侵檢測規(guī)則時(shí)立刻響應(yīng)動(dòng)作并阻止數(shù)據(jù)包。IPS應(yīng)該直連在網(wǎng)絡(luò)中。(1)規(guī)則的動(dòng)作自定義動(dòng)作(ruletype)例:創(chuàng)建一條規(guī)則,記錄到tcpdump。ruletypesuspicious{typelogoutputlog_tcpdump:suspicious.log}規(guī)則頭例:創(chuàng)建記錄到系統(tǒng)日志和和tcpdump的規(guī)則ruletyperedalert{typealertoutputalert_syslog:LOG_AUTHLOG_ALERToutputlog_tcpdump:suspicious.log}(2)協(xié)議每條規(guī)則的第二項(xiàng)就是協(xié)議項(xiàng)。Snort工作在網(wǎng)絡(luò)層和傳輸層,不能直接工作在應(yīng)用層,寫規(guī)則時(shí)協(xié)議可以寫TCP、UDP、ICMP、IP,不能寫ARP、FTP、TELNET、SMTP、HTTP等。在Snort3中新增了協(xié)議關(guān)鍵字HTTP進(jìn)行HTTP內(nèi)容檢測。在Snort2中,編寫規(guī)則以檢測HTTPURI、Header或Body中的內(nèi)容時(shí)使用的協(xié)議為TCP。在Snort3中,則可以用新的協(xié)議關(guān)鍵字HTTP,這提供了以下好處:(1)無論HTTP是否使用標(biāo)準(zhǔn)端口,Snort都可以進(jìn)行檢測并對(duì)HTTP內(nèi)容進(jìn)行告警。因此,規(guī)則編寫者不必?fù)?dān)心某些惡意軟件正在通信的端口是否為標(biāo)準(zhǔn)端口。(2)無需在metadata選項(xiàng)中定義的服務(wù)映射(例如servicehttp)。(3)使用Snort3新的粘性緩沖區(qū)和動(dòng)態(tài)緩沖區(qū)的功能,對(duì)Snort3的規(guī)則進(jìn)行簡化和潛在的性能改進(jìn)。規(guī)則頭(3)IP地址單個(gè)IP格式:Alerttcp6any->8any(msg:”ipany”)IP組格式:alerttcp[,6,0]any->anyany(msg:"testpcreandcontent!";)alerttcp/24any->anyany(msg:"testpcreandcontent!";)alerttcp[/10,5/20]any->[0/30]any(msg:"testpcreandcontent!";)規(guī)則頭(3)IP地址IP取反格式:!Alerttcp!6any->8any(msg:”ipany”)alerttcp![,6,0]any->anyany(msg:"testpcreandcontent!";)alerttcp![/10,5/120]any->anyany(msg:"testpcreandcontent!";)IP組使用變量alerttcp$HOME_NETany->anyany(msg:"testpcreandcontent!";)any表示所有IPalerttcpanyany->anyany(msg:"testpcreandcontent!";)規(guī)則頭(4)端口號(hào)單個(gè)端口alerttcpany90->any80(msg:"testpcreandcontent!";)多個(gè)端口alerttcpany90:100->any80:100(msg:"testpcreandcontent!";)alerttcpany90:->any:100(msg:"testpcreandcontent!";)alerttcpany[90,9090,80,443]->any:100(msg:"testpcreandcontent!";)alerttcpany![90:100]->any80:100(msg:"testpcreandcontent!";)alerttcpany!90:->any:100(msg:"testpcreandcontent!";)alerttcpany![90,9090,80,443]->any:100(msg:"testpcreandcontent!";)使用變量alerttcpany$HTTP_PORTS->any:100(msg:"testpcreandcontent!";)規(guī)則頭(5)方向操作符->:表示左邊的地址和端口是源而右邊的是目的。<-:表示右邊的地址和端口是源而左邊的是目的。<>:表示規(guī)則將被應(yīng)用在兩個(gè)方向上,若想同時(shí)監(jiān)視服務(wù)器和客戶端,可以用到這個(gè)標(biāo)示。例如,你可以監(jiān)視往來POP或者Telnet服務(wù)器的數(shù)據(jù)流。規(guī)則頭規(guī)則選項(xiàng)構(gòu)成了snort入侵檢測引擎的核心,結(jié)合了易用性、通用和靈活性。
使用規(guī)則選項(xiàng)時(shí)要特別注意分號(hào)“;”和冒號(hào)“:”這兩個(gè)符號(hào)的使用。在每條snort規(guī)則中,選項(xiàng)之間使用分號(hào)(;)進(jìn)行分割。規(guī)則選項(xiàng)的關(guān)鍵詞和其參數(shù)之間使用冒號(hào)(:)分割規(guī)則選項(xiàng)主要有四類General(一般規(guī)則選項(xiàng)):提供了有關(guān)該規(guī)則的信息,但在檢測過程中沒有任何影響Payload:查找數(shù)據(jù)包有效負(fù)載中的數(shù)據(jù),并且可以相互關(guān)聯(lián)non-payload:非有效負(fù)載數(shù)據(jù)post-detection:是在規(guī)則“觸發(fā)”后發(fā)生的特定于規(guī)則的觸發(fā)器。規(guī)則選項(xiàng)聰者聽于無聲,明者見于未形維護(hù)網(wǎng)絡(luò)安全,首先要知道風(fēng)險(xiǎn)在哪里,是什么樣的風(fēng)險(xiǎn),什么時(shí)候發(fā)生風(fēng)險(xiǎn),正所謂“聰者聽于無聲,明者見于未形”。感知網(wǎng)絡(luò)安全態(tài)勢(shì)是最基本、最基礎(chǔ)的工作。
——2016年4月19日,習(xí)近平總書記在網(wǎng)絡(luò)安全和信息化工作座談會(huì)上的講話聰者聽于無聲,明者見于未形“聰者聽于無聲,明者見于未形”,最早出自司馬遷《史記·淮南衡山列傳》:“臣聞聰者聽于無聲,明者見于未形,故圣人萬舉萬全?!边@是淮南王劉安的謀臣伍被勸諫劉安所說,大意是聽力好的人能在無聲時(shí)聽出動(dòng)靜,視力好的人能在未成形前看出征兆,所以最智慧、最有道德的圣人做事總是萬無一失。后來,東漢史學(xué)家班固在《漢書·蒯伍江息夫傳》中也曾引用這句。今天,這句典故多被用于強(qiáng)調(diào)防范未知風(fēng)險(xiǎn),見微知著,防微杜漸,增強(qiáng)對(duì)矛盾風(fēng)險(xiǎn)挑戰(zhàn)的預(yù)判和準(zhǔn)備。聰者聽于無聲,明者見于未形提高預(yù)見能力一直是黨對(duì)領(lǐng)導(dǎo)干部的一項(xiàng)基本要求。在革命和建設(shè)年代,毛澤東同志就一直強(qiáng)調(diào)領(lǐng)導(dǎo)干部必須具有預(yù)見性。他指出:“預(yù)見就是預(yù)先看到前途趨向。如果沒有預(yù)見,叫不叫領(lǐng)導(dǎo)?我說不叫領(lǐng)導(dǎo)?!焙苊黠@,領(lǐng)導(dǎo)干部努力提高預(yù)見能力,才能站得高,看得遠(yuǎn),才能把握事物的發(fā)展規(guī)律,看到社會(huì)發(fā)展的長遠(yuǎn)趨勢(shì),提前做好政策布局。聰者聽于無聲,明者見于未形作為網(wǎng)絡(luò)安全的專業(yè)技術(shù)人員,在構(gòu)筑網(wǎng)絡(luò)安全防線時(shí),也要努力提高預(yù)見能力。只有對(duì)網(wǎng)絡(luò)安全的發(fā)展趨勢(shì)進(jìn)行全面、準(zhǔn)確地預(yù)判,知道風(fēng)險(xiǎn)在哪里,是什么原因?qū)е碌娘L(fēng)險(xiǎn),是什么樣的風(fēng)險(xiǎn),什么時(shí)候發(fā)生風(fēng)險(xiǎn),才能預(yù)先防范網(wǎng)絡(luò)安全風(fēng)險(xiǎn)。General(一般規(guī)則選項(xiàng)):提供了有關(guān)該規(guī)則的信息,但在檢測過程中沒有任何影響規(guī)則選項(xiàng)Snort3規(guī)定,所有規(guī)則必須有sid選項(xiàng),且sid不允許為0。(1)小于100:保留給未來擴(kuò)充時(shí)使用。(2)100-1000000:用于Snort官方預(yù)設(shè)配置的規(guī)則項(xiàng)目。(3)大于1000000:本地自定義的規(guī)則項(xiàng)目。General(一般規(guī)則選項(xiàng)):提供了有關(guān)該規(guī)則的信息,但在檢測過程中沒有任何影響msg:一個(gè)簡單的文本字符串,用于在報(bào)警和日志中打印消息msg:"<messagetext>";例:alerttcp$EXTERNALany->$INTERNAL79(msg:”Finger”)規(guī)則選項(xiàng)General(一般規(guī)則選項(xiàng)):提供了有關(guān)該規(guī)則的信息,但在檢測過程中沒有任何影響2、reference包含對(duì)外部攻擊識(shí)別系統(tǒng)的引用。該插件目前支持幾個(gè)特定的系統(tǒng)以及唯一的url。此插件將被輸出插件用來提供一個(gè)指向有關(guān)所產(chǎn)生的警報(bào)的其他信息的鏈接reference:<idsystem>,<id>;[reference:<idsystem>,<id>;]alerttcpanyany->any7070(msg:"IDS411/dos-realaudio";flags:AP;content:"|fff4fffd06|";reference:arachnids,IDS411;)alerttcpanyany->any21(msg:"IDS287/ftp-wuftp260-venglin-linux";flags:AP;content:"|31c031db31c9b046cd8031c031db|";reference:arachnids,IDS287;reference:bugtraq,1387;reference:cve,CAN-2000-1574;)規(guī)則選項(xiàng)Payload:可以在數(shù)據(jù)包有效載荷內(nèi)搜索并檢測數(shù)據(jù),并且很多規(guī)則選項(xiàng)之間是可以相互關(guān)聯(lián)的。最主要的規(guī)則選項(xiàng)是content以及相關(guān)的修飾詞選項(xiàng),如nocase、rawbytes、depth、offset、distance、within等,它們能對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說明。Snort3刪除了一些規(guī)則選項(xiàng),如uricontent、http_encode等。規(guī)則選項(xiàng)content:是Snort最重要的規(guī)則選項(xiàng)之一,用于搜索數(shù)據(jù)包有效載荷中的特定內(nèi)容,并基于該數(shù)據(jù)觸發(fā)響應(yīng)。在進(jìn)行內(nèi)容匹配時(shí),使用的是最高效的字符串搜索算法Boyer-Moore(簡稱BM)。如果數(shù)據(jù)包有效載荷中的任何位置包含與指定內(nèi)容完全匹配的數(shù)據(jù),表示匹配成功,Snort將執(zhí)行其余的規(guī)則選項(xiàng)測試。內(nèi)容匹配時(shí)區(qū)分大小寫。語法格式如下:content:"<contentstring>";如:alerttcpanyany->/24143(content:“|90c8c0ffffff|/bin/sh”;msg:"IMAPbufferoverflow");“|”管道符號(hào):表示二進(jìn)制數(shù)據(jù),以字節(jié)碼的形式表示,用于檢測特定的數(shù)據(jù)模式或簽名。規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說明。注意:content的修飾詞選項(xiàng)的語法,Snort2和Snort3有較大的區(qū)別。在Snort2中,修飾詞選項(xiàng)的格式和其他規(guī)則選項(xiàng)一樣,選項(xiàng)名稱和值之間用冒號(hào)“:”分隔,不同修飾詞之間用分號(hào)“;”分隔,只是需要放在content選項(xiàng)的后面,具體格式如下:content:"要匹配的內(nèi)容";[修飾詞選項(xiàng)1:值;修飾詞選項(xiàng)2:值;……]在Snort3中,修飾詞選項(xiàng)需要放在content選項(xiàng)的內(nèi)部,名稱和值之間用空格分隔,不同修飾詞之間用逗號(hào)“,”分隔,具體格式如下:content:"要匹配的內(nèi)容",[修飾詞選項(xiàng)1
值,
修飾詞選項(xiàng)2值,……];規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說明。①nocase:表示忽略大小寫。語法格式為“nocase;”。下面的規(guī)則表示字符串“USERroot”不區(qū)分大小寫。alerttcpanyany->any21(msg:"FTPROOT";content:"USERroot",nocase;)。②rawbytes:表示匹配原始數(shù)據(jù)包數(shù)據(jù),忽略任何由預(yù)處理器完成的解碼。語法格式為“rawbytes;”。下面的規(guī)則告訴模式匹配器查看原始流量,而不是解碼器提供的解碼流量。alerttcpanyany->any21(msg:"TelnetNOP";content:"|FFF1|",rawbytes;)規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說明。③depth:表示匹配深度,指定Snort應(yīng)該搜索指定模式的數(shù)據(jù)包的深度,與offset一起使用。例如,depth為5則告訴Snort只在有效載荷的前5個(gè)字節(jié)中查找指定的模式。depth關(guān)鍵字允許大于或等于正在搜索的模式長度的值,允許的取值范圍為1-65535。語法格式為“depth[<number>|<var_name>];”。④offset:表示匹配起始偏移,指定從何處開始搜索數(shù)據(jù)包中的模式。例如,offset為4將告訴Snort在有效載荷的第5個(gè)字節(jié)開始查找指定的模式。offset允許-655535到65535之間的值。語法格式為“offset[<number>|<var_name>];”。下面的規(guī)則顯示了content、offset和depth的組合使用,表示在有效載荷的第5個(gè)字節(jié)開始的20個(gè)字節(jié)之內(nèi)查找“cgi-bin/phf”。alerttcpanyany->any80(content:"cgi-bin/phf",offset4,depth20;)規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說明。⑤distance:表示匹配相對(duì)于上個(gè)模式的偏移的距離,與offset類似,只是它是相對(duì)于前一個(gè)模式匹配的結(jié)束而不是數(shù)據(jù)包的開始,與within一起使用。語法格式為“distance[<byte_count>|<var_name>];”。下面的規(guī)則可以匹配正則表達(dá)式/ABC.{1,}DEF/,表示字符串“ABC”和“DEF”之間間隔一個(gè)字符。alerttcpanyany->anyany(content:"ABC";content:"DEF",distance1;)⑥within:表示相對(duì)于上個(gè)模式之后匹配深度,使content關(guān)鍵字的模式匹配之間最多有N個(gè)字節(jié)。語法格式為“within[<number>|<var_name>];”。下面的規(guī)則將“EFG”的搜索范圍限制在“ABC”后的10個(gè)字節(jié)之內(nèi)。alerttcpanyany->anyany(content:"ABC";content:"EFG",within10;)規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說明。⑦h(yuǎn)ttp_client_body:將搜索限制在HTTP客戶端請(qǐng)求的主體上。使用此選項(xiàng)檢查的數(shù)據(jù)量取決于HttpInspect的post_depth配置選項(xiàng)。當(dāng)post_depth設(shè)置為-1時(shí),與此關(guān)鍵字匹配的模式將不起作用。不能與rawbytes一起使用。語法格式為“http_client_body;”。下面的規(guī)則將對(duì)模式“ABC”的搜索限制在HTTP客戶端請(qǐng)求的原始主體上。alerttcpanyany->any80(content:"ABC",http_client_body;)⑧http_cookie:將搜索限制在HTTP客戶端請(qǐng)求或HTTP服務(wù)器響應(yīng)的Cookie頭部字段,不能與rawbytes、http_raw_cookie或fast_pattern一起使用。語法格式為“http_cookie;”。⑨http_raw_cookie:將搜索限制為HTTP客戶端請(qǐng)求或HTTP服務(wù)器響應(yīng)的未規(guī)范化(UNNORMALIZED)的Cookie頭部字段,不能與rawbytes、http_cookie或fast_pattern一起使用。語法格式為“http_raw_cookie;”。規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說明。⑩http_header:將搜索限制在HTTP客戶端請(qǐng)求或HTTP服務(wù)器響應(yīng)的頭部字段,不能與rawbytes一起使用。語法格式為“http_header;”。?http_raw_header:將搜索限制為HTTP客戶端請(qǐng)求或HTTP服務(wù)器響應(yīng)的未規(guī)范化(UNNORMALIZED)的頭部字段,不能與rawbytes、http_header或fast_pattern一起使用。語法格式為“http_raw_header;”。?http_method:將搜索限制為從HTTP客戶端請(qǐng)求中提取的方法,不能與rawbytes或fast_pattern一起使用。語法格式為“http_raw_header;”。?http_uri:將搜索限制在規(guī)范化(NORMALIZED)請(qǐng)求的URI字段,不能與rawbytes一起使用。語法格式為“http_uri;”。?http_raw_uri:將搜索限制在規(guī)范化(NORMALIZED)請(qǐng)求的URI字段,不能與rawbytes、http_uri或fast_pattern一起使用。語法格式為“http_raw_uri;”。規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說明。?http_stat_code:將搜索限制為從HTTP服務(wù)器響應(yīng)中提取的狀態(tài)代碼字段,不能與rawbytes或fast_pattern一起使用。語法格式為“http_stat_code;”。?http_stat_msg:將搜索限制為從HTTP服務(wù)器響應(yīng)中提取的狀態(tài)消息字段,不能與rawbytes或fast_pattern一起使用。語法格式為“http_stat_msg;”。?fast_pattern:用于設(shè)置要與快速模式匹配器一起使用的content選項(xiàng)??焖倌J狡ヅ淦骺梢赃x擇那些有機(jī)會(huì)匹配的規(guī)則,從而顯著減少需要評(píng)估的規(guī)則數(shù)量,提高性能。快速模式匹配器不區(qū)分大小寫。每條規(guī)則只能指定一次fast_pattern選項(xiàng),且不能與http_cookie、http_raw_uri、http_raw_header、http_raw_cookie、http_method、http_stat_code、http_stat_msg一起使用。fast_pattern選項(xiàng)可以單獨(dú)使用,也可以選擇接受參數(shù)。規(guī)則選項(xiàng)-Payloadisdataat選項(xiàng)用于驗(yàn)證有效載荷在指定位置是否有數(shù)據(jù),可以選擇查找與上一個(gè)內(nèi)容匹配的末尾相關(guān)的數(shù)據(jù)。語法格式為“isdataat:[!]<int>[,relative|rawbytes];”。其中rawbytes修飾符表示查看原始數(shù)據(jù)包數(shù)據(jù),忽略預(yù)處理器所做的任何解碼,只要先前的內(nèi)容匹配在原始數(shù)據(jù)包數(shù)據(jù)中,此修飾符可以與relative修飾符一起使用。下面的規(guī)則查找數(shù)據(jù)包中是否存在字符串“PASS”,并驗(yàn)證字符串“PASS”后面至少有50個(gè)字節(jié)。alerttcpanyany->any111(content:"PASS";isdataat:50,relative;)下面的規(guī)則查找數(shù)據(jù)包中是否存在字符串“foo”,并驗(yàn)證有效載荷里字符串“foo”后面沒有10個(gè)字節(jié)。alerttcpanyany->any111(content:"foo";isdataat:!10,relative;)規(guī)則選項(xiàng)-Payloadpcre選項(xiàng)允許使用與perl兼容的正則表達(dá)式編寫規(guī)則,可以實(shí)現(xiàn)比簡單的內(nèi)容匹配更復(fù)雜的匹配。語法格式如下:pcre:[!]"(/<regex>/|m<delim><regex><delim>)[ismxAEGRUBPHMCOIDKYS]";pkt_data選項(xiàng)用于將檢測用的游標(biāo)設(shè)置為原始傳輸?shù)挠行ж?fù)載。pkt_data選項(xiàng)必須位于content選項(xiàng)之前,并在更改之前保持有效。此選項(xiàng)可以在一個(gè)規(guī)則中多次使用。語法格式為“pkt_data;”。規(guī)則選項(xiàng)-PayloadNon-payloadDetectionRuleOptions(非有效載荷檢測規(guī)則選項(xiàng))用來對(duì)數(shù)據(jù)包的非有效載荷部分(即數(shù)據(jù)包的包頭)進(jìn)行檢測。這類規(guī)則選項(xiàng)主要有以下關(guān)鍵字:規(guī)則選項(xiàng)-Non-payloadttl:測試IP包頭的TTL域的值ttl:"<number>";支持<,>和=操作符tos:測試IP包頭的TOS(typeofservice)域的值tos:"<number>";例:alerttcp$EXTERNALany->$CISCOany(msg:”CiscoTOSExample”;tos:!”0”;)規(guī)則選項(xiàng)-Non-payloadid:測試IP分組標(biāo)志符(fragmentID)域是否是一個(gè)特定的值id:"<number>";ipoption:查看IP選項(xiàng)(IPoption)域
rr:路由記錄,
eof:Endoflist,nop:無操作,
ts:時(shí)間戳,
sec:IP安全選項(xiàng),
lsrr:寬松源路由,
ssrr:嚴(yán)格源路由,satid:流標(biāo)識(shí)符ipopts:<option>;規(guī)則選項(xiàng)-Non-payloadfragbits:測試IP包頭的分片位R:保留位
D:DF位
M:MF位+
ALL標(biāo)志,指定的位加上任何其它的位為真
*
ANY標(biāo)志,指定的任何位為真
!
NOT標(biāo)志,指定的位不為真-:不包含指定位例:alerttcp!$HOME_NETany->$HOME_NETany(fragbits:R+;msg:"ReserverdIPbitset!";)規(guī)則選項(xiàng)-Non-payloaddsize:測試數(shù)據(jù)包數(shù)據(jù)段的大小這個(gè)規(guī)則選項(xiàng)用來測試數(shù)據(jù)包負(fù)載的大小如果知道某個(gè)服務(wù)有一個(gè)特定大小的緩沖區(qū),就能夠設(shè)置這個(gè)選項(xiàng)來捕獲制造緩沖區(qū)溢出的企圖dsize:[>|<]<number>flow:<選項(xiàng)>to_serverto_client…..規(guī)則選項(xiàng)-Non-payloadflags:測試TCP標(biāo)志(flag)是否是某個(gè)值F:FIN(TCP標(biāo)志字節(jié)最左邊一位)
S:SYN
R:RST
P:PSH
A:ACK
U:URG
2:保留位2
1:保留位1alerttcpanyany->anyany(flags:SF;msg:"PossibleSYNFINscan";)規(guī)則選項(xiàng)-Non-payloadseq:測試TCP包的序列號(hào)是否是某個(gè)值seq:<number>ack:測試TCP包的確認(rèn)域是否為某個(gè)值只有一個(gè)實(shí)際的用途:檢測NMAPTCPping掃描。掃描程序nmap進(jìn)行TCPping掃描時(shí),把TCP包頭的確認(rèn)號(hào)(4個(gè)字節(jié))設(shè)置為0,然后向目標(biāo)主機(jī)發(fā)出TCPACK包,確定目標(biāo)主機(jī)是否正在運(yùn)行alertanyany->/24any(flags:A;ack:0;msg:"nmapTCPping";)規(guī)則選項(xiàng)-Non-payloaditype:測試ICMP數(shù)據(jù)包的類型(type)域拒絕服務(wù)和淹沒攻擊的數(shù)據(jù)包有時(shí)使用無效的ICMP類型,可以使用這個(gè)規(guī)則選項(xiàng)對(duì)無效的ICMP類型進(jìn)行檢測,也就是說,這個(gè)規(guī)則選項(xiàng)中的值可以不是正常的數(shù)值itype:<number>icode:測試ICMP數(shù)據(jù)包的編碼(code)域icode規(guī)則選項(xiàng)和itype非常相似,也是使用數(shù)字進(jìn)行設(shè)置icode:<number>";)規(guī)則選項(xiàng)-Non-payloadicmp_id:測試ICMP回送包的標(biāo)志符(ICMPECHOID)是否為某個(gè)值icmp_id:<number>icmp_seq:檢測ICMP回送包的序列號(hào)的值因?yàn)橐恍╇[秘通道程序在通訊時(shí)使用靜態(tài)的ICMP域。icmp_seq:<number>規(guī)則選項(xiàng)-Non-payloadPost-DetectionRuleOptions是在規(guī)則被觸發(fā)后發(fā)生的、特定于規(guī)則的觸發(fā)器,主要有以下規(guī)則選項(xiàng)。規(guī)則選項(xiàng)-Post-Detectionlogto:把日志記錄到一個(gè)用戶指定的文件,而不是輸出到標(biāo)準(zhǔn)的輸出文件使用這個(gè)選項(xiàng),對(duì)處理來自nmap掃描、HTTPCGI掃描的數(shù)據(jù)非常方便。注意如果使用二進(jìn)制日志模式,這個(gè)選項(xiàng)會(huì)失效。logto:"<文件名>";session:對(duì)一個(gè)指定的會(huì)話記錄其應(yīng)用層信息觀察用戶在telnet、rlogin、ftp,甚至WEB會(huì)話過程中輸入了什么,就可以使用這個(gè)規(guī)則選項(xiàng)session規(guī)則選項(xiàng)有兩個(gè)參數(shù)關(guān)鍵詞:printable、all。logtcpanyany<>/2423(session:printable;)規(guī)則選項(xiàng)-Post-Detectionreact:激活反應(yīng)措施(阻塞WEB站點(diǎn))基本的反應(yīng)就是阻塞用戶要訪問的站點(diǎn),例如色情站點(diǎn)
block:關(guān)閉連接并發(fā)出注意信息
warn:發(fā)出警告信息
msg:定義要包含在警告信息中的文本
proxy:<number>:使用代理服務(wù)器端口發(fā)送警告信息可選參數(shù)使用逗號(hào)分開,react關(guān)鍵詞應(yīng)該放在所有選項(xiàng)的最后react:<react_basic_modifier[,react_additionall_modifier...]>alerttcpanyany<>/2480(content-list:“adults”;msg:“Notforchildren!”;react:block,msg;)規(guī)則選項(xiàng)-Post-Detectionresp:激活反應(yīng)措施(斷開連接等)對(duì)于匹配某個(gè)規(guī)則的數(shù)據(jù)包,可以通過resp關(guān)鍵詞使snort的靈活反應(yīng)機(jī)制生效。使用FlexResp插件,snort能夠主動(dòng)斷開惡意連接rst_snd:向發(fā)送方套接字發(fā)送TCP-RST數(shù)據(jù)包
rst_rcv:向接受方套接字發(fā)送TCP-RST數(shù)據(jù)包
rst_all:在兩個(gè)方向上發(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ù)包多個(gè)參數(shù)可以結(jié)合使用,各個(gè)參數(shù)之間使用逗號(hào)隔開。alerttcpanyany->/241524(flags:S;resp:rst_all;msg:"Rootshellbackdoorattempt";)alertudpanyany->.0/31(resp:icmp_port,icmp_host;msg:"Hacker'sParadiseaccessattempt";)規(guī)則選項(xiàng)-Post-Detection實(shí)例1:IIS發(fā)布之初,附帶的例子網(wǎng)頁存在漏洞特點(diǎn):保存在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;)攻擊手段對(duì)應(yīng)規(guī)則舉例實(shí)例2:紅色代碼的一個(gè)變種CodeRedⅡ。特點(diǎn)利用MSIndexServer(.ida/.idq)ISAPI擴(kuò)展遠(yuǎn)程溢出漏洞(MS01-033)alerttcp$EXTERNALany->$INTERNAL80(msg:”IDS552/web-iis_IISISAPIOverflowids”;dsize:>239;flags:A+;uricontent:”.ida?”;classtype:system-or-info-attempt;reference:arachnids,552;)攻擊手段對(duì)應(yīng)規(guī)則舉例(1)記錄所有登錄到一個(gè)特定主機(jī)的數(shù)據(jù)包:logtcpanyany->/3223(2)在第一條的基礎(chǔ)上記錄了雙向的流量:logtcpanyany<
>/3223(3)這一條規(guī)則記錄了所有到達(dá)你的本地主機(jī)的icmp數(shù)據(jù)包:logicmpanyany->/24any(4)這條規(guī)則允許雙向的從你的機(jī)子到其他站點(diǎn)的http包:passtcpany80<
>/24any(5)這條告警規(guī)則顯示了本地主機(jī)對(duì)其他主機(jī)的111端口的訪問,并在log中顯示端口影射調(diào)用('portmappercall')信息:alerttcp/24any->any111(msg:"Portmappercall";)規(guī)則使用的例子(6)記錄其他任意地址的小于1024端口訪問本地小于1024端口的流量:logtcpany:1024->/24:1024(7)這條規(guī)則將會(huì)發(fā)現(xiàn)SYNFIN掃描: alerttcpanyany->/24any(msg:"SYN-FINscan!";flags:SF;)(8)這條規(guī)則將會(huì)發(fā)現(xiàn)空TCP掃描:alerttcpanyany->/24any(msg:"Nullscan!";flags:0;)(9)這條規(guī)則將會(huì)發(fā)現(xiàn)Quesofingerprint掃描:alerttcpanyany->/24any(msg:"Quesofingerprint";flags:S12;)(10)這條規(guī)則將進(jìn)行基于內(nèi)容的查找以發(fā)現(xiàn)溢出攻擊:alerttcpanyany->/24143(msg:"IMAPBufferoverflow!";content:"|90E8C0FFFFFF|/bin/sh";)規(guī)則使用的例子(11)這條規(guī)則將會(huì)發(fā)現(xiàn)PHF攻擊:alerttcpanyany->/2480(msg:"PHFattempt";content:"/cgi-bin/phf";)(12)這條規(guī)則將會(huì)發(fā)現(xiàn)Traceroute包:alertudpanyany->/24any(msg:"Traceroute";ttl:1;)(13)這條規(guī)則將會(huì)發(fā)現(xiàn)其他主機(jī)對(duì)本地發(fā)出的icmp包:alertudpanyany->/24any(msg:"Traceroute";ttl:1;)(14)這條規(guī)則發(fā)現(xiàn)nmap的TCP的ping掃描:alerttcpanyany->/24any(flags:A;ack:0;msg:"NMAPTCPping!";)(15)這條規(guī)則將會(huì)發(fā)現(xiàn)源路由的數(shù)據(jù)包(源路由攻擊):alerttcpanyany->anyany(ipopts:lsrr;msg:"SourceRoutedpacket!";)規(guī)則使用的例子(16)S7協(xié)議是西門子S7系列PLC內(nèi)部使用的一種通信協(xié)議,通過該協(xié)議可以控制PLC的工作。下圖展示了一條能夠使西門子S7300PLC停止工作的S7報(bào)文及其檢測規(guī)則。規(guī)則使用的例子規(guī)則的編寫與測試3要獲取或者更新Snort規(guī)則,主要有以下3種方法。(1)從Snort官網(wǎng)下載規(guī)則。免費(fèi)版(Community)注冊(cè)版(Register
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 紙娃娃課件教學(xué)課件
- 2024年古建筑亮化保護(hù)工程協(xié)議
- 2024年地?cái)偨?jīng)濟(jì)創(chuàng)業(yè)項(xiàng)目經(jīng)營權(quán)轉(zhuǎn)讓協(xié)議
- 2024個(gè)人助學(xué)貸款合作合同
- 2024年度4S店汽車銷售與金融投資合同
- 2024丙公司與丁公司就煤炭廢料處理服務(wù)的合同
- 2024年度膩?zhàn)赢a(chǎn)品生產(chǎn)線改造合同
- 2024年己方區(qū)塊鏈技術(shù)研究與應(yīng)用合作協(xié)議
- 2024年度建筑工程安全防護(hù)合同
- 2024年度新能源汽車推廣銷售合同
- 有機(jī)合成化學(xué)(山東聯(lián)盟)知到章節(jié)答案智慧樹2023年青島科技大學(xué)
- 商標(biāo)法題庫1(答案)
- TMF自智網(wǎng)絡(luò)白皮書4.0
- 電視劇《國家孩子》觀影分享會(huì)PPT三千孤兒入內(nèi)蒙一段流淌著民族大愛的共和國往事PPT課件(帶內(nèi)容)
- 所水力除焦設(shè)備介紹
- 改革開放英語介紹-課件
- pet考試歷屆真題和答案
- 《企業(yè)員工薪酬激勵(lì)問題研究10000字(論文)》
- 大學(xué)英語三級(jí)B真題2023年06月
- GB/T 7909-2017造紙木片
- GB/T 25217.6-2019沖擊地壓測定、監(jiān)測與防治方法第6部分:鉆屑監(jiān)測方法
評(píng)論
0/150
提交評(píng)論