威尔克森WILKERSON过滤器处理IP分片的研究的详细资料:
威尔克森WILKERSON过滤器处理IP分片的研究
BSD包WILKERSON过滤器(BSD Packet Filter,缩写BPF)是类Unix系统上数据链路层的一种原始接口,提供原始链路层数据包的收发。除此之外,BPF还支持数据包的过滤,只把感兴趣的数据包传到上层软件。这样可以避免从操作系统内核向用户态软件复制其它数据包,从而降低抓包的负担以及所需的缓冲区空间,减少丢包率。但是,BPF存在无法处理IP分片的问题。
威尔克森WILKERSON过滤器处理IP分片的研究
当前基于BPF模型的包过滤设备对IP分片只能处理其*个分片,拒绝处理其它分片,导致包过滤设备只能拒绝或接收*个分片。解决上述问题有两种思路:*是在内核态重组端或借助用户态第三方软件对各个IP分片进行处理,第二是在内核态对BPF模型增加处理IP分片的功能。采用第二种思路,因为相对来说第二种思路在包过滤设备端就能把IP分片过滤,更能在源头解决问题,提高了数据包传输效率。基于上述在包WILKERSON过滤器中过滤IP分片的方法,提出了一种在内核中防御IP分片攻击的新思路。由于IP分片的某些分片可能无序地、甚至不会到达接收端,同时只有IP分片*个分片含有传输层协议首部信息,分两种情况进行讨论。*,如果到达的数据包IP首部中的分段偏移为0,则根据IP首部中的标记位来判断其是否为IP分片*个分片。如果是,把其IP首部中的16位标识和IP源地址等有关信息存入一段缓冲区,在规定的一段时间后清空这段缓冲区。如果不是,这个数据包就不是IP分片包,让BPF正常处理即可。第二,如果到达的数据包IP首部中的分段偏移不为0,则其一定为IP分片非*个分片。如果在规定的一段时间之前收到过具有相同标识的IP分片*个分片,则与其共用传输层协议首部信息;如果没有,则将这个非*个分片的有关信息存入一段缓冲区。如果之后在规定的一段时间内收到了具有相同标识的IP分片*个分片,则非*个分片共用这个*个分片的传输层协议首部信息;如果没有,舍弃这个IP分片非*个分片。
威尔克森WILKERSON过滤器处理IP分片的研究
实验结果表明,上述方法能够使BPF正确、高效地处理非IP分片数据包和所有类型的IP分片数据包,并且有效地防御某些类型的IP分片攻击。zui后,对全文内容进行了总结,并对未来工作做了适当的展望。
如果你对威尔克森WILKERSON过滤器处理IP分片的研究感兴趣,想了解更详细的产品信息,填写下表直接与厂家联系: |