checkpoint防火墙状态表[汇编]

上传人:粗**** 文档编号:138065053 上传时间:2020-07-13 格式:PDF 页数:9 大小:17.39KB
返回 下载 相关 举报
checkpoint防火墙状态表[汇编]_第1页
第1页 / 共9页
checkpoint防火墙状态表[汇编]_第2页
第2页 / 共9页
checkpoint防火墙状态表[汇编]_第3页
第3页 / 共9页
checkpoint防火墙状态表[汇编]_第4页
第4页 / 共9页
checkpoint防火墙状态表[汇编]_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《checkpoint防火墙状态表[汇编]》由会员分享,可在线阅读,更多相关《checkpoint防火墙状态表[汇编](9页珍藏版)》请在金锄头文库上搜索。

1、了解 Check Point FW-1状态表 作者: Lance Spitzner) 整理: warning3) 主页: 日期: 2000-08-15 B # 系统 A 联往系统 B 现在,系统 B可以发送任意的包给系统A,只要 IP和端口匹配 (例如,那些属于这个连接会话的包).然而,如果系统试图发送SYN包建立 一个新的连接,即使它使用与已存在的那个连接同样的端口,防火墙仍然会认为这个SYN包是一个新会话的一部分,将它与规则集进 行比较。就我的观点来说,这是件好事。在上面的例子中,如果我们只允许来自外部系统A 的连接,不允许从内部的系统B 发往外部 的连接。那么系统B与系统 A 联系的唯一

2、方式就是作为一个已建立的连接的一部分来进行。 当系统 A 连往系统 B时,这个连接被加入到防火墙连接检查表中,现在系统B可以发送应答包给系统A 了。然而,系统 B 并不能向 A 发送任何的 SYN包来新建连接,即使IP和端口号是相同的。当防火墙看到SYN包时,它将这个包与规则集进行比较。在上面所说的条 件下,这个包将被丢弃,虽然已经存在一个端口和IP 都相同的连接。 Fastpath: 我学到的另外一些东西就是,如果fastpath 被使用,那么 TCP回话不会被加入到过程连接表中。这是因为Fastpath仅仅检查 SYN包,所以不需要将连接会话增加到连接表中。如果一个包中设置了其它的标志,缺

3、省情况下这个包就不会被过滤而是让其通过了。 通常 fastpatch 用来改进性能。它的思路是: 如果一个包没有设置SYN标志,那么它肯定是一个已经建立的连接的一部分,因为只有 SYN 包才能开始一个连接。既然只检查SYN包,所以性能肯定会大大提高。然而,使用faspatch通常并不是一个好的做法,因为这可能让 你暴露在多种攻击方式之下。Fastpath在 FW-1 中存在,并且只能对所有的TCP包同时起作用。在中,它又被叫做Fastmode, 可以有选 择的对不同的 TCP服务实施。 关闭一个连接 = 根据初步的测试结果, FW-1通过设置连接超时时间来关闭连接。当检查模块看到一个连接会话开

4、始交换FIN或者 RST包时,它就将超 时时间从 3600 秒改为 50 秒。如果 50 秒内没有其它的包发送,连接就被从状态表中删除。如果在超时时间段内又有其它的包发送,那 么超时时间会再被设置成50 秒.这可以阻止别人通过发送假的RST或者 FIN包来进行拒绝服务攻击。在关闭TCP连接会话时,在应答 了第二个 FIN包后进入的 TIME_WAIT状态与这种超时有点类似。 UDP = 维护 UDP状态更简单,因为它们是无连接的。当过滤规则允许一个UDP包通过防火墙时,这个连接就被增加到连接表中。在超时时间 段(缺省是 40 秒)内,只要源 /目的地址和端口匹配的UDP包都允许通过。例如,下面

5、是一个DNS请求: Src_IP Src_Prt Dst_IP Dst_Prt IP_prot Kbuf Type Flags Timeout 1111 53 17 0 16386 ff01ff00 34/40 1111 0 17 0 16386 ff01ff00 34/40 你能看到, 系统正在向做 DSN查询。40 秒内,那个系统可以返回任意多的UDP包(只要源 /目的地址和端口匹配 ).注意这里有两个表项, 区别是目的端口不同, 一个是 53,另一个是 0.我不知道为什么 FW-1会创建那个目的端口为0 的表项。如果不是过滤所有的UDP数据传 输,这种情况很常见。 ICMP = FW-1

6、对 ICMP的处理很令人失望。缺省情况下,FW-1不对 ICMP进行状态检查。它永远不会被放到状态连接表中。因此,用户被迫盲 目地允许特定的 ICMP传输(例如入站 ECHO_REPLIES)或者不得不自己修改检查代码我认为这是FW-1最大的不足。 报文分组 = 最近我一直在看报文分组,特别是FW-1如何处理分组报文。尽管报文分组并没有直接应用到状态表中,但我认为它也很重要, 值得加 入到这篇文章中。我不会详细地将报文分组的原理,我假设读者已经具备了IP 报文分组的基本知识。我首先会大体上讲一下FW-1 是 如何处理报文分组的,然后我会再针对TCP,UDP,ICMP 协议讲一下。 首先, FW

7、-1将接收到的分组报文再发出去。就是说如果FW-1收到一个分组的报文,过滤规则也允许它通过的话,它会将这个分组再 转发出去。但是,我认为FW-1在检查分组的报文之前肯定进行了某种形式的报文重组。这个结论是在下列测试的基础上得出的。当我 用一个完整的分组报文发起TCP连接的时候,报文被防火墙接受并加入到了状态表中,然后再以分组的形式发送给目的主机。现在我 的状态表里有了一个会话表项,然后我试图发送更多的分组报文,它们属于同一个连接会话,这些报文也被接受,超时时间被重置。然 而,如果我发送一个不完整的TCP分组(也属于同一个连接会话 ),这个分组就不被接受,而且它也不会被记录。这让我相信当FW-1

8、第 一次收到一个分组报文时,它并不进行规则检查,而是要等到所有的分组均被收到并且完成报文重组后,才进行规则检查。一旦重组 完成,防火墙才开始决定如何处理这个报文,是接受还是丢弃,记录等等。另一个例子是使用jolt2,它是一个用来攻击Window 系统 的工具。它发送100 个不完整的 ICMP或者 UDP分组给选定的目标主机。当用来攻击Fw-1 后面的主机时 ,这些包不会通过防火墙,也 不会被防火墙所记录。我认为这是由于这些ICMP分组是不完整的,它们不能被重组为一个完整的ICMP报文,因此也就不会被 检查和记录。 事实上,对于一个包含状态检查的防火墙,常常要进行某种形式的报文重组。很多检查连

9、接状态防的火墙(包括 FW-1)检查包都是基于 源/目的地址和源 /目的端口的 (TCP头).然而,对于分组报文,只有第一个分组包含这些信息,所有其它的分组都只有IP 地址信息。如 果不进行某种形式的报文重组,防火墙就不能确定后续分组是属于哪个连接会话的(除了第一个分组 ).通过对分组报文进行重组, 防火 墙就可以确定这些分组到底是属于哪个连接会话的。 然而,在重组之前不进行报文检查也有一个问题,防火墙就可能遭受不完整或者是非法的分组报文的攻击.既然这些报文是不完整的或 者非法的,就不可能被正确重组,它们也不会被检查和记录。所以,防火墙会继续接收这样的包并尝试重组它们,尽管重组是不可能 的。因

10、此处理大量的这样的分组将占用系统资源,导致拒绝服务攻击。这种攻击不能通过设置防火墙过滤规则来防止,也不会被记录。 为了得到这个漏洞更为详尽的消息,可以看 CheckPoint的安全公告如果你是Unix用户,可以在命令行用 fw ctl pstat 来看你的防火墙处 理了多少分组。到可以得到更多的相关资料。 下面我们来看看特定的协议。首先,来看TCP .对于数据长度少于24 字节的分组报文, FW-1 将会丢弃其第一个分组,并且记录下这个 报文:TCP packet too short.( 注意:记住,这里我们讨论的数据长度不包括20 字节的 IP头).例如,用网络扫描工具namp 的-f选项将

11、会 产生一个分组报文,第一个分组数据长度为16 个字节,第二个分组为8 字节,因此缺省这些分组检测会被FW-1丢弃(不管你的过滤 规则如何设置 )并被记录。 ICMP和 UDP则又有不同。首先,标准的分组长度(8,16,32 字节等等 )都是可以的 (不象 TCP, 要求至少 24 字节).然而, 奇数字节的分组 大小是不允许的 (这里的 奇数是指不是 8 字节的整数倍 )。例如 ,试图发送一个数据长度为12 字节的分组,这就不会被接受,也不会被 记录。 这些看法都是基于我个人的研究,并不是所谓官方资料。如果你发现我的逻辑,测试方法或者 使用的技术有任何问题,请提醒我! 附录: 测试使用的工具: 可以帮你更好的理解Check Point FW-1的状态检查表。 hping2允许你自己构造 TCP/ICMP/UDP 包 Nemesis与 hping2 类似,也有自己一些不同的功能。使用libpcap 和 libnet.它允许你 自己构造各种类型的报文,包括TCP,UDP,ICMP,DNS,OSPF 等等 libnet它封装了一些网络函数 .

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号