还是忍不住要考虑重叠包的处理。
重叠包(overlap)不等同于重传包,可以说重传包是重叠包的一种特例,即完全重叠。重叠包在目标端的取舍跟操作系统类型有关,windows是保留老的报文,而linux等UNIX类操作系统,一般是选择新的报文部分。
而很多安全产品在检测的时候,一般是要么选择老的报文,要么选择新的报文,特别是在线设备,一般是选择老的报文,因为老的报文已经发出去,于是把新的报文丢弃。这样攻击信息可以放入重叠部分的新报文中,暗渡陈仓,避过安全产品的检查,组合出需要的内容。
对老报文和新报文都进行检测也是比较麻烦的,因为既然是重叠包,一般都是需要进行重组的,重叠包的发现实在第二个报文到来时才知道,这时老的报文已经被缓存了,先把老报文重组好检测完,再把新报文重组一遍,再检测,显然是不太现实。
并且即使上面的思路得以实现,由于目标系统不同,攻击可能是无效的,即使检测出攻击,也是误报。比较有效的方法应该是先对目标系统进行操作系统识别,目前已经有开源的实现方式p0f是比较好的代表,然后对识别结果进行利用,针对目标系统对重叠包进行重组和检测,进行有效的识别攻击。
阅读(1718) | 评论(0) | 转发(1) |