文档介绍:入侵检测
王殿升
E-mail: ******@.
2017/11/10
高等院校信息安全专业系列教材
罗守山编著
第九章Snort检测原理与应用
1、概述
2、Snort规则
3、Snort配置
4、Snort检测
5、snort安装
1、概述
Snort是一个基于Libpcap的数据包嗅探器并可以作为一个轻量级的网络入侵检测系统(NIDS。所谓的轻量级是指在检测时尽可能低地影响网络的正常操作,一个优秀的轻量级的NIDS应该具备跨系统平台操作,对系统影响最小等特征并且管理员能够在短时间内通过修改配置进行实时的安全响应,更为重要的是能够成为整体安全结构的重要成员。Snort作为其典型范例,首先可以运行在多种操作系统平台,例如UNIX系列和Win2K(需要Libpcap for Win32的支持),与很多商业产品相比,它对操作系统的依赖性比较低:其次用户可以根据自己的需要在短时间内调整检测策略。就检测攻击的种类来说,据最新数据表明Snort共有2I类共1271条检测规则,其中包括对缓冲区溢出,端口扫描和CGI攻击等等。Snort集成了多种告警机制来提供实时告警功能,包括:syslog、用户指定文件、LTNIXSocket、通过SMBClient使用WinPopup对Window客户端告警。Snort的现实意义是作为开源软件填补了只有商业入侵检测系统的空白,可以帮助中小网络的系统管理员有效地监视网络流量和检测入侵行为。
2、Snort规则(1)
规则描述语言
规则是特征模式匹配的依据,描述语言易于扩展,功能也比较强大
每条规则必须在一行中,其规则解释器无法对跨行的规则进行解析
逻辑上由规则头和规则选项组成。规则头包括:规则行为、协议、源/目的IP地址、子网掩码、方向以及源/目的端口。规则选项包含报警信息和异常包的信息(特征码),使用这些特征码来决定是否采取规则规定的行动。
2、Snort规则(2)
规则描述语言举例
alert tcp any any -> 111(content:"|00 01 86 a5|";msg:"mountd access";)
从开头到最左边的括号属于规则头部分,括号内的部分属于规则选项。规则选项中冒号前面的词叫做选项关键词。注意对于每条规则来说规则选项不是必需的,它们是为了更加详细地定义应该收集或者报警的数据包。只有匹配所有选项的数据包,Snort才会执行其规则行为。如果许多选项组合在一起,它们之间是逻辑与的关系。让我们从规则头开始。
2、Snort规则(3)
规则头:哪些数据包、数据包的来源、什么类型的数据包,以及对匹配的数据包如何处理。
规则行为(rule action):
Alert:使用选定的报警方法产生报警信息,并且记录数据包;
Log:记录数据包;
Pass:忽略数据包;
Activate:报警,接着打开其它的dynamic规则;
Dynamic:保持空闲状态,直到被activate规则激活,作为一条log规则
2、Snort规则(4)
协议(protocol):
每条规则的第二项就是协议项。当前,snort能够分析的协议是:TCP、UDP和ICMP。将来,可能提供对ARP、ICRP、GRE、OSPF、RIP、IPX等协议的支持。
IP地址:
规则头下面的部分就是IP地址和端口信息。关键词any可以用来定义任意的IP地址。snort不支持对主机名的解析,所以地址只能使用数字/CIDR的形式,CIDR(无级别域内路由)指明应用于IP地址的掩码。/24表示一个C类网络;/16表示一个B类网络;而/32表示一台特定的主机地址。在规则中,可以使用否定操作符(negation operator)对IP地址进行操作。它告诉snort除了列出的IP地址外,匹配所有的IP地址。否定操作符使用!表示。例如,使用否定操作符可以很轻松地对上面的规则进行改写,使其对从外部网络向内的数据报警。
2、Snort规则(5)
端口号:
有几种方式来指定端口号,包括:any、静态端口号(static port)定义、端口范围以及使用非操作定义。any表示任意合法的端口号。静态端口号表示单个的端口号,例如:111(portmapper)、23()、80(http)等。使用范围操作符:可以指定端口号范围。有几种方式来使用范围操作符:达到不同的目的,例如:log udp any any -> 1:1024 记录来自任何端口,其目的端口号在1到1024之间的UDP数据包
2、Snort规则(6)
方向操作符(direction operator):
方向操作符->表示数据包的流向。它左边是数据包的源地址和源端口,