snort入侵检测规则编写与验证
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入侵检测规则的编写方法及验证方法。从而了解,基于误用的入侵检测系统的工作方式。获取攻击特征,编写检测规则,验证规则,然后才能导入生产系统,进行线上工作。