如何使用访问控制列表防御IP碎片攻击?
2010-05-28 00:00:00 来源:WEB开发网是否有后续分片标记(More Fragments Flag)
IP头第8-9字节从左往右的第3bit表示当前数据包里的数据是否为某块数据的最后一个分片, 若为0, 则说明当前数据包内的数据没有分片或者是最后一个分片, 若为1, 则表示后面还有属于同一块数据的分片。
最后可以做个测试;
之前一直说以太网MTU是1500,那么我们在主机上运行这样一个命令:
ping 192.168.0.1 -l 1500 -f '-f参数是不允许分片,也就是将Don't Fragment Flag设置为1。
这是提示;Packet needs to be fragmented but DF set.(包需要分片,但是不允许分片。)
这是因为,帧中封装的是 IP Head+IP Data, IP Head大小20字节,而且ping命令所使用的ICMP协议会有8个字段的首部信息,1500-20-8=1472,你会发现;
ping 192.168.0.1 -l 1472 -f
这个是能ping通的。
ICMP比较特殊,一般情况下:
各分片具有分片数据长度,其中20字节IP包头不包含在该数据长度中。即,传输1500字节的数据时,实际数据长度为1480(1500-20)字节。
3.利用扩展ACL防止IP Fragment攻击
说正题了;fragment攻击是指通过恶意操作,发送极小的分片来绕过包过滤系统或者入侵检测系统的一种攻击手段。攻击者通过恶意操作,可将TCP报头(通常为20字节)分布在2个分片中,这样一来,目的端口号可以包含在第二个分片中。
对于包过滤设备或者入侵检测系统来说,首先通过判断目的端口号来采取允许/禁止措施。但是由于通过恶意分片使目的端口号位于第二个分片中,因此包过滤设备通过判断第一个分片,决定后续的分片是否允许通过。但是这些分片在目标主机上进行重组之后将形成各种攻击。通过这种方法可以迂回一些入侵检测系统及一些安全过滤系统。
更多精彩
赞助商链接