snort规则--flow分析

1. flow:

这个选项要和TCP流重建联合使用。它允许规则只应用到流量流的某个方向上。这将允许规则只应用到客户端或者服务器端。这将能把内网客户端流览web页面的数据包和内网服务器所发送的数据包区分开来。这个确定的关键字能够代替标志:A+ 这个标志在显示已建立的TCP连接时都将被使用。也就是说在从这个流是单独的一个方向上发送就ok,还是有双向的连接使用(比如syn请求,是双向的)。


选项:
to_client 触发服务器上从A到B的响应。
to_server 触发客户端上从A到B的响应
from_client 触发客户端上从A到B的请求。
from_server触发服务器上从A到B的请求
established 只触发已经建立的TCP连接。
stateless 不管流处理器的状态都触发(这对处理那些能引起机器崩溃的数据包很有用。
no_stream 不在重建的流数据包上触发(对dsize 和 stream4 有用。
only_stream 只在重建的流数据包上触发。

格式:
flow:[to_client|to_server|from_client|from_server|established|stateless|no_stream|only_stream]}


2.使用flowint对特定的保留计数----用于dos阀值设定

alert tcp any any -> any any (msg:"Counting Failed Logins"; content:"incorrect"; \
 flowint: username, notset; flowint:username, =, 1; noalert; sid:1;)
alert tcp any any -> any any (msg:"More than two Failed Logins!"; \
 content:"incorrect"; flowint: username, isset; flowint:username, +, 1; \
 flowint:username, >, 2; sid:2;)

注意:1.sid值要设置,不然报错,重复规则,因为没有sid的规则重复了。
      2.变量第一次是初始化是notset,第二次计数是isset
      3.如果在一条规则中使用,判断难以生效。

3.suricata检查tcp的标志位:


TCP的控制(标识字段),一共有6位,从左向右依次是:
1:URG:(置一有效)紧急指针,表明发送端向另一端使用紧急方式发送数据。
2:ACK:(置一有效)表示确认序号。
3:PSH:(置一有效)表示接收方应该尽快将这个报文交给应用层。
4:RST:(置一有效)表示重建连接。
5:SYN:(置一有效)用来发起一个连接。
6:FIN:(置一有效)表示发送方的表示完成任务,接收方的表示同意断开连接。 

flags                  参考:http://blog.sina.com.cn/s/blog_4b34780c0100072c.html

这个规则检查tcp标志。在snort中有9个标志变量:

F - FIN (LSB in TCP Flags byte)
S - SYN
R - RST
P - PSH
A - ACK
U - URG
2 - Reserved bit 2
1 - Reserved bit 1 (MSB in TCP Flags byte)
0 - No TCP Flags Set
在这些标志之间还可以使用逻辑操作符:
+ ALL flag, 匹配所有的指定的标志外加一个标志。
* ANY flag, 匹配指定的任何一个标志。
! NOT flag, 如果指定的标志不在这个数据包中就匹配成功。
保留位可以用来检测不正常行为,例如IP栈指纹攻击或者其他可疑的行为。

格式:
flags: [,mask value];

例子:
alert any any -> 192.168.1.0/24 any (flags: SF,12; msg:"Possible SYN FIN scan";)


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值