有经验的用户如何测试状态防火墙?

信息安全 防火墙 IPv6
2021-08-21 02:46:07

有经验的用户如何使用 TCP/IPv6测试状态防火墙?

我的测试用例包括:

  1. 无请求的回显
  2. 没有syn的tcp ack

是否还有更多测试用例,尤其是 IPv6?

2个回答

NAT穿越

对于两个客户端的方法,每个客户端都隔离在工作在 NAT 中的单独防火墙之后,即使明确允许连接,也可以相互建立通信。

UDP 数据包不包含任何状态。当初始 UDP 数据包通过 NAT 离开防火墙时,它将允许 UDP 流量通过相同的“会话”返回。

当客户端开始互相大量发送 udp 数据包(相同的源/目标端口元组)时,在某个时候,两个防火墙都会认为是它们发起了流量,并允许两个客户端之间的流量,每个客户端都被 NAT 防火墙隔离。

http://en.wikipedia.org/wiki/UDP_hole_punching

连接跟踪

一些防火墙不仅根据 tcp 连接状态跟踪连接,而且还跟踪应用程序协议的请求,即通过 irc 或 ftp 发送文件。虽然这是按预期工作时的一项功能,但它也可用于使防火墙为意外连接打开。

这方面的一个例子是 XSS IRC DCC 攻击:http ://encyclopediadramatica.ch/Firefox_XPS_IRC_Attack

听起来您会想喝杯咖啡、一份规范副本和 libpcap 手册页来安顿下来。

编写一个程序来为您制作和传输这些数据包应该不会太难。高层流将是

  1. 遍历您的用例(例如,让我们使用回显回复)
  2. 用适当的地址填写包含适当物理头的数据结构
  3. 使用适当的地址和标志填写 IP 标头数据结构
  4. 使用回显回复类型代码和适当的有效负载填写 ICMP 数据结构
  5. 将所有这些片段复制到 char*
  6. 打开一个 RAW 套接字并将您的 char* 数据包发送出去

在为每个测试用例构建此程序后,您只需运行应用程序并观察防火墙的正确行为。当然,我会捕获流量并确保像 wireshark 这样的东西在你的测试/质量保证过程中正确地决定它。