《入侵檢測(cè)與防御原理及實(shí)踐(微課版)》 課件 第4-6章 開(kāi)源入侵檢測(cè)系統(tǒng)Snort2、開(kāi)源入侵檢測(cè)系統(tǒng)Snort3、Snort的規(guī)則_第1頁(yè)
《入侵檢測(cè)與防御原理及實(shí)踐(微課版)》 課件 第4-6章 開(kāi)源入侵檢測(cè)系統(tǒng)Snort2、開(kāi)源入侵檢測(cè)系統(tǒng)Snort3、Snort的規(guī)則_第2頁(yè)
《入侵檢測(cè)與防御原理及實(shí)踐(微課版)》 課件 第4-6章 開(kāi)源入侵檢測(cè)系統(tǒng)Snort2、開(kāi)源入侵檢測(cè)系統(tǒng)Snort3、Snort的規(guī)則_第3頁(yè)
《入侵檢測(cè)與防御原理及實(shí)踐(微課版)》 課件 第4-6章 開(kāi)源入侵檢測(cè)系統(tǒng)Snort2、開(kāi)源入侵檢測(cè)系統(tǒng)Snort3、Snort的規(guī)則_第4頁(yè)
《入侵檢測(cè)與防御原理及實(shí)踐(微課版)》 課件 第4-6章 開(kāi)源入侵檢測(cè)系統(tǒng)Snort2、開(kāi)源入侵檢測(cè)系統(tǒng)Snort3、Snort的規(guī)則_第5頁(yè)
已閱讀5頁(yè),還剩126頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

開(kāi)源入侵檢測(cè)系統(tǒng)Snort2目錄Snort的體系結(jié)構(gòu)Snort的的部署方式Snort的工作模式Snort2的安裝與配置Snort2的命令行參數(shù)Snort2的預(yù)處理器Snort的體系結(jié)構(gòu)1Snort是著名的開(kāi)源、跨平臺(tái)、輕量級(jí)的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),遵循公共通用許可證GPL,采用易于擴(kuò)展的模塊化體系結(jié)構(gòu)。Snort最早是由程序員MartyRoesch在1998年用C語(yǔ)言開(kāi)發(fā)的基于libpcap/winpcap/npcap的數(shù)據(jù)包嗅探器和日志記錄工具。Snort采用基于規(guī)則的網(wǎng)絡(luò)信息搜索機(jī)制,對(duì)數(shù)據(jù)包進(jìn)行內(nèi)容的模式匹配,從中發(fā)現(xiàn)入侵和探測(cè)行為。Snort能對(duì)網(wǎng)絡(luò)流量進(jìn)行實(shí)時(shí)捕獲,對(duì)協(xié)議進(jìn)行分析,可以自定義規(guī)則庫(kù)、預(yù)處理器及輸出插件等擴(kuò)充其功能,如果有與規(guī)則庫(kù)匹配的非法流量和可疑數(shù)據(jù),可以記錄到日志文件,并實(shí)時(shí)報(bào)警。Snort簡(jiǎn)介包解碼器、預(yù)處理器、檢測(cè)引擎、報(bào)警輸出是SNORT系統(tǒng)的基本模塊,以插件形式存在,有很強(qiáng)的可擴(kuò)展性SNORT的體系結(jié)構(gòu)(1)包捕獲器:SNORT本身沒(méi)有捕獲數(shù)據(jù)包的模塊,只能借助Linux的捕包函數(shù)庫(kù)Libpcap或Windows的Winpcap直接從網(wǎng)卡獲得數(shù)據(jù)包,并將捕獲的數(shù)據(jù)包傳遞給包解碼器。(2)包解碼器:用于將包捕獲器傳遞過(guò)來(lái)的原始數(shù)據(jù)包進(jìn)行解碼,并將解碼后的數(shù)據(jù)包存放到SNORT定義的結(jié)構(gòu)體中,方便后續(xù)的預(yù)處理器和檢測(cè)引擎處理。(3)預(yù)處理器:用于將包解碼器解碼后的數(shù)據(jù)包進(jìn)行預(yù)處理操作,使之規(guī)范化,方便檢測(cè)引擎的檢測(cè)。另外,預(yù)處理器也可以檢測(cè)數(shù)據(jù)包是否有明顯的錯(cuò)誤,如果有則直接報(bào)警輸出。預(yù)處理器是插件形式存在的,SNORT中內(nèi)置了一些常用的預(yù)處理器,用戶(hù)可以根據(jù)需要有選擇地使用,也可根據(jù)添加自定義的預(yù)處理器。(4)檢測(cè)引擎:是SNORT系統(tǒng)最核心的模塊,通過(guò)規(guī)則庫(kù)判斷經(jīng)過(guò)解碼和預(yù)處理之后的數(shù)據(jù)包是否存在入侵行為。需在SNORT啟動(dòng)前提前配置好規(guī)則庫(kù)。(5)報(bào)警輸出:若數(shù)據(jù)包被檢測(cè)出錯(cuò)誤或非法,則由此模塊進(jìn)行記錄并報(bào)警。報(bào)警信息可以日志文件形式的保存,也可以保存在MYSQL、ORACLE等數(shù)據(jù)庫(kù)系統(tǒng)中。用戶(hù)也可以定制輸出插件,將檢測(cè)后的數(shù)據(jù)進(jìn)行直觀(guān)展示。(6)規(guī)則庫(kù):是檢測(cè)引擎對(duì)數(shù)據(jù)包判斷是否非法的依據(jù),在SNORT啟動(dòng)時(shí)會(huì)對(duì)系統(tǒng)中的規(guī)則進(jìn)行初始化,初始化好的規(guī)則被加載到一個(gè)三維鏈表中。(7)日志文件或數(shù)據(jù)庫(kù):用于記錄報(bào)警信息。SNORT的體系結(jié)構(gòu)Snort支持以?xún)?nèi)聯(lián)(Inline)模式配置為IPS做阻斷,只不過(guò)功能較弱。最常見(jiàn)的部署方式還是作為IDS來(lái)使用,與現(xiàn)有設(shè)備形成異構(gòu),實(shí)現(xiàn)網(wǎng)絡(luò)流量的交叉檢查。Snort作為IDS部署時(shí),應(yīng)將其以并聯(lián)的方式掛接在所關(guān)注流量必經(jīng)的鏈路上。可以將Snort部署在防火墻兩側(cè),具體有以下3種部署方案。(1)部署防火墻外(2)部署在防火墻內(nèi)(3)防火墻內(nèi)外分別部署SNORT的部署方式Snort有嗅探器、數(shù)據(jù)包記錄器和入侵檢測(cè)3種工作模式。嗅探器模式:相當(dāng)于Wireshark、tcpdump這樣的數(shù)據(jù)包捕獲工具,用戶(hù)可以實(shí)時(shí)查看網(wǎng)絡(luò)接口流量。數(shù)據(jù)包記錄器模式:將抓取的數(shù)據(jù)包存儲(chǔ)到本地硬盤(pán)中,文件名為snort.log.timestamp。用戶(hù)可以使用Wireshark等軟件或者snort-r功能分析該流量文件。入侵檢測(cè)模式:最核心的模式,將捕獲的數(shù)據(jù)包與檢測(cè)規(guī)則進(jìn)行模式匹配,當(dāng)發(fā)現(xiàn)數(shù)據(jù)包匹配上某條規(guī)則,就會(huì)執(zhí)行這條規(guī)則中所定義的動(dòng)作。SNORT的工作模式SNORT2的關(guān)鍵文件SNORT的工作流程模塊名源文件名稱(chēng)說(shuō)明主模塊SNORT.c主控模塊plugbase.c完成插件的注冊(cè)、初始化解碼模塊decode.c解碼函數(shù)預(yù)處理模塊preprocessors保存預(yù)處理插件規(guī)則處理模塊rules.c完成所有與規(guī)則相關(guān)的工作parser.c完成—些輔助工作日志模塊log.c完成與日志記錄有關(guān)的功能SNORT的啟動(dòng)流程(1)調(diào)用初始化函數(shù)SnortInit(),完成命令行解析、輸出模塊注冊(cè)、預(yù)處理模塊注冊(cè)、規(guī)則選項(xiàng)模塊構(gòu)建、加載動(dòng)態(tài)插件等操作。(2)利用GetPacketSource()函數(shù)獲取數(shù)據(jù)源,確定需要進(jìn)行捕獲數(shù)據(jù)報(bào)文的網(wǎng)卡,或者存儲(chǔ)數(shù)據(jù)報(bào)文的文件;注冊(cè)控制處理器,初始化進(jìn)程文件和權(quán)限。SNORT的工作流程(3)調(diào)用函數(shù)SetPktProcessor()獲取數(shù)據(jù)包,判斷數(shù)據(jù)來(lái)源并標(biāo)注對(duì)應(yīng)的解碼函數(shù)。(4)調(diào)用封裝了Libpcap的DAQ函數(shù)庫(kù)的DAQ_Start()函數(shù),啟動(dòng)抓包流程。利用PacketLoop()函數(shù)循環(huán)抓包。SNORT能調(diào)用不同的解碼函數(shù)對(duì)捕獲的數(shù)據(jù)包進(jìn)行解析,根據(jù)檢測(cè)規(guī)則對(duì)異常協(xié)議進(jìn)行識(shí)別與報(bào)警。數(shù)據(jù)包的處理過(guò)程SNORT的工作流程利用捕包庫(kù)函數(shù)捕獲到數(shù)據(jù)鏈路層的所有流量,包解碼器按照數(shù)據(jù)包的類(lèi)型逐層向上調(diào)用相應(yīng)的解碼函數(shù)解碼。解碼完畢后,識(shí)別出相應(yīng)的協(xié)議類(lèi)型,該過(guò)程是在數(shù)據(jù)鏈路層完成的。接下來(lái)調(diào)用網(wǎng)絡(luò)層解碼函數(shù),對(duì)數(shù)據(jù)鏈路層解碼完畢后的數(shù)據(jù)包做相似的解碼工作。調(diào)用傳輸層解碼函數(shù)對(duì)數(shù)據(jù)包進(jìn)行最后的解碼,并把解碼后的數(shù)據(jù)包存放到系統(tǒng)定義好的數(shù)據(jù)結(jié)構(gòu)中供預(yù)處理器來(lái)處理。Snort2的安裝與配置2Snort2目前最高版本為2.9.20,有源碼版和Windows版Snort2的安裝安裝完成后還需要安裝Npcap,并對(duì)配置文件snort.conf進(jìn)行編輯。Snort2的安裝在WindowsXp/2003/Vista/2008上可以使用WinpcapWin7及以后上可以使用npcap,64bit,要匹配可以用snort-V查看Snort的版本和位數(shù),也可以用snort-W可以查看版本、位數(shù)、可用接口等,還可以確定捕包函數(shù)庫(kù)與Snort是否匹配。Snort2的安裝配置snort.conf文件1)設(shè)置網(wǎng)絡(luò)變量2)配置解碼器3)配置基礎(chǔ)檢測(cè)引擎4)配置動(dòng)態(tài)加載庫(kù)5)配置預(yù)處理器6)配置輸出插件7)自定義規(guī)則集8)自定義預(yù)處理器和解碼器規(guī)則集9)自定義共享對(duì)象規(guī)則集Snort的配置1.設(shè)置網(wǎng)絡(luò)相關(guān)變量IP變量ipvarHOME_NETanyipvarEXTERNAL_NETanyipvarDNS_SERVERS$HOME_NETipvarSMTP_SERVERS$HOME_NETipvarHTTP_SERVERS$HOME_NETipvarSQL_SERVERS$HOME_NETipvarTELNET_SERVERS$HOME_NETipvarSSH_SERVERS$HOME_NETipvarFTP_SERVERS$HOME_NETipvarSIP_SERVERS$HOME_NET Snort的配置(Snort.conf)1.設(shè)置網(wǎng)絡(luò)相關(guān)變量端口變量portvarHTTP_PORTS[80,81,311,383,……portvarSHELLCODE_PORTS!80portvarORACLE_PORTS1024:portvarSSH_PORTS22portvarFTP_PORTS[21,2100,3535]portvarSIP_PORTS[5060,5061,5600]portvarFILE_DATA_PORTS[$HTTP_PORTS,110,143]portvarGTP_PORTS[2123,2152,3386]ipvarAIM_SERVERS[/23,/23,/24,……Snort的配置(Snort.conf)1.設(shè)置網(wǎng)絡(luò)相關(guān)變量規(guī)則文件的路徑(可以是相對(duì)路徑,建議用絕對(duì)路徑)104行:(105和106也可以先注釋點(diǎn))varRULE_PATHD:\snort\rules 規(guī)則路徑varSO_RULE_PATHD:\snort\so_rules 共享函數(shù)庫(kù)規(guī)則路徑varPREPROC_RULE_PATHD:\snort\preproc_rules 預(yù)處理器規(guī)則路徑注釋掉113和114行#varWHITE_LIST_PATHD:\snort\rules 允許列表地址#varBLACK_LIST_PATHD:\snort\rules 屏蔽列表地址Snort的配置(Snort.conf)4.配置動(dòng)態(tài)加載庫(kù)可動(dòng)態(tài)加載的模塊改247行和250行dynamicpreprocessordirectoryD:\snort\lib\snort_dynamicpreprocessor 動(dòng)態(tài)預(yù)處理器庫(kù)路徑dynamicengineD:\snort\lib\snort_dynamicengine\sf_engine.dll 基本預(yù)處理器引擎路徑注釋掉253行#dynamicdetectiondirectory/usr/local/lib/snort_dynamicrules 動(dòng)態(tài)規(guī)則庫(kù)路徑Snort的配置(Snort.conf)5.配置預(yù)處理器用于將包解碼器解碼后的數(shù)據(jù)包進(jìn)行預(yù)處理操作,使之規(guī)范化,方便檢測(cè)引擎的檢測(cè)。也可以檢測(cè)數(shù)據(jù)包是否有明顯的錯(cuò)誤,如果有則直接報(bào)警輸出。預(yù)處理器是插件形式存在的,源文件名都是以spp_開(kāi)頭的,SNORT中內(nèi)置了一些常用的預(yù)處理器,如:IP分片重組(frag2)、TCP流重組(stream4)、各種應(yīng)用層解碼等。用戶(hù)可以根據(jù)需要有選擇地使用,通常采用默認(rèn)值,也可根據(jù)添加自定義的預(yù)處理器。常見(jiàn)分類(lèi):模擬TCP/IP堆棧功能的插件:如IP分片重組、TCP流重組插件。各種解碼插件:如HTTP解碼插件、Unicode解碼插件、RPC解碼插件、Telnet協(xié)商插件等。規(guī)則匹配無(wú)法進(jìn)行攻擊檢測(cè)時(shí)所用的檢測(cè)插件:如端口掃描插件、Spade異常入侵檢測(cè)插件、Bo檢測(cè)插件、Arp欺騙檢測(cè)插件等。Snort的配置(Snort.conf)6.配置輸出插件在報(bào)文匹配某條規(guī)則需要輸出時(shí),調(diào)用相應(yīng)的輸出插件。它們的源文件名都以spo_開(kāi)頭,這些插件分為日志和警告兩種類(lèi)型放入兩個(gè)列表中,在規(guī)則匹配過(guò)程中和匹配結(jié)束之后調(diào)用,以便記錄日志和警告。輸出方式1)輸出到unified2文件:outputunified2:filenamesnort.log,limit128U2boat:用于將Unified2文件轉(zhuǎn)換為不同格式的工具。U2SpewFoo:用于將Unified2文件的內(nèi)容轉(zhuǎn)儲(chǔ)到stdout的輕量級(jí)工具。2)輸出到syslog:outputalert_syslog:LOG_AUTHLOG_ALERT3)輸出到pcap文件:outputlog_tcpdump:tcpdump.log4)輸出到數(shù)據(jù)庫(kù):outputdatabase:alert,mysql,host=localhostuser=snortpassword=snorttestdbname=snortencoding=hexdetail=full Snort的配置(Snort.conf)7.定制snort規(guī)則集是檢測(cè)引擎對(duì)數(shù)據(jù)包判斷是否非法的依據(jù),在SNORT啟動(dòng)時(shí)會(huì)對(duì)系統(tǒng)中的規(guī)則進(jìn)行初始化,初始化好的規(guī)則被加載到一個(gè)三維鏈表中。#include<被包含文件的完整路徑和文件名>include$RULE_PATH/local.rulesalerticmpanyany->anyany(msg:"TestingICMPalert";sid:1000001;)Snort的配置(Snort.conf)Snort的使用3嗅探器:從網(wǎng)絡(luò)上讀取數(shù)據(jù)包并作為連續(xù)不斷的流顯示在終端上。snort–v-i4:輸出IP和TCP/UDP/ICMP的包頭信息snort–vd-i4:輸出IP和TCP/UDP/ICMP的包頭信息和應(yīng)用層的數(shù)據(jù)snort–vde-i4:輸出數(shù)據(jù)鏈路層、IP和TCP/UDP/ICMP的包頭信息以及應(yīng)用層的數(shù)據(jù)數(shù)據(jù)包記錄器:把數(shù)據(jù)包記錄到硬盤(pán)上的log目錄中(log目錄必須存在)snort–dev–l./logsnort–dev–l./log-h/24網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng):此模式最復(fù)雜,且是可配置的,可以讓Snort分析網(wǎng)絡(luò)數(shù)據(jù)流以匹配用戶(hù)定義的規(guī)則,并根據(jù)檢測(cè)結(jié)果采取一定的動(dòng)作。snort–dev–l./log

-h/24–csnort.conf為了提高性能,建議不要使用ve這兩個(gè)參數(shù)Snort2的命令行參數(shù)c:\snort\bin>snort[options]<filters>主要snort參數(shù)介紹-A<alert>:設(shè)置<alert>的模式是full、fast,還是none;full模式是記錄標(biāo)準(zhǔn)的alert模式到alert文件中;fast模式只寫(xiě)入時(shí)間戳、messages、IPs、ports到文件中,none模式關(guān)閉報(bào)警。-a:顯示ARP包。-b:把LOG的信息包記錄為T(mén)CPDUMP格式,所有信息包都被記錄為二進(jìn)制形式,這個(gè)選項(xiàng)對(duì)于fast記錄模式比較好,因?yàn)樗恍枰ㄙM(fèi)包的信息轉(zhuǎn)化為文本的時(shí)間。Snort在100Mbps網(wǎng)絡(luò)中使用“b”比較好。-c<cf>:使用配置文件<cf>,這個(gè)規(guī)則文件是告訴系統(tǒng)什么樣的信息要LOG,或者要報(bào)警,或者通過(guò)。-C:在信息包信息使用ASCII碼來(lái)顯示,而不是hexdump。Snort的命令行參數(shù)主要snort參數(shù)介紹-d:解碼應(yīng)用層-D:把Snort以守護(hù)進(jìn)程的方法來(lái)運(yùn)行,默認(rèn)情況下alert記錄發(fā)送到/var/log/snort.alert文件中去。-e:顯示第二層(數(shù)據(jù)鏈路層)的包頭信息。-F<bpf>:從<bpf>文件中讀BPF過(guò)濾器(filters),這里的filters是標(biāo)準(zhǔn)的BPF格式過(guò)濾器。-h<hn>:設(shè)置網(wǎng)絡(luò)地址,如一個(gè)C類(lèi)IP地址,使用這個(gè)選項(xiàng),可限制數(shù)據(jù)進(jìn)出的方向。-i<if>:使用網(wǎng)絡(luò)接口參數(shù)<if>。-l <ld>:LOG信息包記錄到<ld>目錄中去。-M<wkstn>:發(fā)送WinPopup信息到包含<wkstn>文件中存在的工作站列表中去,這選項(xiàng)需要Samba的支持,wkstn文件很簡(jiǎn)單,每一行只要添加包含在SMB中的主機(jī)名即可(注意不需要兩個(gè)斜杠\\)。Snort的命令行參數(shù)主要snort參數(shù)介紹-n<cnt>:指定在處理<cnt>個(gè)數(shù)據(jù)包后退出。-N:關(guān)閉Log記錄,但ALERT功能仍舊正常。-o:改變所采用的記錄文件,如正常情況下采用Alert→Pass→Log,而采用此選項(xiàng)是這樣的順序:Pass→Alert→Log,其中Pass是那些允許通過(guò)的規(guī)則而不記錄和報(bào)警,ALERT是不允許通過(guò)的規(guī)則,LOG指LOG記錄。-p:關(guān)閉雜亂模式嗅探方式,一般用來(lái)更安全的調(diào)試網(wǎng)絡(luò)-r<tf>:讀取tcpdump方式產(chǎn)生的文件<tf>,這個(gè)方法用來(lái)得到一個(gè)Shadow(ShadowIDS產(chǎn)生)文件,因?yàn)檫@些文件不能用一般的EDIT來(lái)編輯查看。-sLOG:報(bào)警的記錄到syslog中去,在LINUX機(jī)器上,這些警告信息會(huì)出現(xiàn)在/var/log/secure,在其它平臺(tái)上將出現(xiàn)在/var/log/message中。Snort的命令行參數(shù)主要snort參數(shù)介紹-S<n=v>:設(shè)置變量值,這可以用來(lái)在命令行定義Snortrules文件中的變量,如要在Snortrules文件中定義變量HOME_NET,可以在命令行中給它預(yù)定義值。-v:使用為verbose模式,把信息包打印在console中,這個(gè)選項(xiàng)使用后會(huì)使速度很慢,這樣結(jié)果在記錄多的是時(shí)候會(huì)出現(xiàn)丟包現(xiàn)象。-V:顯示SNORT版本并退出。-?:顯示幫助信息。-W:顯示可用接口以上這些參數(shù)大多可組合進(jìn)行使用。Snort的命令行參數(shù)Snort入侵檢測(cè)實(shí)例1.實(shí)現(xiàn)快速嗅探在命令行輸出檢測(cè)到的IP/TCP/UDP/ICMP數(shù)據(jù)。如果想要把數(shù)據(jù)的包頭信息在命令行顯示,可以使用:

snort-v-i4命令行中會(huì)打印出如下的信息:11/25-21:14:34.2352489:8080->:3635TCPTTL:52TOS:0x0ID:32998IpLen:20DgmLen:40DF***A****Seq:0xBAFF71D6Ack:0xAA0A104DWin:0x7ETcpLen:20Snort的命令行參數(shù)Snort入侵檢測(cè)實(shí)例1.實(shí)現(xiàn)快速嗅探如果打開(kāi)-d開(kāi)關(guān),將顯示HEX和ASCII形式的應(yīng)用數(shù)據(jù)(OSI模型的第七層),命令如下:snort-vd-i4命令行中會(huì)打印出如下的信息:11/25-22:53:33.081641->ICMPTTL:128TOS:0x0ID:41593IpLen:20DgmLen:60Type:8Code:0ID:1Seq:44ECHO6162636465666768696A6B6C6D6E6F70abcdefghijklmnop71727374757677616263646566676869qrstuvwabcdefghiSnort的命令行參數(shù)Snort入侵檢測(cè)實(shí)例2.實(shí)現(xiàn)記錄數(shù)據(jù)包確認(rèn)log目錄已經(jīng)存在,再使用下面的命令:snort-de-ld:\snort\log-i4-KASCII注意:這里少了-v選項(xiàng),這意味著Snort將不在屏幕上顯示輸出信息。命令的前部分使Snort進(jìn)入探測(cè)模式,它在d:\snort\log目錄下為每個(gè)用戶(hù)發(fā)起的連接創(chuàng)建文件。每個(gè)文件中包含的是以ASCII格式顯示的流量信息。Snort的命令行參數(shù)Snort入侵檢測(cè)實(shí)例2.實(shí)現(xiàn)記錄數(shù)據(jù)包確認(rèn)log目錄已經(jīng)存在,再使用下面的命令:snort-ld:\snort\log-b-i4進(jìn)入數(shù)據(jù)包記錄界面,同時(shí)在log目錄下會(huì)生成一個(gè)名如snort.log.xxxxxxxxxx的日志文件,所有的網(wǎng)絡(luò)流量將以二進(jìn)制的形式記錄下來(lái),并以PCAP的格式寫(xiě)入到該日志文件中。這樣做的優(yōu)點(diǎn):(1)允許利用開(kāi)放源碼或者商業(yè)的探測(cè)器程序進(jìn)行瀏覽,例如,Wireshark等。(2)允許重放Snort或者探測(cè)程序。(3)速度快,基本上Snort可以得到所有的流量并寫(xiě)入到文件??捎胹nort-de-rd:\snort\log\snort.log.xxxxxxxxxx重新讀入到Snort,用于解碼Snort的命令行參數(shù)高性能的配置方式在一個(gè)高數(shù)據(jù)流量(如大于100Mb/s)的網(wǎng)絡(luò)環(huán)境下運(yùn)行snort,就需考慮如何配置snort才能使它高效率地運(yùn)行,這就要求使用更快的輸出功能,產(chǎn)生更少的警告,可使用以下選項(xiàng):-b-Afast-sSnort的命令行參數(shù)Snort的預(yù)處理器4預(yù)處理器(Preprocessor)用于將包解碼器解碼后的數(shù)據(jù)包進(jìn)行預(yù)處理,如對(duì)分片的數(shù)據(jù)包進(jìn)行重組、規(guī)范化等,方便檢測(cè)引擎的檢測(cè)。預(yù)處理器也可以檢測(cè)數(shù)據(jù)包是否有明顯的錯(cuò)誤,如果有則直接報(bào)警輸出。當(dāng)某些入侵行為無(wú)法使用檢測(cè)規(guī)則檢測(cè)時(shí),還能將檢測(cè)算法以預(yù)處理器的形式實(shí)現(xiàn),預(yù)處理器也可以進(jìn)行入侵檢測(cè)并生成告警。Snort的預(yù)處理器Snort2中內(nèi)置了一些常用的預(yù)處理器,用戶(hù)可以根據(jù)需要有選擇地使用,也可根據(jù)添加自定義的預(yù)處理器。內(nèi)置的預(yù)處理器插件可以大致分為三類(lèi):(1)模擬TCP/IP堆棧功能的插件,如IP分片重組(frag3)、TCP流重組(stream5)。(2)應(yīng)用層解碼插件,如HTTP解碼插件、IMAP解碼插件、POP解碼插件、SMTP解碼插件、RPC解碼插件、Telnet協(xié)商插件等。(3)規(guī)則匹配無(wú)法進(jìn)行檢測(cè)或異常檢測(cè)時(shí)所用的插件,如PortScan(端口掃描)插件、BO(BackOrifice,后門(mén))檢測(cè)插件、ARPSpoof(ARP欺騙)檢測(cè)插件等。Snort的預(yù)處理器預(yù)處理器是以插件形式存在的,其代碼獨(dú)立于Snort核心代碼之外,用戶(hù)可以在配置文件(snort.conf)中選擇要加載哪些預(yù)處理器,以便Snort啟動(dòng)時(shí)可以動(dòng)態(tài)加載。當(dāng)Snort運(yùn)行時(shí),已經(jīng)注冊(cè)的預(yù)處理器主函數(shù)會(huì)以鏈表形式鏈接起來(lái),進(jìn)入預(yù)處理器模塊的數(shù)據(jù)包會(huì)被每一個(gè)預(yù)處理器處理。Snort的預(yù)處理器常用預(yù)處理插件1.Normalize2.Frag33.stream54.HTTPInspect5.RPCDecode6.BOSnort的預(yù)處理器7.FTP和Telnet8.SMTP9.sfportscan10.ARPSpoof11.SSH12.DNSTHANKS!讓網(wǎng)絡(luò)更安全讓世界更美好開(kāi)源入侵檢測(cè)系統(tǒng)Snort3目錄Snort3概述Snort3的安裝Snort3的配置Snort3功能組件的安裝及配置Snort3的檢查器Snort3概述1Snort3,也稱(chēng)為Snort++,是Cisco(思科)團(tuán)隊(duì)歷經(jīng)7年的時(shí)間,用C++重新設(shè)計(jì)的下一代IPS。它采用了一種全新的設(shè)計(jì),具有更高的性能、更快的處理速度、更好的可擴(kuò)展性和可用性,是保護(hù)用戶(hù)網(wǎng)絡(luò)免受不必要流量、惡意軟件、垃圾郵件和網(wǎng)絡(luò)釣魚(yú)文檔等影響首選的開(kāi)源IPS。Snort3主要的新功能和改進(jìn)包括:(1)新的進(jìn)程架構(gòu),使Snort3可以有效處理Snort2規(guī)避的現(xiàn)代架構(gòu)。(2)全新的C++設(shè)計(jì),使代碼庫(kù)更加模塊化,可擴(kuò)展性更好,更易于在網(wǎng)絡(luò)上進(jìn)行維護(hù)。(3)多線(xiàn)程、共享內(nèi)存和Hyperscan等的使用,使Snort3處理數(shù)據(jù)包所需的資源更少,內(nèi)存利用率更高,可以更輕松地?cái)U(kuò)展到網(wǎng)絡(luò),啟動(dòng)和處理速度也更快,性能顯著提高。(4)Luajit插件允許用戶(hù)編寫(xiě)自己的插件,更容易根據(jù)自己的需要進(jìn)行定制,比如完成自定義規(guī)則選項(xiàng)、深入文件處理等任務(wù)。Snort3的新功能Snort3主要的新功能和改進(jìn)包括:(5)Snort3的規(guī)則可以采用LUA格式,規(guī)則語(yǔ)法也更簡(jiǎn)潔,方便用戶(hù)創(chuàng)建規(guī)則,減少規(guī)則冗余,同時(shí)也使規(guī)則更易于編寫(xiě)和理解、運(yùn)行也更快。比如,規(guī)則頭中的協(xié)議、源目地址、端口和方向操作符都是可選的,若省略則表示匹配任意(相當(dāng)于關(guān)鍵詞any的作用)。(6)Snort3使用了超過(guò)200個(gè)插件的完整插件系統(tǒng)(Snort2僅在預(yù)處理和輸出模塊中使用插件),用戶(hù)可以根據(jù)網(wǎng)絡(luò)情況進(jìn)行自定義設(shè)置。(7)重寫(xiě)了TCP處理。(8)改進(jìn)了共享對(duì)象規(guī)則,包括為零日漏洞添加規(guī)則的能力。(9)使用了新的性能監(jiān)視器和新的時(shí)間和空間分析方法。Snort3的新功能最顯著的區(qū)別是進(jìn)程架構(gòu)Snort2與Snort3的區(qū)別特性Snort2Snort3多線(xiàn)程支持每個(gè)進(jìn)程一個(gè)每個(gè)進(jìn)程任意多個(gè)插件僅限于預(yù)處理和輸出具有超過(guò)200個(gè)插件的完整插件系統(tǒng)與端口無(wú)關(guān)的協(xié)議檢查不支持支持IPS加速器/支持Hyperscan不支持支持模塊化不支持支持可擴(kuò)展內(nèi)存分配不支持支持下一代TALOS規(guī)則-比如正則表達(dá)式/規(guī)則選項(xiàng)/粘性緩沖區(qū)不支持支持新的和改進(jìn)的HTTP檢查器-比如支持HTTP/2不支持支持TALOS提供的輕量級(jí)內(nèi)容更新不支持支持Snort3的安裝2Snort3目前只有源碼版(.tar.gz的源碼包),可以手動(dòng)編譯安裝在Kali、CentOS、FreeBSD、Ubuntu、OracleLinux等基于Linux的操作系統(tǒng)上。Snort3的安裝Snort3-.tar.gz:Snort3的源碼安裝包。libdaq-3.0.10.tar.gz:Snort3的數(shù)據(jù)采集器。snortrules-snapshot-31470.tar.gz:Snort3的訂閱規(guī)則集。pulledpork3-main.zip:用來(lái)下載和合并Snort規(guī)則集的腳本。snort-openappid.tar.gz:使Snort能識(shí)別、控制和測(cè)量網(wǎng)絡(luò)上正在使用的應(yīng)用程序。gperftools-2.9.1.tar.gz:GooglePerfTools工具集,可以提高Snort性能、減少內(nèi)存使用,可在/gperftools/gperftools下載最新版。splunk-9.0.4-de405f4a7979-linux-2.6-amd64.deb:一個(gè)安全信息和事件管理(SIEM)系統(tǒng),它收集、存儲(chǔ)并允許輕松地進(jìn)行分析以及可視化數(shù)據(jù),包括Snort創(chuàng)建的警報(bào)。主要安裝包及其功能主要路徑/usr/localbinetcvarlogsnort.exesnort2lua.exesnortrulessnortgcc :編譯器,如果報(bào)錯(cuò),apt-getinstallg++flex :DAQ所需的解析器bison :DAQ所需的解析器zlib1g-dev :Snort所需的壓縮庫(kù)libpcap-dev :Snort所需的網(wǎng)絡(luò)流量捕獲頭文件庫(kù)libdnet-dev :不是必要的,為幾個(gè)網(wǎng)絡(luò)歷程提供了簡(jiǎn)化的可移植接口luajit :lua的頭文件庫(kù)headersbuild-essential :提供編譯軟件的構(gòu)建工具libpcre3-dev :Snort所需的pcre3的頭文件libdumbnet-dev :同libdnetopenssllibssl-dev :ssl的加密組件,提供SHA和MD5文件簽名部分依賴(lài)包的功能安裝編譯環(huán)境及依賴(lài)包安裝snort的數(shù)據(jù)采集庫(kù)DAQ安裝TCMalloc(Google開(kāi)發(fā)的內(nèi)存管理工具)安裝snort3網(wǎng)卡的配置將下載snort3規(guī)則復(fù)制到規(guī)則目錄中修改snort3的配置文件新增測(cè)試規(guī)則文件啟動(dòng)snort3驗(yàn)證效果安裝和配置OpenAppID安裝和配置pulledpork3安裝和配置splunk安裝流程Snort3的配置3Snort3也有免費(fèi)版(Community)、注冊(cè)版(Registered)、收費(fèi)版(Subscription)三類(lèi)規(guī)則。可以分解為下載規(guī)則、修改配置文件和運(yùn)行Snort三個(gè)部分。使用注冊(cè)規(guī)則集用戶(hù)也可以根據(jù)需要?jiǎng)?chuàng)建自定義的規(guī)則文件,再在自定義的規(guī)則文件中創(chuàng)建用戶(hù)自定義的規(guī)則,在對(duì)Snort進(jìn)行配置讓自定義的規(guī)則生效。1.創(chuàng)建自定義的規(guī)則文件和規(guī)則sudovi/usr/local/etc/snort/rules/test.rules alerticmpanyany->anyany(msg:"ICMPTrafficDetected";sid:10000001;metadata:policysecurity-ipsalert;)2.使用自定義的規(guī)則文件和規(guī)則1)sudosnort-c/usr/local/etc/snort/snort.lua-R/usr/local/etc/snort/rules/test.rules-ieth0-Aalert_fast2)sudovi/usr/local/etc/snort/snort.luainclude$RULE_PATH/test.rulessudosnort-c/usr/local/etc/snort/snort.lua-ieth0-Aalert_fast使用自定義規(guī)則啟用JSON輸出插件,可以將Snort3的告警信息寫(xiě)入JSON格式的文本文件,以便導(dǎo)入到安全信息和事件管理系統(tǒng)SIEM中(如Splunk)。啟用JSON輸出插件Snort3功能組件的安裝及配置4處理前面介紹的Snort3的基本功能之外,Snort3還有很多可選的功能組件或第三方的軟件,可以增強(qiáng)Snort3的功能。OpenAppID:使Snort能夠識(shí)別、控制和測(cè)量網(wǎng)絡(luò)上正在使用的應(yīng)用程序。PulledWork:管理Snort規(guī)則集的工具。Snort3自啟動(dòng)腳本:系統(tǒng)啟動(dòng)時(shí)Snort3能自動(dòng)運(yùn)行Splunk:SIEM(SecurityInformationandEventManagement)工具,可對(duì)信息進(jìn)行統(tǒng)一、實(shí)時(shí)的監(jiān)控、歷史分析,對(duì)外部的入侵和內(nèi)部的違規(guī)、誤操作行為進(jìn)行監(jiān)控、審計(jì)分析、調(diào)查取證、出具各種報(bào)表報(bào)告,以實(shí)現(xiàn)資源合規(guī)性管理的目標(biāo),同時(shí)提升企業(yè)的安全運(yùn)營(yíng)、威脅管理和應(yīng)急響應(yīng)的能力。Snort3功能組件的安裝及配置Snort3的檢查器Inspector5功能相當(dāng)于Snort2的預(yù)處理器,用于對(duì)解碼后的數(shù)據(jù)包進(jìn)行錯(cuò)誤檢測(cè)和預(yù)處理,方便檢測(cè)引擎的檢測(cè)。Snort3也內(nèi)置了一些常用的檢查器,如normalize、stream5、http_inspect、http2_inspect、RPCDecode、bo、smtp、arpspoof、ssh、dce、dns、ssl、sip、imap、pop、modbus、dnp3等,用戶(hù)可以根據(jù)需要有選擇地使用,也可根據(jù)添加自定義的預(yù)處理器。Snort3的檢查器InspectorTHANKS!讓網(wǎng)絡(luò)更安全讓世界更美好Snort的規(guī)則目錄規(guī)則的基本語(yǔ)法規(guī)則的存儲(chǔ)結(jié)構(gòu)規(guī)則的組成規(guī)則的編寫(xiě)與測(cè)試規(guī)則的基本語(yǔ)法1Snort是一個(gè)強(qiáng)大的、基于特征檢測(cè)的輕量級(jí)網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),它能根據(jù)規(guī)則對(duì)數(shù)據(jù)流量進(jìn)行實(shí)時(shí)分析,通過(guò)攻擊特征來(lái)識(shí)別網(wǎng)絡(luò)發(fā)生的攻擊行為,并根據(jù)檢測(cè)結(jié)果采取一定的動(dòng)作。對(duì)于Snort來(lái)說(shuō),規(guī)則很重要,它是檢測(cè)引擎的核心內(nèi)容,是檢測(cè)引擎判斷數(shù)據(jù)包是否非法的依據(jù)。規(guī)則的概述Snort規(guī)則庫(kù)中可以有很多的規(guī)則,規(guī)則有以下的語(yǔ)法要求:(1)規(guī)則分類(lèi)存放在不同的規(guī)則文件中。每個(gè)規(guī)則文件都是文本文件,其命名格式為“類(lèi)名.rules”。(2)需要使用的規(guī)則文件應(yīng)該用include語(yǔ)句包含在配置文件(如snort.conf,snort.lua)中,語(yǔ)法格式為“include<includefile_path/name>”。(3)若想禁用已包含在配置文件中的規(guī)則文件,可以在句首加“#”將其注釋掉。(4)在每個(gè)規(guī)則文件中可以添加一條或多條規(guī)則,每條規(guī)則占一行。暫時(shí)不用的規(guī)則可以用“#”注釋掉。(5)Snort3增加了#begin和#end注釋?zhuān)试S規(guī)則編寫(xiě)者輕松注釋多行。規(guī)則的基本語(yǔ)法規(guī)則中使用變量名的定義變量的定義格式:var<name><value>例:varMY_NET/24alerttcpanyany->$MY_NETany(flags:S;msg:”SYNPacket”)說(shuō)明:1)$name或$(name):用name的內(nèi)容替換變量name2)$(name:-default):如果name沒(méi)有定義就使用default的內(nèi)容替換變量3)$(name:?message):使用變量name的內(nèi)容替換變量,如果不成功就打印錯(cuò)誤信息message并退出。例:varMY_NET$(MY_NET:-/24)logtcpanyany->$(MY_NET:?MY_NETisundefined!)23規(guī)則的基本語(yǔ)法每條規(guī)則中的各個(gè)規(guī)則選項(xiàng)之間是“與”的關(guān)系。只有當(dāng)一個(gè)數(shù)據(jù)包與一條規(guī)則中所有的規(guī)則選項(xiàng)都匹配時(shí),才算匹配該規(guī)則,從而判定該數(shù)據(jù)包為有害數(shù)據(jù)包。而在龐大的規(guī)則庫(kù)中,不同的規(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ī)則樹(shù)節(jié)點(diǎn)存儲(chǔ),規(guī)則選項(xiàng)部分則以規(guī)則選項(xiàng)節(jié)點(diǎn)存儲(chǔ)。同一條規(guī)則的規(guī)則樹(shù)節(jié)點(diǎn)與規(guī)則選項(xiàng)頭節(jié)點(diǎn)鏈接起來(lái)。具有相同規(guī)則動(dòng)作(如alert、log、pass等)的規(guī)則樹(shù)節(jié)點(diǎn)也鏈接起來(lái),形成鏈表判定樹(shù)。規(guī)則的組成2snort的每條規(guī)則都可以分成邏輯上的兩個(gè)部分:規(guī)則頭和規(guī)則選項(xiàng)

規(guī)則頭:包括規(guī)則行為(action)、協(xié)議(protocol)、源/目的IP地址、源/目的端口和方向。規(guī)則選項(xiàng):包含報(bào)警信息和異常包的信息(特征碼,signature),使用這些特征碼來(lái)決定是否采取規(guī)則規(guī)定的行動(dòng)。格式:(關(guān)鍵字:參數(shù);關(guān)鍵字:參數(shù);關(guān)鍵字:參數(shù);……)采用遞歸的方法進(jìn)行規(guī)則匹配滿(mǎn)足一個(gè)規(guī)則時(shí),觸發(fā)相應(yīng)的操作用戶(hù)可以根據(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é)議類(lèi)型(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ī)則頭的語(yǔ)法,Snort2和Snort3有一些區(qū)別。在Snort2中,規(guī)則頭任何一個(gè)部分都不可以省略。而在Snort3中,選項(xiàng)Protocol、Networks、Ports和DirectionOperator是可選的,若省略則表示匹配任意,類(lèi)似于用關(guān)鍵字any,方向是雙向(入站/出站)。下面的規(guī)則頭表示任意地址的TCP流量都要告警。alerttcp(RULES_OPTIONS)Snort3的語(yǔ)法有助于更快地創(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ī)則類(lèi)型,并將一個(gè)或多個(gè)輸出插件與它們關(guān)聯(lián)起來(lái)。然后將規(guī)則類(lèi)型作為Snort規(guī)則中的操作。規(guī)則頭Snort常作為IDS來(lái)使用,但它也可配置為IPS,只不過(guò)功能較弱。Snort使用數(shù)據(jù)采集器(DAQ)監(jiān)聽(tīng)防火墻數(shù)據(jù)包隊(duì)列,配合Snort規(guī)則動(dòng)作drop、alert等處理數(shù)據(jù)包,防火墻在Snort啟動(dòng)后添加鏈表隊(duì)列。數(shù)據(jù)包經(jīng)過(guò)防火墻時(shí)將交給Snort來(lái)處理,觸發(fā)入侵檢測(cè)規(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)用層,寫(xiě)規(guī)則時(shí)協(xié)議可以寫(xiě)TCP、UDP、ICMP、IP,不能寫(xiě)ARP、FTP、TELNET、SMTP、HTTP等。在Snort3中新增了協(xié)議關(guān)鍵字HTTP進(jìn)行HTTP內(nèi)容檢測(cè)。在Snort2中,編寫(xiě)規(guī)則以檢測(cè)HTTPURI、Header或Body中的內(nèi)容時(shí)使用的協(xié)議為T(mén)CP。在Snort3中,則可以用新的協(xié)議關(guān)鍵字HTTP,這提供了以下好處:(1)無(wú)論HTTP是否使用標(biāo)準(zhǔn)端口,Snort都可以進(jìn)行檢測(cè)并對(duì)HTTP內(nèi)容進(jìn)行告警。因此,規(guī)則編寫(xiě)者不必?fù)?dān)心某些惡意軟件正在通信的端口是否為標(biāo)準(zhǔn)端口。(2)無(wú)需在metadata選項(xiàng)中定義的服務(wù)映射(例如servicehttp)。(3)使用Snort3新的粘性緩沖區(qū)和動(dòng)態(tài)緩沖區(qū)的功能,對(duì)Snort3的規(guī)則進(jìn)行簡(jiǎ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ù)器和客戶(hù)端,可以用到這個(gè)標(biāo)示。例如,你可以監(jiān)視往來(lái)POP或者Telnet服務(wù)器的數(shù)據(jù)流。規(guī)則頭規(guī)則選項(xiàng)構(gòu)成了snort入侵檢測(cè)引擎的核心,結(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)主要有四類(lèi)General(一般規(guī)則選項(xiàng)):提供了有關(guān)該規(guī)則的信息,但在檢測(cè)過(guò)程中沒(méi)有任何影響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)聰者聽(tīng)于無(wú)聲,明者見(jiàn)于未形維護(hù)網(wǎng)絡(luò)安全,首先要知道風(fēng)險(xiǎn)在哪里,是什么樣的風(fēng)險(xiǎn),什么時(shí)候發(fā)生風(fēng)險(xiǎn),正所謂“聰者聽(tīng)于無(wú)聲,明者見(jiàn)于未形”。感知網(wǎng)絡(luò)安全態(tài)勢(shì)是最基本、最基礎(chǔ)的工作。

——2016年4月19日,習(xí)近平總書(shū)記在網(wǎng)絡(luò)安全和信息化工作座談會(huì)上的講話(huà)聰者聽(tīng)于無(wú)聲,明者見(jiàn)于未形“聰者聽(tīng)于無(wú)聲,明者見(jiàn)于未形”,最早出自司馬遷《史記·淮南衡山列傳》:“臣聞聰者聽(tīng)于無(wú)聲,明者見(jiàn)于未形,故圣人萬(wàn)舉萬(wàn)全?!边@是淮南王劉安的謀臣伍被勸諫劉安所說(shuō),大意是聽(tīng)力好的人能在無(wú)聲時(shí)聽(tīng)出動(dòng)靜,視力好的人能在未成形前看出征兆,所以最智慧、最有道德的圣人做事總是萬(wàn)無(wú)一失。后來(lái),東漢史學(xué)家班固在《漢書(shū)·蒯伍江息夫傳》中也曾引用這句。今天,這句典故多被用于強(qiáng)調(diào)防范未知風(fēng)險(xiǎn),見(jiàn)微知著,防微杜漸,增強(qiáng)對(duì)矛盾風(fēng)險(xiǎn)挑戰(zhàn)的預(yù)判和準(zhǔn)備。聰者聽(tīng)于無(wú)聲,明者見(jiàn)于未形提高預(yù)見(jiàn)能力一直是黨對(duì)領(lǐng)導(dǎo)干部的一項(xiàng)基本要求。在革命和建設(shè)年代,毛澤東同志就一直強(qiáng)調(diào)領(lǐng)導(dǎo)干部必須具有預(yù)見(jiàn)性。他指出:“預(yù)見(jiàn)就是預(yù)先看到前途趨向。如果沒(méi)有預(yù)見(jiàn),叫不叫領(lǐng)導(dǎo)?我說(shuō)不叫領(lǐng)導(dǎo)?!焙苊黠@,領(lǐng)導(dǎo)干部努力提高預(yù)見(jiàn)能力,才能站得高,看得遠(yuǎn),才能把握事物的發(fā)展規(guī)律,看到社會(huì)發(fā)展的長(zhǎng)遠(yuǎn)趨勢(shì),提前做好政策布局。聰者聽(tīng)于無(wú)聲,明者見(jiàn)于未形作為網(wǎng)絡(luò)安全的專(zhuān)業(yè)技術(shù)人員,在構(gòu)筑網(wǎng)絡(luò)安全防線(xiàn)時(shí),也要努力提高預(yù)見(jiàn)能力。只有對(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ī)則的信息,但在檢測(cè)過(guò)程中沒(méi)有任何影響規(guī)則選項(xiàng)Snort3規(guī)定,所有規(guī)則必須有sid選項(xiàng),且sid不允許為0。(1)小于100:保留給未來(lái)擴(kuò)充時(shí)使用。(2)100-1000000:用于Snort官方預(yù)設(shè)配置的規(guī)則項(xiàng)目。(3)大于1000000:本地自定義的規(guī)則項(xiàng)目。General(一般規(guī)則選項(xiàng)):提供了有關(guān)該規(guī)則的信息,但在檢測(cè)過(guò)程中沒(méi)有任何影響msg:一個(gè)簡(jiǎn)單的文本字符串,用于在報(bào)警和日志中打印消息msg:"<messagetext>";例:alerttcp$EXTERNALany->$INTERNAL79(msg:”Finger”)規(guī)則選項(xiàng)General(一般規(guī)則選項(xiàng)):提供了有關(guān)該規(guī)則的信息,但在檢測(cè)過(guò)程中沒(méi)有任何影響2、reference包含對(duì)外部攻擊識(shí)別系統(tǒng)的引用。該插件目前支持幾個(gè)特定的系統(tǒng)以及唯一的url。此插件將被輸出插件用來(lái)提供一個(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)搜索并檢測(cè)數(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ǔ)充說(shuō)明。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(簡(jiǎn)稱(chēng)BM)。如果數(shù)據(jù)包有效載荷中的任何位置包含與指定內(nèi)容完全匹配的數(shù)據(jù),表示匹配成功,Snort將執(zhí)行其余的規(guī)則選項(xiàng)測(cè)試。內(nèi)容匹配時(shí)區(qū)分大小寫(xiě)。語(yǔ)法格式如下:content:"<contentstring>";如:alerttcpanyany->/24143(content:“|90c8c0ffffff|/bin/sh”;msg:"IMAPbufferoverflow");“|”管道符號(hào):表示二進(jìn)制數(shù)據(jù),以字節(jié)碼的形式表示,用于檢測(cè)特定的數(shù)據(jù)模式或簽名。規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說(shuō)明。注意:content的修飾詞選項(xiàng)的語(yǔ)法,Snort2和Snort3有較大的區(qū)別。在Snort2中,修飾詞選項(xiàng)的格式和其他規(guī)則選項(xiàng)一樣,選項(xiàng)名稱(chē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)部,名稱(chēng)和值之間用空格分隔,不同修飾詞之間用逗號(hào)“,”分隔,具體格式如下:content:"要匹配的內(nèi)容",[修飾詞選項(xiàng)1

值,

修飾詞選項(xiàng)2值,……];規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說(shuō)明。①nocase:表示忽略大小寫(xiě)。語(yǔ)法格式為“nocase;”。下面的規(guī)則表示字符串“USERroot”不區(qū)分大小寫(xiě)。alerttcpanyany->any21(msg:"FTPROOT";content:"USERroot",nocase;)。②rawbytes:表示匹配原始數(shù)據(jù)包數(shù)據(jù),忽略任何由預(yù)處理器完成的解碼。語(yǔ)法格式為“rawbytes;”。下面的規(guī)則告訴模式匹配器查看原始流量,而不是解碼器提供的解碼流量。alerttcpanyany->any21(msg:"TelnetNOP";content:"|FFF1|",rawbytes;)規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說(shuō)明。③depth:表示匹配深度,指定Snort應(yīng)該搜索指定模式的數(shù)據(jù)包的深度,與offset一起使用。例如,depth為5則告訴Snort只在有效載荷的前5個(gè)字節(jié)中查找指定的模式。depth關(guān)鍵字允許大于或等于正在搜索的模式長(zhǎng)度的值,允許的取值范圍為1-65535。語(yǔ)法格式為“depth[<number>|<var_name>];”。④offset:表示匹配起始偏移,指定從何處開(kāi)始搜索數(shù)據(jù)包中的模式。例如,offset為4將告訴Snort在有效載荷的第5個(gè)字節(jié)開(kāi)始查找指定的模式。offset允許-655535到65535之間的值。語(yǔ)法格式為“offset[<number>|<var_name>];”。下面的規(guī)則顯示了content、offset和depth的組合使用,表示在有效載荷的第5個(gè)字節(jié)開(kāi)始的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ǔ)充說(shuō)明。⑤distance:表示匹配相對(duì)于上個(gè)模式的偏移的距離,與offset類(lèi)似,只是它是相對(duì)于前一個(gè)模式匹配的結(jié)束而不是數(shù)據(jù)包的開(kāi)始,與within一起使用。語(yǔ)法格式為“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é)。語(yǔ)法格式為“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ǔ)充說(shuō)明。⑦h(yuǎn)ttp_client_body:將搜索限制在HTTP客戶(hù)端請(qǐng)求的主體上。使用此選項(xiàng)檢查的數(shù)據(jù)量取決于HttpInspect的post_depth配置選項(xiàng)。當(dāng)post_depth設(shè)置為-1時(shí),與此關(guān)鍵字匹配的模式將不起作用。不能與rawbytes一起使用。語(yǔ)法格式為“http_client_body;”。下面的規(guī)則將對(duì)模式“ABC”的搜索限制在HTTP客戶(hù)端請(qǐng)求的原始主體上。alerttcpanyany->any80(content:"ABC",http_client_body;)⑧http_cookie:將搜索限制在HTTP客戶(hù)端請(qǐng)求或HTTP服務(wù)器響應(yīng)的Cookie頭部字段,不能與rawbytes、http_raw_cookie或fast_pattern一起使用。語(yǔ)法格式為“http_cookie;”。⑨http_raw_cookie:將搜索限制為HTTP客戶(hù)端請(qǐng)求或HTTP服務(wù)器響應(yīng)的未規(guī)范化(UNNORMALIZED)的Cookie頭部字段,不能與rawbytes、http_cookie或fast_pattern一起使用。語(yǔ)法格式為“http_raw_cookie;”。規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說(shuō)明。⑩http_header:將搜索限制在HTTP客戶(hù)端請(qǐng)求或HTTP服務(wù)器響應(yīng)的頭部字段,不能與rawbytes一起使用。語(yǔ)法格式為“http_header;”。?http_raw_header:將搜索限制為HTTP客戶(hù)端請(qǐng)求或HTTP服務(wù)器響應(yīng)的未規(guī)范化(UNNORMALIZED)的頭部字段,不能與rawbytes、http_header或fast_pattern一起使用。語(yǔ)法格式為“http_raw_header;”。?http_method:將搜索限制為從HTTP客戶(hù)端請(qǐng)求中提取的方法,不能與rawbytes或fast_pattern一起使用。語(yǔ)法格式為“http_raw_header;”。?http_uri:將搜索限制在規(guī)范化(NORMALIZED)請(qǐng)求的URI字段,不能與rawbytes一起使用。語(yǔ)法格式為“http_uri;”。?http_raw_uri:將搜索限制在規(guī)范化(NORMALIZED)請(qǐng)求的URI字段,不能與rawbytes、http_uri或fast_pattern一起使用。語(yǔ)法格式為“http_raw_uri;”。規(guī)則選項(xiàng)-Payloadcontent的修飾詞選項(xiàng):用于對(duì)content選項(xiàng)進(jìn)行補(bǔ)充說(shuō)明。?http_stat_code:將搜索限制為從HTTP服務(wù)器響應(yīng)中提取的狀態(tài)代碼字段,不能與rawbytes或fast_pattern一起使用。語(yǔ)法格式為“http_stat_code;”。?http_stat_msg:將搜索限制為從HTTP服務(wù)器響應(yīng)中提取的狀態(tài)消息字段,不能與rawbytes或fast_pattern一起使用。語(yǔ)法格式為“http_stat_msg;”。?fast_pattern:用于設(shè)置要與快速模式匹配器一起使用的content選項(xiàng)。快速模式匹配器可以選擇那些有機(jī)會(huì)匹配的規(guī)則,從而顯著減少需要評(píng)估的規(guī)則數(shù)量,提高性能??焖倌J狡ヅ淦鞑粎^(qū)分大小寫(xiě)。每條規(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ù)。語(yǔ)法格式為“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”后面沒(méi)有10個(gè)字節(jié)。alerttcpanyany->any111(content:"foo";isdataat:!10,relative;)規(guī)則選項(xiàng)-Payloadpcre選項(xiàng)允許使用與perl兼容的正則表達(dá)式編寫(xiě)規(guī)則,可以實(shí)現(xiàn)比簡(jiǎn)單的內(nèi)容匹配更復(fù)雜的匹配。語(yǔ)法格式如下:pcre:[!]"(/<regex>/|m<delim><regex><delim>)[ismxAEGRUBPHMCOIDKYS]";pkt_data選項(xiàng)用于將檢測(cè)用的游標(biāo)設(shè)置為原始傳輸?shù)挠行ж?fù)載。pkt_data選項(xiàng)必須位于content選項(xiàng)之前,并在更改之前保持有效。此選項(xiàng)可以在一個(gè)規(guī)則中多次使用。語(yǔ)法格式為“pkt_data;”。規(guī)則選項(xiàng)-PayloadNon-payloadDetectionRuleOptions(非有效載荷檢測(cè)規(guī)則選項(xiàng))用來(lái)對(duì)數(shù)據(jù)包的非有效載荷部分(即數(shù)據(jù)包的包頭)進(jìn)行檢測(cè)。這類(lèi)規(guī)則選項(xiàng)主要有以下關(guān)鍵字:規(guī)則選項(xiàng)-Non-payloadttl:測(cè)試IP包頭的TTL域的值ttl:"<number>";支持<,>和=操作符tos:測(cè)試IP包頭的TOS(typeofservice)域的值tos:"<number>";例:alerttcp$EXTERNALany->$CISCOany(msg:”CiscoTOSExample”;tos:!”0”;)規(guī)則選項(xiàng)-Non-payloadid:測(cè)試IP分組標(biāo)志符(fragmentID)域是否是一個(gè)特定的值id:"<number>";ipoption:查看IP選項(xiàng)(IPoption)域

rr:路由記錄,

eof:Endoflist,nop:無(wú)操作,

ts:時(shí)間戳,

sec:IP安全選項(xiàng),

lsrr:寬松源路由,

ssrr:嚴(yán)格源路由,satid:流標(biāo)識(shí)符ipopts:<option>;規(guī)則選項(xiàng)-Non-payloadfragbits:測(cè)試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:測(cè)試數(shù)據(jù)包數(shù)據(jù)段的大小這個(gè)規(guī)則選項(xiàng)用來(lái)測(cè)試數(shù)據(jù)包負(fù)載的大小如果知道某個(gè)服務(wù)有一個(gè)特定大小的緩沖區(qū),就能夠設(shè)置這個(gè)選項(xiàng)來(lái)捕獲制造緩沖區(qū)溢出的企圖dsize:[>|<]<number>flow:<選項(xiàng)>to_serverto_client…..規(guī)則選項(xiàng)-Non-payloadflags:測(cè)試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:測(cè)試TCP包的序列號(hào)是否是某個(gè)值seq:<number>ack:測(cè)試TCP包的確認(rèn)域是否為某個(gè)值只有一個(gè)實(shí)際的用途:檢測(cè)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:測(cè)試ICMP數(shù)據(jù)包的類(lèi)型(type)域拒絕服務(wù)和淹沒(méi)攻擊的數(shù)據(jù)包有時(shí)使用無(wú)效的ICMP類(lèi)型,可以使用這個(gè)規(guī)則選項(xiàng)對(duì)無(wú)效的ICMP類(lèi)型進(jìn)行檢測(cè),也就是說(shuō),這個(gè)規(guī)則選項(xiàng)中的值可以不是正常的數(shù)值itype:<number>icode:測(cè)試ICMP數(shù)據(jù)包的編碼(code)域icode規(guī)則選項(xiàng)和itype非常相似,也是使用數(shù)字進(jìn)行設(shè)置icode:<number>";)規(guī)則選項(xiàng)-Non-payloadicmp_id:測(cè)試ICMP回送包的標(biāo)志符(ICMPECHOID)是否為某個(gè)值icmp_id:<number>icmp_seq:檢測(cè)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è)用戶(hù)指定的文件,而不是輸出到標(biāo)準(zhǔn)的輸出文件使用這個(gè)選項(xiàng),對(duì)處理來(lái)自nmap掃描、HTTPCGI掃描的數(shù)據(jù)非常方便。注意如果使用二進(jìn)制日志模式,這個(gè)選項(xiàng)會(huì)失效。logto:"<文件名>";session:對(duì)一個(gè)指定的會(huì)話(huà)記錄其應(yīng)用層信息觀(guān)察用戶(hù)在telnet、rlogin、ftp,甚至WEB會(huì)話(huà)過(guò)程中輸入了什么,就可以使用這個(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)就是阻塞用戶(hù)要訪(fǎng)問(wèn)的站點(diǎn),例如色情站點(diǎn)

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

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

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

proxy:<number>:使用代理服務(wù)器端口發(fā)送警告信息可選參數(shù)使用逗號(hào)分開(kāi),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)措施(斷開(kāi)連接等)對(duì)于匹配某個(gè)規(guī)則的數(shù)據(jù)包,可以通過(guò)resp關(guān)鍵詞使snort的靈活反應(yīng)機(jī)制生效。使用FlexResp插件,snort能夠主動(dòng)斷開(kāi)惡意連接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ā)送以上各種類(lèi)型的ICMP數(shù)據(jù)包多個(gè)參數(shù)可以結(jié)合使用,各個(gè)參數(shù)之間使用逗號(hào)隔開(kāi)。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)頁(yè)存在漏洞特點(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í)例

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論