网络安全 频道

如何使用访问控制列表防御IP碎片攻击?

  3.利用扩展ACL防止IP Fragment攻击

  说正题了;fragment攻击是指通过恶意操作,发送极小的分片来绕过包过滤系统或者入侵检测系统的一种攻击手段。攻击者通过恶意操作,可将TCP报头(通常为20字节)分布在2个分片中,这样一来,目的端口号可以包含在第二个分片中。

  对于包过滤设备或者入侵检测系统来说,首先通过判断目的端口号来采取允许/禁止措施。但是由于通过恶意分片使目的端口号位于第二个分片中,因此包过滤设备通过判断第一个分片,决定后续的分片是否允许通过。但是这些分片在目标主机上进行重组之后将形成各种攻击。通过这种方法可以迂回一些入侵检测系统及一些安全过滤系统。

  我们利用扩展ACL即可对IP Fragment攻击进行控制,命令如下:

  access-list 101 permit/deny <协议> <源> <目的> fragment '在命令后加个fragment就行了。

  加不加这个fragment是有很大区别的,下面这段借鉴了雪山飞鹄的学习笔记;

  (1) 当一个ACL只含有三层信息时(不含端口号),对所有的包都进行控制。

  (2) 当不使用frament 选项时,一个包含三层和四层信息的acl 条目将对所有的数据包进行以下控制:

  如果是未分片数据包(nonfragmented)或者分片数据包的第一个分片(initial fragment) ,都将按正常的ACL 进行控制(permit 或deny)。

  如果是分片数据包的后续分片(noninitial fragment),则只检查ACL 条目中的三层部分(协议号、源、目的)。如果三层匹配而且是permit 控制,则允许该分片通过;如果三层匹配而且是deny 控制,则继续检查下一个ACL条目(和正常的ACL 控制顺序不同)。

  (3)当使用fragment 选项时,一个acl 条目将只对分片数据包的后续分片(noninitial fragment)进行控制;并且ACL条目中不能包含四层信息。

  这里还是不好理解,说一下我的看法;

  早期的IOS中,ACL中deny只拒绝匹配丢份的未分片和初始(第一个)分片,而对后续分片不拒绝。其实这个现在的IOS中已经会都拒绝掉了。

  而加上fragment的话,这句ACL就只会对后续分片进行控制了。

  早期的IOS中我们一般会写两句ACL,一句不带Fragment,一句带。

  但现在的IOS中,一句不带fragment的ACL也可以deny掉后续分片。那么带fragment的ACL还有什么用呢?记住,带fragment的ACL只会对后续分

  片进行控制!我们可以在这样一种情况下使用;如果不分片的话我就让你通过,但是你分片了我就不让你过!从而防止fragment攻击。

  大致是这样吧,把带有四层信息的ACL和带Fragment的ACL结合在一起用效果会更好的!

0