深入解析:将 Snort 规则转换为 iptables 规则
1. 深度防御的必要性
入侵检测系统(IDS)自身也可能成为攻击目标。攻击者的手段多样,从通过制造误报来破坏 IDS 的警报机制,到利用 IDS 中的漏洞实现代码执行。例如,攻击者可借助 Tor 网络发送真实或伪造的攻击,使攻击看似源于与自身网络无关的 IP 地址。此外,IDS 偶尔也会出现可远程利用的漏洞,如 Snort DCE/RPC 预处理器漏洞。
深度防御原则不仅适用于传统计算机系统(如服务器和桌面设备),也适用于防火墙和 IDS 等安全基础设施系统。因此,有必要用额外机制来补充现有的入侵检测/预防系统。
2. 基于目标的入侵检测与网络层分片处理
在 IDS 中构建能结合终端主机特征增强检测能力的功能,被称为基于目标的入侵检测。以 Snort IDS 为例,它通过 frag3 预处理器提供网络层分片处理功能,可对分片网络流量应用多种数据包分片算法,包括 Linux、BSD、Windows 和 Solaris IP 栈中的算法。这一功能很实用,因为它能让 Snort 使用目标主机相同的分片算法。若针对 Windows 系统的分片攻击,Snort 却用 Linux IP 栈的算法进行分片处理,可能会漏报或误报攻击。
不过,frag3 预处理器不会自动为主机映射分片算法,需要手动告知 Snort 为每个受监控的主机或网络运行哪种算法,这就可能导致配置错误。例如,公司 IT 部门在通常为 Windows 主机保留的 IP 地址范围内搭建了一台新的 Linux 服务器,而 Snort frag3 预处理器被配置为使用 Windows 算法对该范围内所有 IP 地址的流量进行分片