0x01?引言
在外網(wǎng)在中各大安全廠商一般使用WAf來(lái)防御攻擊者的攻擊,但是在內(nèi)網(wǎng)中一般來(lái)使用ips,ids來(lái)防御攻擊者的攻擊,這是因?yàn)閮?nèi)外網(wǎng)的環(huán)境差異造成的,外網(wǎng)中主要是防御一些web攻擊,而內(nèi)網(wǎng)中主機(jī)漏洞居多,就用到了ids和ips,但是?IDS和防火墻均具備對(duì)方不可替代的功能,因此IDS和防火墻共存,形成互補(bǔ)
0x02 什么是ids和ips
IPS對(duì)于初始者來(lái)說(shuō),是位于防火墻和網(wǎng)絡(luò)的設(shè)備之間的設(shè)備。這樣,如果檢測(cè)到攻擊,IPS會(huì)在這種攻擊擴(kuò)散到網(wǎng)絡(luò)的其它地方之前阻止這個(gè)惡意的通信。而IDS只是存在于你的網(wǎng)絡(luò)之外起到報(bào)警的作用,而不是在你的網(wǎng)絡(luò)前面起到防御的作用。
IPS檢測(cè)攻擊的方法也與IDS不同。一般來(lái)說(shuō),IPS系統(tǒng)都依靠對(duì)數(shù)據(jù)包的檢測(cè)。IPS將檢查入網(wǎng)的數(shù)據(jù)包,確定這種數(shù)據(jù)包的真正用途,然后決定是否允許這種數(shù)據(jù)包進(jìn)入你的網(wǎng)絡(luò)。
含義不同
IDS :入侵檢測(cè)系統(tǒng)
做一個(gè)形象的比喻:假如防火墻是一幢大樓的門鎖,那么IDS就是這幢大樓里的監(jiān)視系統(tǒng)。一旦小偷爬窗進(jìn)入大樓,或內(nèi)部人員有越界行為,實(shí)時(shí)監(jiān)視系統(tǒng)會(huì)發(fā)現(xiàn)情況并發(fā)出警告。
IPS :入侵防御系統(tǒng)
作用不同
IDS 專業(yè)上講就是依照一定的安全策略,對(duì)網(wǎng)絡(luò)、系統(tǒng)的運(yùn)行狀況進(jìn)行監(jiān)視,盡可能發(fā)現(xiàn)各種攻擊企圖、攻擊行為或者攻擊結(jié)果,以保證網(wǎng)絡(luò)系統(tǒng)資源的機(jī)密性、完整性和可用性。
IPS入侵防御系統(tǒng)是電腦網(wǎng)絡(luò)安全設(shè)施,是對(duì)防病毒軟件和防火墻的補(bǔ)充。入侵防御系統(tǒng)是一部能夠監(jiān)視網(wǎng)絡(luò)或網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)資料傳輸行為的計(jì)算機(jī)網(wǎng)絡(luò)安全設(shè)備,能夠即時(shí)的中斷、調(diào)整或隔離一些不正?;蚴蔷哂袀π缘木W(wǎng)絡(luò)資料傳輸行為。
0x03?Suricata
Suricata是一個(gè)高性能的網(wǎng)絡(luò)IDS、IPS和網(wǎng)絡(luò)安全監(jiān)控引擎。它是開源的,由一個(gè)社區(qū)經(jīng)營(yíng)的非營(yíng)利性基金會(huì),開放的信息安全基金會(huì)所有。(OISF _). Suricata是由OISF開發(fā)的
有些廠商選擇用Suricata有些廠商選擇用snort
大部分廠商選擇Suricata的原因
Snort自1998年開發(fā)至今,擁有比較長(zhǎng)的歷史和完整的知識(shí)庫(kù)。
即便如此,很多開發(fā)廠商還是選擇使用了Suricata,主要的原因如下:
舊版本的Snort2不支持多線程、吞吐量小,無(wú)論一個(gè) CPU 包含多少個(gè)內(nèi)核,都只會(huì)使用一個(gè)內(nèi)核或一個(gè)線程,很大程度上造成了性能上的短板。
有一個(gè)相當(dāng)復(fù)雜的解決方法:運(yùn)行多個(gè)SNORT單線程實(shí)例,全部進(jìn)入同一個(gè)日志。然而,管理這個(gè)過(guò)程的額外開銷(AutoFP)和硬件的高成本,意味著這種設(shè)置很少在生產(chǎn)環(huán)境中出現(xiàn)。
Suricata可以兼容Snort2的規(guī)則簽名,也就是snort2的規(guī)則直接拿來(lái),放到suricata里就可以用。
Suricata支持文件提取、文件還原,可以將流量中的文件還原出來(lái)。
Suricata和snort從規(guī)則上來(lái)講并沒什么太大的差別,會(huì)寫一個(gè)的規(guī)則就自然會(huì)寫另一個(gè)的規(guī)則
0x04 Suricata數(shù)據(jù)結(jié)構(gòu)
0x05 ?Suricata工作流程
看著太亂看不懂?沒關(guān)系,看簡(jiǎn)單的圖
有的小伙伴可能有疑問了,異常流量還放行??
這是因?yàn)楹芏鄰S商和客戶都會(huì)擔(dān)心誤報(bào)的問題,所以只開啟了日志功能并沒開啟攔截功能,很多外網(wǎng)WAF也是只開啟了日志功能并不攔截,絕大多數(shù)客戶大部分情況下就算買了WAF和IPS、IDS等設(shè)備都只會(huì)開啟日志功能,并不攔截,具體看情況
設(shè)備會(huì)檢測(cè)內(nèi)網(wǎng)之間的流量,當(dāng)有流量經(jīng)過(guò)設(shè)備,設(shè)備會(huì)先加載內(nèi)部規(guī)則,然后對(duì)流量進(jìn)行匹配,如果沒有命中的則放行此流量。如果有命中的會(huì)記錄日志和報(bào)文,然后放行或者攔截流量。具體怎么操作看用戶設(shè)置
0x06 Suricata安裝
推薦kali安裝,方便
直接apt-get install suricata就安裝好了
之后就是安裝簽名(就是規(guī)則rules文件)就可以了,命令是suricata-update
注意這是官方更新的rule規(guī)則,更新的配置文件存放在/var/lib/suricata/rules中,文件為classification.config和suricata.rules,需要cp至/etc/suricata/rules中才能加載成功,不然會(huì)有如下錯(cuò)誤:
其他系統(tǒng)安裝參考 https://www.osgeo.cn/suricata/install.html
0x07?Suricata目錄
目錄:
/etc/suricata/存放suricata執(zhí)行和配置文件的目錄
/etc/suricata/rules規(guī)則文件存放目錄,自己之后寫的也要放在這里
/var/log/suricata/存放suricata日志的目錄
文件:
suricata.yamlsuricata的配置文件,重中之重,特別重要,位于/etc/suricata/下
suricata.rules官方規(guī)則文件,存放在/etc/suricata/rules中
fast.log警告日志文件,存放在/var/log/suricata/下,匹配的輸出都在這里
0x08 Suricata規(guī)則
suricata.rules?官方規(guī)則文件,存放在/etc/suricata/rules中
其中大部分規(guī)則都在suricata.rules文件中
要理解這些規(guī)則具體是什么意思也很簡(jiǎn)單,只需要記住每個(gè)字段表示的意思就行了
如:alert tcp any any -> any any (msg: "測(cè)試"; flow:established,to_client;? content:"|00 00 00 00|"; offset:10;depth:10; sid:1005; rev:1;)
alert tcp :alert表示記錄, tc 表示tcp協(xié)議?合在一起就是記錄tcp協(xié)議,alert udp就是記錄udp,?alert?http就是記錄http協(xié)議,
any any -> any any:第一個(gè)any表示ip,第二個(gè)any表示端口,箭頭表示到,這句話意思為所有ip的所有端口到所有ip的所有端口的流量,?any any -> any 445就表示所有ip的所有端口到所有ip的445端口的流量
(msg: "測(cè)試";?:表示這個(gè)規(guī)則匹配的漏洞的命中,一般是漏洞的名字
flow:established,to_client;?:表示到客戶端建立連接的流量to_client表示到客戶端,to_server則表示到服務(wù)器的流量
content:"|00 00 00 00|"; :要匹配內(nèi)容就是wireshark中的那些十六進(jìn)制
offset:9;depth:10; :一般用來(lái)精確匹配內(nèi)容,offset:9;depth:10;表示偏移9個(gè)字符串再進(jìn)行匹配,向后匹配十位,這里匹配到是第10-20個(gè)字符串
sid:1005; :規(guī)則編號(hào),沒啥太大意義
rev:1;)?:等級(jí),沒啥太大意義
隨著目前漏洞的樣式越來(lái)越多,有些廠商開始使用雙向規(guī)則進(jìn)行匹配。單向規(guī)則就是只匹配請(qǐng)求或者返回,雙向規(guī)則則是即匹配請(qǐng)求也匹配返回,一條數(shù)據(jù)包同時(shí)命中才告警或者攔截
所有具體的字段參考Suricata用戶手冊(cè)中文版https://readthedocs.org/projects/suricatacn/downloads/pdf/latest/
0x09 Suricata使用
一些研發(fā)人員會(huì)使用Suricata測(cè)試寫的規(guī)則是否準(zhǔn)確,一般使用
suricata -c /etc/suricata/suricata.yaml -r test.pcap -k none
-c /etc/suricata/suricata.yaml?表示要加載的配置文件
建議將原加載的規(guī)則注釋掉,然后自己新建一個(gè)規(guī)則集并且加載,
-r?test.pcap?表示要測(cè)試的pacp文件,其他格式結(jié)尾的流量包可能會(huì)出錯(cuò)
-k none表示 禁用強(qiáng)制校驗(yàn)和檢查,沒啥太大用,
如果測(cè)試流量包命中了規(guī)則會(huì)在當(dāng)前文件夾下生成一個(gè)fast.log文件。里面記錄了命中的規(guī)則編號(hào)
0x10 參考鏈接
https://www.cnitpm.com/pm1/73453.html
https://zhuanlan.zhihu.com/p/453068646
https://blog.csdn.net/gengzhikui1992/article/details/103031874
https://readthedocs.org/projects/suricatacn/downloads/pdf/latest/
https://www.osgeo.cn/suricata/install.html
編輯:黃飛
?
評(píng)論
查看更多