- 论坛徽章:
- 0
|
Tag\r\n\r\n这个关键字允许规则记录不仅仅是触发这条规则的那个数据包。一旦一条规则被触发,来自这个主机的数据包将被贴上“标签”。被贴上标签的数据流将被记录用于随后的响应代码和提交攻击流量的分析。\r\n\r\n格式:\r\ntag: , , , [direction]\r\n\r\ntype\r\n\r\nsession 记录触发这条规则的会话的数据包\r\nhost 记录激活tag规则的主机的所有数据包(这里将使用[direction]修饰词\r\ncount Count 指定一个单位的数量。这个单位由给出。\r\nmetric\r\npackets 标记主机/会话的个数据包。\r\nseconds 标记主机/会话的秒。\r\n\r\n例子:\r\nalert tcp !$HOME_NET any -> $HOME_NET 143 (flags: A+; content: \"|e8 c0ff ffff|/bin/sh\"; tag: host, 300, packets, src; msg: \"IMAP Buffer overflow, tagging!\" \r\nalert tcp !$HOME_NET any -> $HOME_NET 23 (flags: S; tag: session, 10, seconds; msg: \"incoming telnet session\" \r\n\r\nIp_proto\r\nIp_proto关键字允许检测IP协议头。这些协议可以是由名字标识的,参考/etc/protocols文件。在规则中要谨慎使用ip_protocol关键字。\r\n\r\n格式:\r\nip_proto:[!] ;\r\n\r\n例子: br> alert ip !$HOME_NET any -> $HOME_NET any (msg: \"IGMP traffic detected\"; ip_proto: igmp \r\n\r\nSameIP\r\n\r\nSameip关键字允许规则检测源IP和目的IP是否相等。\r\n\r\n格式:\r\nsameip;\r\n\r\n例子:\r\nalert ip $HOME_NET any -> $HOME_NET any (msg: \"SRC IP == DST IP\"; sameip \r\n\r\nRegex\r\n这个模块现在还正在开发,所以在当前的产品规则集中还不能使用。如果使用的话,它将触发一个错误信息。\r\n\r\nFlow\r\n\r\n这个选项要和TCP流重建联合使用。它允许规则只应用到流量流的某个方向上。这将允许规则只应用到客户端或者服务器端。这将能把内网客户端流览web页面的数据包和内网服务器所发送的数据包区分开来。这个确定的关键字能够代替标志:A+ 这个标志在显示已建立的TCP连接时都将被使用。\r\n\r\n选项:\r\nto_client 触发服务器上从A到B的响应。\r\nto_server 触发客户端上从A到B的请求。\r\nfrom_client 触发客户端上从A到B的请求。\r\nfrom_server触发服务器上从A到B的响应。\r\nestablished 只触发已经建立的TCP连接。\r\nstateless 不管流处理器的状态都触发(这对处理那些能引起机器崩溃的数据包很有用。\r\nno_stream 不在重建的流数据包上触发(对dsize 和 stream4 有用。\r\nonly_stream 只在重建的流数据包上触发。\r\n\r\n格式:\r\nflow:[to_client|to_server|from_client|from_server|established|stateless|no_stream|only_stream]}\r\n\r\n例子:\r\nalert tcp !$HOME_NET any -> $HOME_NET 21 (flow: from_client; content: \"CWD incoming\"; nocase; msg: \"cd incoming detected\"; )\r\nalert tcp !$HOME_NET 0 -> $HOME_NET 0 (msg: \" ort 0 TCP traffic\"; flow: stateless \r\n\r\nFragoffset\r\n\r\n这个关键字允许把IP分段偏移值和一个十进制数相比较。为了抓到一个IP会话的第一个分段,你可以使用这个fragbits关键字并且和fragoffset:0 选项一起查看更多的分段选项。\r\n\r\n格式:\r\nfragoffset:[<|>]\r\n\r\n例子:\r\nalert ip any any -> any any (msg: \"First Fragment\"; fragbits: M; fragoffset: 0 \r\n\r\nRawbytes\r\n\r\nRawbytes关键字允许规则查看telnet 解码数据来处理不常见的数据。这将使得telnet 协议代码独立于预处理程序来检测。这是对前面的content 的一个修饰。\r\n\r\n格式:\r\nrawbytes;\r\n\r\n例子:\r\nalert tcp any any -> any any (msg: \"Telnet NOP\"; content: \"|FF F1|\"; rawbytes \r\n\r\ndistance\r\n\r\ndistance关键字是content关键字的一个修饰词,确信在使用content时模式匹配间至少有N个字节存在。它被设计成在规则选项中和其他选项联合使用。\r\n\r\n格式:\r\ndistance: ;\r\n\r\n例子:\r\nalert tcp any any -> any any (content: \"2 Patterns\"; content: \"ABCDE\"; content: \"EFGH\"; distance: 1 \r\n\r\nWithin\r\n\r\nWinthin关键字是content关键字的一个修饰词,确保在使用content时模式匹配间至多有N个字节存在。它被设计成在规则选项中和distance选项联合使用。\r\n\r\n格式:\r\nwithin: ;\r\n\r\n例子:\r\nalert tcp any any -> any any (content: \"2 Patterns\"; content: \"ABCDE\"; content: \"EFGH\"; within: 10 \r\n\r\nByte_Test\r\n\r\n测试一个字节的域为特定的值。能够测试二进制值或者把字节字符串转换成二进制后再测试。\r\n\r\n格式:byte_test: , , , [[relative],[big],[little],[string],[hex],[dec],[oct]]\r\nbytes_to_convert 从数据包取得的字节数。\r\noperator 对检测执行的操作 (<,>,=,!)。\r\nvalue 和转换后的值相测试的值。\r\noffset 开始处理的字节在负载中的偏移量。\r\nrelative 使用一个相对于上次模式匹配的相对的偏移量。\r\nbig 以网络字节顺序处理数据(缺省)。\r\nlittle 以主机字节顺序处理数据。\r\nstring 数据包中的数据以字符串形式存储。\r\nhex 把字符串数据转换成十六进制数形式。\r\ndec 把字符串数据转换成十进制数形式。\r\noct 把字符串数据转换成八进制数形式。\r\n\r\n例子:\r\nalert udp $EXTERNAL_NET any -> $HOME_NET any (msg:\"AMD procedure 7 plog overflow \"; content: \"|00 04 93 F3|\"; content: \"|00 00 00 07|\"; distance: 4; within: 4; byte_test: 4,>, 1000, 20, relative \r\n\r\nalert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:\"AMD procedure 7 plog overflow \"; content: \"|00 04 93 F3|\"; content: \"|00 00 00 07|\"; distance: 4; within: 4; byte_test: 4, >,1000, 20, relative;)\r\n\r\nByte_Jump\r\n\r\nByte_jump 选项用来取得一定数量的字节,并把它们转换成数字形式,跳过一些字节以进一步进行模式匹配。这就允许相对模式匹配在网络数据中进行数字值匹配。\r\n\r\n格式:\r\nbyte_jump: , [[relative],[big],[little],[string],[hex],[dec],[oct],[align]]\r\n\r\nbytes_to_convert 从数据包中选出的字节数。\r\noffset 开始处理的字节在负载中的偏移量。\r\nrelative 使用一个相对于上次模式匹配的相对的偏移量。\r\nbig 以网络字节顺序处理数据(缺省)。\r\nlittle 以主机字节顺序处理数据。\r\nstring 数据包中的数据以字符串形式存储。\r\nhex 把字符串数据转换成十六进制数形式。\r\ndec 把字符串数据转换成十进制数形式。\r\noct 把字符串数据转换成八进制数形式。\r\nalign 以32位为边界对转换的字节数对齐,即转换的字节数为4的倍数。\r\n\r\n例子:\r\nalert udp any any -> any 32770:34000 (content: \"|00 01 86 B8|\"; content: \"|00 00 00 01|\"; distance: 4; within: 4; byte_jump: 4, 12, relative, align; byte_test: 4, >, 900, 20, relative; msg: \"statd format string buffer overflow\";) |
|