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%)