Contents

StackPi: New packet marking and filtering mechanisms for DDoS and IP spoofing defense

论文信息

发在JSAC上, 作者: /ox-hugo/E0EPl1.png

把与我相关的部分做总结

摘要

本文提出StackPi, 一种新的数据包标记方案以及一种过滤机制。标记方案由两部分组成:基于栈的标记以及write-ahead标记。过虑机制中我们推导出一个用Pi标记进行过滤的最佳阈值策略。还提出PiIP过度器可用于检测网络协议欺骗攻击。

贡献部分内容与摘要内容基本相同.

Pi概要

Pi标记方案

Pi标记方案: 数据包在其路径上传输过程中的Pi标记如何生成。

具体过程: 每个交换机在传输包时在包的IP标识位添加标记,IP标识位通常根据全局的n分成[16/n]节,每个交换机根据数据包当前的TTL值在其相应的节下标添加它的标记,如n=2,则在路径上的最后8跳是进行标记.

原始的Pi已经很好了,但当有legacy 交换机存在时(我也不知道这是个什么交换机),性能会极大地下降,因此本文提出栈标记以及write-ahead improvement.

Pi过滤方案

Pi过滤即是定义一个被DDoS攻击的服务如何根据标记来接受包,如:当确定某个Pi标记是攻击,有该标记的所有包都丢弃,但这么做会有标记饱和问题:即Pi标记的总数是常量(216),攻击者过多时会使服务丢弃所有的数据包。

标记饱和的一个解决方法时定义阈值(这个阈值怎么算的没看懂), 被攻击的服务只会丢弃攻击包数超过指定阈值的数据包。

StackPi: 一种新的Pi标记方案

当所有的路由器都实现Pi时上述Pi标记方法很管用,但是现实网络是增量部署的,这就使得总会有交换机没有安装Pi。

增量部署问题

当path相同时,Pi标记也是相同的,IP标识是由终端主机初始化的,因此当有某个位未被路由器标记,这个位就会被攻击者利用。在增量部署时会存在一些交换机未实现Pi功能,而它们又会对TTL递减,这就造成了标记空洞。当常量n=2时就要求路径至少有8个路由器,且都要能够标记。

Stack Marking

基于栈的标记:当路由器收到数据包时,将自身的标记push到数据包的IP标识中,这样超过的旧标记会被丢弃。

Router Write-Ahead

栈标记在路径长度有限时仍然会有问题,因此本文提出Write-Ahead标记,在此假设每个数据包知道其下一跳的IP, 交换机要做的就是:在计算标记时,使用本IP替代上一跳IP,使用下一跳地址替代本IP。

当相邻两个路由器一个是Pi-enabled,另一个是legacy路由器时,write-ahead标记可以在计算标记时带上legacy路由器。

不好的地方:当两个Pi-enabled路由器相邻,第一个路由器在计算标记时已带下了下一个交换机,因此下一个路由器的标记并不需要。因此:在收到数据包时,路由器将最近的标记与自己的标记相比较,若相同,则默认上一跳将本跳的标记已加进去了,因此跳过本路由器的push操作并只push下一跳的标记到栈中。图2为例子。