入侵防御之snort规则编写
经过前面的安装和配置之后,snort现以可以以IDS模式运行并执行入侵检测工作。但是检测的成效大多依赖于下载的规则库,而细心的我发现,下载的规则库虽然有200+M,但是仍有相当多的空文档。
除此之外还有DOS,DDOS,backdoor,dns,ftp,icmp等文件为空,不禁让我怀疑其规则库的可信赖性,当然其作为一个开源免费的模型,我们又能更多地要求他什么呢。所以指定符合本机机情的检测规则是当务之急。
规则编写
虽然理论上来说更改任意一个文件夹内的规则都可以达到目的,但是为了便于管理和查找,自定的规则还是写入/rules文件内的local.rules文件内,直接双击打开即可编写。
本次规则如下:
alert icmp any any -> $HOME_NET any (msg:"ICMP incmoing!!";classtype:not-suspicious;sid:1000001;rev:1;)
任意IP来源,任意端口的ICMP报文发送到本机的任意端口时,发出警报ICMP incoming!!
测试
sudo snort -de -l logs/ -c etc/snort.conf
以IDS模式打开snort
任意主机ping装有snort的主机
snort不显示任何内容,ping结束后退出即可
进入snort安装目录下的logs文件夹,可以看到生成了alert文件,内容记录如下:
编写规范
规则头
规则头包含一些信息,这些信息包括:哪些数据包、数据包的来源、什么类型的数据包,以及对匹配的数据包如何处理。每条规则的第一项就是规则行为(rule action)。规则行为告诉snort当发现匹配的数据包时,应该如何处理。在snort中,有五种默认的处理方式:alert、log、pass、activate和dynamic。
1).alert:使用选定的报警方法产生报警信息,并且记录数据包
2).log:记录数据包
3).pass:忽略数据包
4).activate:报警,接着打开其它的dynamic规则
5).dynamic:保持空闲状态,直到被activete规则激活,作为一条log规则
你也可以定义自己的规则类型,把它们和一个或者几个输出插件联系在一起。然后你就可以在snort规则中使用这些规则类型了。
详见参考连接规则编写规范
协议
每条规则的第二项就是协议项。当前,snort能够分析的协议是:TCP、UDP和ICMP。将来,可能提供对ARP、ICRP、GRE、OSPF、RIP、IPX等协议的支持。
IP地址
规则头下面的部分就是IP地址和端口信息。关键词any可以用来定义任意的IP地址。snort不支持对主机名的解析。所以地址只能使用数字/CIDR的形式。/24表示一个C类网络;/16表示一个B类网络;而/32表示一台特定的主机地址。例如:192.168.1.0/24表示从192.168.1.1到192.168.1.255的地址。
在规则中,可以使用使用否定操作符(negation operator)对IP地址进行操作。它告诉snort除了列出的IP地址外,匹配所有的IP地址。否定操作符使用!表示。例如,使用否定操作符可以很轻松地对表1的规则进行改写,使其对从外部网络向内的数据报警。
alert tcp !192.168.1.0/24 any -> 192.168.1.0/24 111(content:"|00 01 86 a5|";msg:“external mountd access”
端口号
在规则中,可以有几种方式来指定端口号,包括:any、静态端口号(static port)定义、端口范围,以及使用非操作定义。any表示任意合法的端口号;静态端口号表示单个的端口号,例如:111(portmapper)、23(telnet)、80(http)等。使用范围操作符:可以指定端口号范围。有几种方式来使用范围操作符:达到不同的目的,例如:
log udp any any -> 192.168.1.0/24 1:1024
记录来自任何端口,其目的端口号在1到1024之间的UDP数据包
总结
本文介绍了snort规则编写的方法,并进行了测试。
但目前该入侵检测系统只能针对已有规则下的攻击进行检测,且被攻击也只是在文档中记录,并不能及时有效地警示管理员,后续功能需要我们自行编写,比如将更新的警报发送到管理员邮箱等方法,而要想实现入侵防御的功能更是还需要主动防御或其他安全模块。
入侵防御之snort规则编写相关推荐
- 网络入侵检测--Snort软件规则编写
Snort规则编写 今天主要来讲一下Snort中的规则编写规则,还有些绕口,就是编写他们的rules的方法,可以帮助我们理解他们提供的rules和定义我们自己的rules. 首先我们来看一条规则 al ...
- Web流量检测与绕过(基于Snort规则)
Web流量检测与绕过 Snort Snort概述 Snort规则学习 Snort规则编写 流量特征处理 消除流量特征 检测特征是否消除 实战 Snort 我在上一篇博客已经讲述,如何进行windows ...
- 实验 snort安装配置与规则编写
实验 snort安装配置与NIDS规则编写 1 实验目的 在linux或windows任意一个平台下完成snort的安装,使snort工作在NIDS模式下,并编写符合相关情景要求的snort规则. 2 ...
- 开源入侵检测系统—Snort的配置与检测规则编写
IDS(入侵检测系统)模式配置 1.创建snort用户和组,其中snort为非特权用户 groupadd snort useradd snort -r -s /sbin/nologin -c SNOR ...
- snort规则检测引擎初探
0x01缘由 目前的产品开发过程中,涉及到了对应用层协议类型的检测.考虑到要构建高效的规则匹配引擎,于是再次研究了snort的规则引擎. 主要目的还是开阔下设计思路和借鉴一些方 ...
- Snort规则入门学习
Snort规则学习 Snort 是一个开源入侵防御系统(IPS).Snort IPS 使用一系列规则来帮助定义恶意网络活动,并利用这些规则来查找与之匹配的数据包,并为用户生成警报. 下面来学习一下sn ...
- DVWA全级别-双向规则编写
下面的规则可以通过DVWA高中低三种难度 爆破攻击 攻击方式 规则编写 SQL注入攻击 攻击方式 规则编写 XSS反射型攻击 攻击方式 规则编写 XSS存储型攻击 攻击方式 规则编写 文件上传攻击 攻 ...
- 30 snort 规则
项关键字. msg - 在报警和包日志中打印一个消息. logto - 把包记录到用户指定的文件中而不是记录到标准输出. ttl - 检查ip头的ttl的值. tos 检查IP头中TOS字段的值. i ...
- CVE-2018-1273漏洞复现日志+IDS规则编写
CVE-2018-1273(Spring Data Commons) 远程命令执行漏洞 漏洞描述: Spring Data Commons(1.13至1.13.10之前的版本,2.0至2.0.5的版本 ...
最新文章
- nacos config基本使用
- 不同版本GCC编译器之间的切换
- iOS - UITextField
- oracle查询中over(partition by ...order by ...)用法
- IntelliJ IDEA 如何从SVN导入项目 怎么部署 就是路劲和tomcat配置等等 步骤希望
- PyTorch 入坑四 梯度、链式法则、计算图与反向传播
- 解决vmware“二进制转换和长模式与此平台兼容.....”问题
- 【Prison Break】第二天(3.28)
- javaweb JAVA JSP计算机系试题库管理系统的设计与实现JSP题库管理系统 JSP试题管理系统
- 敏捷开发工具scrum
- 中继器制作联动下拉列表
- 自动化办公1-文件夹文件分类器
- 移动200/300M网速只有最高5M/s(3G太快了),提高网速的办法和具体处理方式
- 软件工程与计算II-19-软件测试
- 数控车床加工的工艺与普通车床的加工工艺
- 计算机网络两台主机互相通信过程概览
- 【天光学术】旅游管理论文:大连金石滩旅游餐饮文化资源开发对策研究
- phpmoadmin 远程代码执行 (CVE-2015-2208)
- 【react基础】7、react获取文本框的值
- 电话录音设备市场现状及未来发展趋势
热门文章
- 每天记录学习的新知识:利用高德地图绘制历史路线
- 如何让自己精力充沛 【转】
- 邮件协议POP3/IMAP/SMTP学习总结 SSL/TLS介绍 常用邮箱服务器设置
- android 修改手机系统,【教程贴丨09-29】手机系统APK自己来修改
- Java 访问PI 数据库:(1)安装必要软件
- python学习之socket模块网络通信的异常信息汇总
- Centos下修改hostname
- 单目结构光——Micro deep learning profilometry for 3D surface imaging 复现
- 2022-08-02 分析RK817 输出32k clock PMIC_32KOUT_WIFI给WiFi模块 clock 注册devm_clk_hw_register
- 瑞萨e2studio(22)----移植兆易创新SPI Nor Flash之GD25Q64Flash