Snort入侵檢測規則編寫與驗證
【實驗目的】
通過本實驗掌握snort入侵檢測系統的搭建以及相關配置。
【實驗環境】
Snort服務器登錄信息:
用戶名: college 密碼: 360College
【實驗原理】
搭建好Snort環境后,編寫規則對某種特征的數據包進行檢測,然后利用發包器,發送具有該特征的數據包,檢驗規則的有效性。
實驗步驟
預置環境說明:
OS為CentOS7。snort入侵檢測環境已經完成構建。
預置環境
進入WEB服務器,啟動PHPstudy,並啟動服務。
一、制定snort規則文件
根據網絡拓撲,設置好變量$HOME_NET的網段(/etc/snort/snort.conf文件)。
在Snort規則中/etc/snort/snort.conf文件的
#7) Customize your rule set
部分下面進行配置(新增加一行)。
include $RULE_PATH/my.rules
my.rules規則文件可根據需要進行修改名稱。
二、編寫snort入侵檢測規則
查看$RULE_PATH下,沒有my.rules
文件,所以使用touch
命令,新建一個文件。
編輯/etc/snort/rules/my.rules,在其中添加自行編寫的入侵檢測規則。
范例規則:
alert tcp any any -> $HOME_NET 8082 (msg:"SNORT:visit destport tcp 8082"; sid:201900001; rev:1;)
此規則,檢測外網對內網某主機tcp8082端口的訪問,並進行告警。沒有具體的意義。
alert tcp any any -> $HOME_NET any (fragbits:R+; msg:"SNORT:Reserverd IP bit set!";sid:201900002; rev:1;)
此規則,檢測外網對內網某主機的訪問,並對IP報文中的分片標志R位為1的報文(正常情況下R標志默認為0),進行告警。這是一種異常報文。
alert icmp any any -> $HOME_NET any (msg:"SNORT:External host ping inner host!";sid:201900003; rev:1;)
此規則,檢測外網對內網某主機的ping操作,並進行告警。這是一種正常報文。
alert smb any any -> $HOME_NET any (msg:“ET EXPLOIT Possible ETERNALBLUE MS17-010”; flow:to_server,established; content:”|00 00 00 31 ff|SMB|2b 00 00 00 00 18 07 c0|”; depth:16; fast_pattern; content:”|4a 6c 4a 6d 49 68 43 6c 42 73 72 00|”; distance:0; flowbits:set,ETPRO.ETERNALBLUE; flowbits:noalert; classtype:trojan-activity; sid:2024220; rev:1;)
此規則,檢測任意主機對內網某主機的永恆之藍攻擊操作,並進行告警。這是一種攻擊性報文。
自行分析各字段的意義。
(驗證:可采用Metasploit進行針對MS17-010漏洞的攻擊,或利用WannaCry宿主機,對該規則進行驗證)。
還可以根據規則格式,針對其他特征進行檢測。
也可將snort規則,選擇一些進行驗證。
三、運行SNORT
1、啟動Mysql服務器:
#service mysql start
2、啟動Snort:
#snort -c /etc/snort/snort.conf #barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/snort/barnyard2.waldo -g snort -u snort
運行后,應該能看到sensor_name,user,database_name等配置參數。
並且,barnyard2等待新到來的數據。
四、驗證與查看結果
1、進行驗證操作
從測試機,利用瀏覽器訪問服務器的8082端口;
對web進行ping測試;
利用metasploit對操作機進行永恆之藍ms17-010攻擊。
2、查看記錄
正常情況下,snort會進行告警並記錄日志。
snort日志中會記錄告警日志,同時可在mysql數據庫中看到對入侵行為的記錄。
實驗小結
通過本次實驗,能夠了解snort入侵檢測規則的編寫方法及驗證方法。從而了解,基於誤用的入侵檢測系統的工作方式。獲取攻擊特征,編寫檢測規則,驗證規則,然后才能導入生產系統,進行線上工作。