snort学习

一条简单的规则

alert tcp 202.110.8.1 any -> 122.111.90.8 80 (msg:”Web Access”; sid:1)

  • alert:表示如果此条规则被触发则告警
  • tcp:协议类型
  • ip地址:源/目的IP地址
  • any/80:端口号
  • ->:方向操作符,还有<>双向。
  • msg:在告警和包日志中打印消息
  • sid:Snort规则id …

SNORT体系结构

  • 数据包嗅探模块,主要负责监听网络数据包,并根据TCP/IP协议解析数据包。
  • 预处理模块,1.包重组预处理器,它的作用是为了防止攻击信息被拆分到多个包中而 逃避了Snort的检测;2.协议编码预处理器,它的功能是把数据包协议解码成一个统一的格式,再传送给检测模块;3.协议异常检测预处器。
  • 检测引擎模块,当预处理器把数据包送过来后,检测引擎将这些数据包与三维链表形式的检测规则进行匹配,一旦发现数据包中的内容和某条规则相匹配,就通知报警模块。
  • 报警/日志模块,检测引擎将数据包传送给报警模块后,报警模块会根据规则定义(alert,log…)对其进行不同的处理(数据库,日志)。

下面分别详细介绍这四大模块。

解码模块与预处理模块

解码模块主要是将从监控网络当中抓取的原始网络数据包,按照各个网络协议栈从下至上进行解码,并将解码数据保存到各个对应的数据结构当中,最后交由预处理模块进行处理。

解码后的数据包经过预处理之后才能被主探测引擎进行规则匹配。
Snort主要包含以下三类预处理器(举例说明):

1)包重组预处理器:

  • frag3:IP分片重组和攻击监测。
  • stream:维持TCP流状态,进行会话重组。

2)协议规范化预处理器:

  • http_inspect:规范HTTP流。
  • rpcDecode:规范RPC调用。

3)异常检测预处理器:

  • ARP spoof:检测ARP欺骗。
  • sfPortscan:检测端口扫描。

检测引擎模块

1、规则头

(1)动作:在snort中有五种动作:alert、log、pass、activate和dynamic。

  • Alert: 生成一个告警,然后记录(log)这个包。
  • Log: 记录这个包。
  • Pass: 丢弃这个包。
  • Activate: alert并且激活另一条dynamic规则。
  • Dynamic:保持空闲直到被一条activate规则激活,被激活后就作为一条log规则执行。

(2)协议:协议:Snort当前可分析的协议有四种:TCP,UDP,ICMP和IP。将来可能会更多,例如:ARP、IGRP、GRE、OSPF、RIP、IPX等。
(3)ip地址:

  • 由直接的ip地址或一个CIDR块组成的。也可以指定ip地址列表,一个ip地址列表由逗号分割的ip地址和CIDR块组成,并且要放在方括号内 [,]。
  • 否定操作符用!表示。
  • 关键字“any”可以被用来定义任何地址。
    (4)端口号:
  • 端口号可以用几种方法表示,包括any端口、静态端口定义、范围、以及通过否定操作符。
  • 静态端口定义表示一个单个端口号,例如111表示portmapper,23表示telnet,80表示http等等。
  • 端口范围用范围操作符“:”表示.比如,80: , :1024 ,80:1024

2、通用规则

(1)sid:用来识别snort规则的唯一性

  • <100 保留做将来使用
  • 100-1000,000 包含在snort发布包中
  • 大于1000,000 作为本地规则使用

(2)msg:标示一个消息
(3)gid:generate id,作用是为了说明这条规则是snort的哪部分触发的。比如是由解码器、预处理器还是Snort自有规则等。

3、负载检测规则

(1)content:规定在数据包的负载中搜索指定的样式。它的选项数据可以包含混合的文本和二进制数据。二进制数据一般包含在管道符号中“|”,表示为字节码(bytecode),也就是将二进制数据的十六进制形式。

alert tcp any any -> any 139 (content:"|5c 00|P|00|I|00|P|00|E|00 5c|"?
alert tcp any any -> any 80 (content:!“GET”?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值