经过前面的安装和配置之后,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规则编写相关推荐

  1. 网络入侵检测--Snort软件规则编写

    Snort规则编写 今天主要来讲一下Snort中的规则编写规则,还有些绕口,就是编写他们的rules的方法,可以帮助我们理解他们提供的rules和定义我们自己的rules. 首先我们来看一条规则 al ...

  2. Web流量检测与绕过(基于Snort规则)

    Web流量检测与绕过 Snort Snort概述 Snort规则学习 Snort规则编写 流量特征处理 消除流量特征 检测特征是否消除 实战 Snort 我在上一篇博客已经讲述,如何进行windows ...

  3. 实验 snort安装配置与规则编写

    实验 snort安装配置与NIDS规则编写 1 实验目的 在linux或windows任意一个平台下完成snort的安装,使snort工作在NIDS模式下,并编写符合相关情景要求的snort规则. 2 ...

  4. 开源入侵检测系统—Snort的配置与检测规则编写

    IDS(入侵检测系统)模式配置 1.创建snort用户和组,其中snort为非特权用户 groupadd snort useradd snort -r -s /sbin/nologin -c SNOR ...

  5. snort规则检测引擎初探

    0x01缘由        目前的产品开发过程中,涉及到了对应用层协议类型的检测.考虑到要构建高效的规则匹配引擎,于是再次研究了snort的规则引擎.      主要目的还是开阔下设计思路和借鉴一些方 ...

  6. Snort规则入门学习

    Snort规则学习 Snort 是一个开源入侵防御系统(IPS).Snort IPS 使用一系列规则来帮助定义恶意网络活动,并利用这些规则来查找与之匹配的数据包,并为用户生成警报. 下面来学习一下sn ...

  7. DVWA全级别-双向规则编写

    下面的规则可以通过DVWA高中低三种难度 爆破攻击 攻击方式 规则编写 SQL注入攻击 攻击方式 规则编写 XSS反射型攻击 攻击方式 规则编写 XSS存储型攻击 攻击方式 规则编写 文件上传攻击 攻 ...

  8. 30 snort 规则

    项关键字. msg - 在报警和包日志中打印一个消息. logto - 把包记录到用户指定的文件中而不是记录到标准输出. ttl - 检查ip头的ttl的值. tos 检查IP头中TOS字段的值. i ...

  9. CVE-2018-1273漏洞复现日志+IDS规则编写

    CVE-2018-1273(Spring Data Commons) 远程命令执行漏洞 漏洞描述: Spring Data Commons(1.13至1.13.10之前的版本,2.0至2.0.5的版本 ...

最新文章

  1. 2018 东北地区大学生程序设计竞赛(ABEHIK)
  2. 20145222黄亚奇《Java程序设计》第1周学习总结
  3. MySQL带比较运算符的子查询
  4. 手机linux内核下载,Linux Kernel
  5. java requestbody map_java-如何将Map转换为RequestBody?
  6. React之解决类中的this
  7. Linux编程(6)_makefile
  8. 个人手写笔记,灵感收集.
  9. lambda表达式python_你为什么要用lambda表达式?理解它你就知道了
  10. 十法则打造安全无线局域网
  11. 我的Oracle 9i学习日志(11)--重做日志文件及练习
  12. 高中信息技术python及答案_(完整)高中信息技术《Python语言》模块试卷
  13. Java工具集-农历日期工具类
  14. java ico图片转png_Java 图片处理: ico 格式转 PNG/JPG 等格式
  15. Doctype作用?标准模式与兼容模式各有什么区别?
  16. 7-1 计算存款利息 (10分) 本题目要求计算存款利息
  17. 量子计算到底是什么?
  18. 取消Eclipse中的语法分析警告,去掉虫子 ,去掉红点报错方法
  19. video视频快进拖动限制
  20. C 语言隐式类型转换

热门文章

  1. 如何解决H5游戏的内存泄露
  2. 2022最新SLAM面试题汇总(持续更新中)
  3. HTML5期末大作业:文化网站设计——古典中国风工艺美术网页设计(9页) HTML+CSS+JavaScript
  4. asp.net Table 属性
  5. 人脸对齐:DCNN的人脸关键点检测
  6. 2022-10-28
  7. 中午吃什么?html(拯救选择困难症)
  8. 基于图神经网络的多智能体深度强化学习
  9. 家庭全光纤万兆网络搭建保姆级攻略
  10. 笔记本电脑怎么打不开计算机,笔记本电脑打不开了 按什么也没用 怎么处理