1.7 基本输出
Snort处理完所有数据后会输出一些有用的统计信息。这些信息中大多数无需解释。有一些是概况信息,并没有包括所有输出数据,仅仅是一些基本输出数据。
1.7.1 时间统计
这里都包括总的时间,数据包处理速率等时间统计信息。仅当这些信息非空是才会显示。 例如:
Snort processed 3716022 packets.
Snort ran for 0 days 0 hours 2 minutes 55 seconds
Pkts/min: 1858011
Pkts/sec: 21234
1.7.2 数据I/O统计 这一部分会统计所有通DAQ获取或发出去的数据包。查看这些数据包时,如果你没有使用了--pcap-reset设置统计每一个pcap文件的数据包,看到的将是所有pcap文件的数据包的总和。
- Outstanding 表示当前缓存中还有多少待处理的数据包。
- Filtered DAQ中有多少数据包被过滤掉了
- Injected 在旁路或串联模式下,Snort发出的有效响应包
例如:
Packet I/O Totals:
Received: 74460
Analyzed: 74453 ( 99.991%)
Dropped: 0 ( 0.000%)
Filtered: 0 ( 0.000%)
Outstanding: 7 ( 0.009%)
Injected: 0
1.7.3 协议统计 所有流量的系统统计信息,在程序退出时会打印出来。这些流量包括Snort开启frag3和stream5等预处理插件产生的伪数据包。因此这里统计出来的数据包可能会大于数据I/O统计的数据。
- Disc 统计Snort由于协议规则而没有解析的数据包
- Other 统计由于其他封装而造成的Snort无法统计的数据包
- S5G 1/2 统计由于会话时间或会话充值而造成的基于stream5的客户端和服务端的数据包
例如:
Breakdown by protocol (includes rebuilt packets):
Eth: 3722347 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 1782394 ( 47.884%)
Frag: 3839 ( 0.103%)
ICMP: 38860 ( 1.044%)
UDP: 137162 ( 3.685%)
TCP: 1619621 ( 43.511%)
IP6: 1781159 ( 47.850%)
IP6 Ext: 1787327 ( 48.016%)
IP6 Opts: 6168 ( 0.166%)
Frag6: 3839 ( 0.103%)
ICMP6: 1650 ( 0.044%)
UDP6: 140446 ( 3.773%)
TCP6: 1619633 ( 43.511%)
Teredo: 18 ( 0.000%)
ICMP-IP: 0 ( 0.000%)
EAPOL: 0 ( 0.000%)
IP4/IP4: 0 ( 0.000%)
IP4/IP6: 0 ( 0.000%)
IP6/IP4: 0 ( 0.000%)
IP6/IP6: 0 ( 0.000%)
GRE: 202 ( 0.005%)
GRE Eth: 0 ( 0.000%)
GRE VLAN: 0 ( 0.000%)
GRE IP4: 0 ( 0.000%)
GRE IP6: 0 ( 0.000%)
GRE IP6 Ext: 0 ( 0.000%)
GRE PPTP: 202 ( 0.005%)
GRE ARP: 0 ( 0.000%)
GRE IPX: 0 ( 0.000%)
GRE Loop: 0 ( 0.000%)
MPLS: 0 ( 0.000%)
ARP: 104840 ( 2.817%)
IPX: 60 ( 0.002%)
Eth Loop: 0 ( 0.000%)
Eth Disc: 0 ( 0.000%)
IP4 Disc: 0 ( 0.000%)
IP6 Disc: 0 ( 0.000%)
TCP Disc: 0 ( 0.000%)
UDP Disc: 1385 ( 0.037%)
ICMP Disc: 0 ( 0.000%)
All Discard: 1385 ( 0.037%)
Other: 57876 ( 1.555%)
Bad Chk Sum: 32135 ( 0.863%)
Bad TTL: 0 ( 0.000%)
S5 G 1: 1494 ( 0.040%)
S5 G 2: 1654 ( 0.044%)
Total: 3722347
1.7.4 Snort内存统计 通过系统mallinfo(3),你可以看到更多统计信息,更详细的信息可以参考man手册。
Memory usage summary:
Total non-mmapped bytes (arena): 415481856
Bytes in mapped regions (hblkhd): 409612288
Total allocated space (uordblks): 92130384
Total free space (fordblks): 323351472
Topmost releasable block (keepcost): 3200
1.7.5 Actions,Limits和Verdicts
Actions和Versicts记录了Snort在对数据包分析以后,采取的行动。这些信息只在IDS模式下才能显示。
- Alerts 包括通过规则检查过程中的alert、activate和block,这里的block包括block、drop和reject。
Limits的出现时源于实际环境中的运行时间和物理内存。这些数据显示了潜在的行为(没有发生):
- Match 因max_queue_evens设置的最大配置规则数(默认为5),导致没有匹配的数据。
- Queue 由event_queue;max_queue(默认8)设置的最大事件列表,导致无法存放的事件数。
- Log 由event_queue设置的最大列表log缓存(默认是3)数限制而丢弃的报警事件数。
- Event 由event_filter限制而丢弃的报警事件数。
- Alert 由于之前已经触发过而没有再报警的事件。
Verdicts类信息是指Snort应用在每个数据包上的动作。
- Allow 指Snort 分析过,并未做任何处理的数据包
- Block Snort不允许通过的数据包。包括阻断和丢弃。
- Replace 指Snort修改过的数据包。比如由于替换规则或一些普通规则导致的Snort行为。这种情况只发生在串联模式。
- Whitelist Snort允许通过的一个流的所有数据包,而这些数据包无需在做任何分析和处理了。和Blacklist一样,这些数据包往往是一个流的后续包。
- Blacklist Snort阻止的所有流的数据包。例如:如果某一TCP阻断规则被激活。如果DAQ在硬件层支持的话,可以阻止所有该TCP流的后续包传递到Snort中。否则,Snort会处理所有数据包,这个统计值就会变的更大。
- Ignore 指当前Snort进程中,不处理该流中的任何数据包。它和Blacklist一样,可以通过DAQ或Snort来处理后续包
- Int Blklst 由GTP、Teredo、6in4或4in6加密的被阻止的数据包。如果通过tunnel_verdicts设置了相应的协议后,这些数据包可以获取Blacklist列表的评估信息。另外:当这些字段为空时,是不会显示的。这个数据也是当流中第一个包匹配后就会递增,之后流中所有的数据都会被统计到Block中。
- Int Whtlst 统计由GTP、Teredo、6in4或4in6加密同时被放行的数据包。如果通过tunnel_verdicts设置了相应的协议后,这些数据包可以获取Blacklist列表的评估信息。另外:当这些字段为空时,是不会显示的。
例子:
Action Stats:
Alerts: 0 ( 0.000%)
Logged: 0 ( 0.000%)
Passed: 0 ( 0.000%)
Limits:
Match: 0
Queue: 0
Log: 0
Event: 0
Alert: 0
Verdicts:
Allow: 3716022 (100.000%)
Block: 0 ( 0.000%)
Replace: 0 ( 0.000%)
Whitelist: 0 ( 0.000%)
Blacklist: 0 ( 0.000%)
Ignore: 0 ( 0.000%)