9.7. 忽略流量¶
在某些情况下,有理由忽略某些流量。某些主机可能是受信任的,或者应该忽略备份流。
9.7.1. 捕获过滤器(BPF)¶
通过BPFs,可以告诉pcap、af包、netmap和pféu-ring的捕获方法发送什么到Suricata,什么不发送。例如,一个简单的过滤器“tcp”将只捕获tcp包。
如果需要忽略某些主机和/或网络,请使用“not(主机IP1或IP2或IP3或NET/24)”之类的内容。
例子::
not host 1.2.3.4
捕获筛选器是在命令行上所有其他选项之后指定的::
suricata -i eth0 -v not host 1.2.3.4
suricata -i eno1 -c suricata.yaml tcp or udp
捕获过滤器可以在PCAP、AF包、netmap和pf_环段的每个接口上设置。它也可以放在一个文件中:
echo "not host 1.2.3.4" > capture-filter.bpf
suricata -i ens5f0 -F capture-filter.bpf
使用捕获过滤器限制流量测量处理的内容。因此,不会对未被调查的交通进行检查、记录或以其他方式记录。
9.7.1.1. BPF和IPS¶
在使用af包和netmap的IPS模式下,BPFs会影响流量的转发方式。如果捕获NIC由于BPF而没有捕获数据包,它也不会被转发到对等NIC。
所以在 not host 1.2.3.4 ,进出IP的流量 1.2.3.4 被有效地丢弃了。
9.7.2. 通过规则¶
传递规则是Suricata规则,如果匹配,则传递包,如果是TCP,则传递流的其余部分。它们看起来像正常的规则,只是 alert 或 drop 他们使用 pass 作为行动。
例子::
pass ip 1.2.3.4 any <> any any (msg:"pass all traffic from/to 1.2.3.4"; sid:1;)
与捕获过滤器的一大区别是,诸如eve或http.log之类的日志仍然为此流量生成。
9.7.3. 抑制¶
禁止规则可用于确保没有为主机生成警报。然而,这是不有效的,因为抑制只被认为是后匹配。换句话说,Suricata首先检查规则,然后才会考虑每个主机的抑制。
例子::
suppress gen_id 0, sig_id 0, track by_src, ip 1.2.3.4
9.7.4. 加密流量¶
TLS应用层分析器能够在初始握手之后停止处理加密通信。通过设置 app-layer.protocols.tls.encryption-handling 选择权 bypass 此流的其余部分将被忽略。如果启用了流旁路,则旁路在内核或硬件中完成。
9.7.5. 绕开交通¶
除了使用 bypass
关键字在规则中,有三种其他方法可以绕过流量。
在Suricata(局部旁路)内。Suricata读取数据包,对其进行解码,并在流表中对其进行检查。如果相应的流是本地绕过的,那么它将跳过所有流、检测和输出,包将在IDS模式下直接输出,并在IPS模式下进行判定。
在内核中(捕获旁路)。当Suricata决定绕过时,它调用capture方法提供的函数来声明捕获中的旁路。对于NFQ,这是iptables/nftableruleset将使用的一个简单标记。对于AF_PACKET,这是一个在存储在内核中的eBPF哈希表中添加元素的调用。
在NIC驱动程序中。该方法依赖于XDP,XDP可以在到达内核之前处理流量。
其他旁路文件:
https://suricon.net/wp-content/uploads/2017/12/SuriCon17-Manev_Purzynski.pdf https://www.stamus-networks.com/2016/09/28/suricata-bypass-feature/