公开/公告号CN101465864A
专利类型发明专利
公开/公告日2009-06-24
原文格式PDF
申请/专利权人 中国科学院计算技术研究所;
申请/专利号CN200910076368.5
申请日2009-01-14
分类号H04L29/06(20060101);H04L12/24(20060101);
代理机构11006 北京律诚同业知识产权代理有限公司;
代理人祁建国;梁挥
地址 100080 北京市海淀区中关村科学院南路6号
入库时间 2023-12-17 22:10:28
法律状态公告日
法律状态信息
法律状态
2022-12-23
未缴年费专利权终止 IPC(主分类):H04L29/06 专利号:ZL2009100763685 申请日:20090114 授权公告日:20120905
专利权的终止
2014-05-07
专利权的转移 IPC(主分类):H04L29/06 变更前: 变更后: 登记生效日:20140411 申请日:20090114
专利申请权、专利权的转移
2012-09-05
授权
授权
2009-08-19
实质审查的生效
实质审查的生效
2009-06-24
公开
公开
技术领域
本发明涉及网络安全监控领域,具体涉及带宽消耗随机伪造源地址攻击过滤方法及系统。
背景技术
近年来,DDoS(分布式拒绝服务)攻击的频繁发生给重要信息系统以及运营网络的安全带来的严重影响,因此得到了社会各界的广泛关注。在DDoS攻击中,带宽消耗随机伪造源地址攻击是一种常见攻击方式,采取伪造源地址攻击者可以隐藏自己,增加系统处置的难度。攻击者通过向攻击目标发送大量伪造源地址的数据包,消耗带宽和计算资源以实现对目标系统的拒绝服务攻击。目前,针对随机伪造源地址攻击的过滤、防御方法研究主要包括基于History-IP(历史网络协议)、基于Hop-Count(跳数)、基于标签以及基于子网地址过滤等4类方法。
基于History-IP,包括黑、白名单,的方法,维护一个常见用户数据库或者列表,在攻击发生时,允许源地址在表中的数据包通过。该类方法的缺点是如果攻击地址采取了合法的IP地址,则过滤系统完全丧失了对目标系统的保护能力,而且合法用户的源地址如果不在常见用户表中,也会被阻止访问服务器,并且此方法需要一段时间的学习才能建立用户数据库或列表。
基于Hop-Count的方法维护一个常见用户的跳数数据库,在攻击发生时,检查数据包的跳数是否与数据库中相应记录的跳数相同,如果相同,则允许通过。该类方法的缺点是当合法用户的路由改变时,合法用户也会被禁止进入系统,并且该类方法需要一段时间的学习来建立跳数数据库。
基于标签的方法主要通过在边界路由器上对流出子网的数据包加注基于源子网编号的标签的方法来辨别数据包的真伪,从而过滤随机伪造源地址攻击数据包。该类方法的缺点是需要全网部署设备,同时需要在边界路由器上增加功能,也加重了编辑路由器的负担。
基于子网地址过滤的方法主要通过在边界路由器判断流出子网的数据包是否属于自己的子网,如果是,则允许通过。缺点也同样是需要在边界路由器上增加功能,加重了编辑路由器的负担。
发明内容
为解决上述问题,本发明提供了一种带宽消耗随机伪造源地址攻击的过滤方法及系统,能够以较低的计算开销和存储开销为代价进行带宽消耗随机伪造源地址攻击的过滤,并能应用于多种协议。
本发明公开了一种带宽消耗随机伪造源地址攻击的过滤方法,包括:
步骤1,配置高低权重队列转发数据包的比例和数据包类型集合;
步骤2,接收数据包,判断所述数据包的类型是否被包括在所述数据包类型集合中,如果是,则执行步骤3,否则,所述数据包进入低权重队列;
所述步骤3,判断所述数据包的源地址是否合法,如果是,则所述数据包进入高权重队列,否则,所述数据包进入低权重队列;
步骤4,在当前存在攻击时,按所述高低权重队列转发数据包的比例转发所述低权重队列和所述高权重队列中的数据包,在当前不存在攻击时,转发所述高权重队列中数据包。
所述数据包类型集合包括:网间控制信息协议类型、无连接传输协议类型、传输控制协议/确认类型、传输控制协议/结束类型。
所述步骤3后还包括:
步骤31,统计数据包的源地址信息,对预设检测时隙内统计的源地址信息进行分析,识别出合法源地址,将所述合法源地址记录到合法地址表中。
所述步骤3中判断所述数据包的源地址是否合法进一步为,在所述合法地址表中查找所述数据包的源地址,如果查找到,则所述数据包的源地址合法,否则,所述数据包的源地址不合法。
所述步骤1还包括,初始化计时器为0;
所述步骤31进一步包括:
步骤51,将接收的数据包的源地址信息记录到源地址信息统计表中;
步骤52,判断所述计时器的计时是否小于所述检测时隙,如果是,则等待接收下一个数据包,执行所述步骤2;否则,执行步骤53;
所述步骤53,将所述合法地址表清空,将所述计时器置0,分析所述源地址信息统计表中信息,识别出其中所有合法源地址,并在所述合法地址表中记录,将所述源地址信息统计表清空。
所述数据包的源地址为源IPv4地址。
所述源地址信息统计表包括4个整型数组,分别表示为A1、A2、A3、A4;
所述步骤51进一步包括:
步骤71,将接收的数据包的源IPv4地址用点分十进制形式表示,左起第一段值表示为a,左起第二段值表示为b,左起第三段值表示为c,左起第四段值表示为d;
步骤72,计算所述数据包在4个所述数组对应单元的下标值;在数组A1中的单元下标值为value1=256×a+b,在数组A2中的单元下标值为value2=256×b+c,在数组A3中的单元下标值为value3=256×c+d,在数组A4中的单元下标值为value4=256×d+a;
步骤73,将数组A1中第value1个单元的计数加1,将数组A2中第value2个单元的计数加1,将数组A3中第value3个单元的计数加1,将数组A4中第value4个单元的计数加1。
所述步骤1还包括由历史数据获得正常情况包速率,表示为n;
所述步骤2还包括在接收的数据包的类型被包括在所述数据包类型集合中时,将包数记录器的值加1;
所述步骤53中分析所述源地址信息统计表中信息,识别出其中所有合法源地址进一步为读取包数记录器的值,表示为m,对所有IPv4地址在数组A1、A2、A3、A4中查找对应单元,判断所述IPv4地址对应的4个单元的计数的值是否都大于1+((m-s×n)/65536),其中s为所述检测时隙,如果是,则所述IPv4地址合法,否则,所述IPv4地址不合法;
所述步骤53还包括,在将所述源地址信息统计表清空的同时,将所述包数记录器置0。
所述步骤2和所述步骤3中所述数据包进入低权重队列进一步为,
判断所述低权重队列是否已满,如果是,则丢弃所述数据包,否则将所述数据包加入所述低权重队列;
所述步骤3中所述数据包进入高权重队列进一步为,
判断所述高权重队列是否已满,如果是,则丢弃所述数据包,否则将所述数据包加入所述高权重队列。
本发明还公开了一种带宽消耗随机伪造源地址攻击的过滤系统,所述系统包括:
缓冲区,包括高权重队列和低权重队列。
初始化模块,用于配置高低权重队列转发数据包的比例和数据包类型集合;
过滤模块,用于在接收到数据包后,判断所述数据包的类型是否被包括在所述数据包类型集合中,如果是,则在所述数据包的源地址合法时,将所述数据包加入高权重队列,在所述数据包的源地址不合法时,将所述数据包加入低权重队列;否则,所述数据包进入低权重队列;
转发模块,用于在当前存在攻击时,按所述高低权重队列转发数据包的比例转发所述低权重队列和所述高权重队列中的数据包,在当前不存在攻击时,转发所述高权重队列中数据包。
所述数据包类型集合包括:网间控制信息协议类型、无连接传输协议类型、传输控制协议/确认类型、传输控制协议/结束类型。
所述过滤模块还用于统计数据包的源地址信息,对预设检测时隙内统计的源地址信息进行分析,识别出合法源地址,将所述合法源地址记录到合法地址表中。
所述过滤模块在判断所述数据包的源地址是否合法时进一步用于在所述合法地址表中查找所述数据包的源地址,如果查找到,则所述数据包的源地址合法,否则,所述数据包的源地址不合法。
所述初始化模块还用于初始化计时器为0;
所述过滤模块在统计数据包的源地址信息时进一步用于将接收的数据包的源地址信息记录到源地址信息统计表中;
所述过滤模块在对预设检测时隙内统计的源地址信息进行分析识别出合法源地址,将所述合法源地址记录到合法地址表中时进一步用于判断所述计时器的计时是否小于所述检测时隙,如果是,则等待接收下一个数据包;否则,将所述合法地址表清空,将所述计时器置0,分析所述源地址信息统计表中信息,识别出其中所有合法源地址,并在所述合法地址表中记录,将所述源地址信息统计表清空。
所述数据包的源地址为源IPv4地址。
所述源地址信息统计表包括4个整型数组,分别表示为A1、A2、A3、A4;
所述过滤模块在统计数据包的源地址信息时进一步用于将接收的数据包的源IPv4地址用点分十进制形式表示,左起第一段值表示为a,左起第二段值表示为b,左起第三段值表示为c,左起第四段值表示为d;计算所述数据包在4个所述数组对应单元的下标值;在数组A1中的单元下标值为value1=256×a+b,在数组A2中的单元下标值为value2=256×b+c,在数组A3中的单元下标值为value3=256×c+d,在数组A4中的单元下标值为value4=256×d+a;将数组A1中第value1个单元的计数加1,将数组A2中第value2个单元的计数加1,将数组A3中第value3个单元的计数加1,将数组A4中第value4个单元的计数加1。
所述初始化模块还用于由历史数据获得正常情况包速率,表示为n;
所述过滤模块还包括包数记录器,所述过滤模块还用于在接收的数据包的类型被包括在所述数据包类型集合中时,将包数记录器的值加1;
所述过滤模块在分析所述源地址信息统计表中信息,识别出其中所有合法源地址时进一步用于读取包数记录器的值,表示为m,对所有IPv4地址在数组A1、A2、A3、A4中查找对应单元,判断所述IPv4地址对应的4个单元的计数的值是否都大于1+((m-s×n)/65536),其中s为所述检测时隙,如果是,则所述IPv4地址合法,否则,所述IPv4地址不合法;。
所述过滤模块还用于在将所述源地址信息统计表清空的同时,将所述包数记录器置0。
所述过滤模块在将所述数据包加入低权重队列时进一步用于判断所述低权重队列是否已满,如果是,则丢弃所述数据包,否则将所述数据包加入所述低权重队列;
所述过滤模块在将所述数据包加入高权重队列时进一步用于判断所述高权重队列是否已满,如果是,则丢弃所述数据包,否则将所述数据包加入所述高权重队列。本发明的有益效果在于本发明能够有效缓解、过滤和防御针对网络信息系统的大规模非Syn Flood(同步泛洪)攻击;能够应用于多种协议,如UDP、ICMP,也包括TCP除SYN Flood之外的随机伪造源地址攻击;降低存储开销和计算开销;并且不需要额外的设备。
附图说明
图1本发明带宽消耗随机伪造源地址攻击过滤方法的流程图;
图2本发明的过滤方法中Bloom Filter的结构图;
图3本发明带宽消耗随机伪造源地址攻击系统的部署连接图;
图4本发明带宽消耗随机伪造源地址攻击系统的结构图。
具体实施方式
下面结合附图,对本发明做进一步的详细描述。
本发明是在随机伪装源地址攻击被发现的基础上进行流量过滤,并不涉及伪造源地址攻击检测。
本发明带宽消耗随机伪造源地址攻击过滤方法的流程如图1所示。
步骤S101,初始化和配置参数。
配置高低权重队列转发数据包的比例,表示为r;配置数据包类型集合,其中包括ICMP类型(网间控制信息协议类型)、UDP类型(无连接传输协议类型)、TCP/ACK类型(传输控制协议/确认类型)、TCP/FIN类型(传输控制协议/结束类型);由历史数据获得正常情况包速率,表示为n,单位为每秒包数;初始化计时器为0。
由用户设置检测时隙为s,单位为秒;高权重队列和低权重队列的长度,由过滤系统的处理能力决定;转发总速率为表示为v,单位为每秒包数,由被保护的网络信息系统的处理能力决定。
步骤S102,接收一个数据包。
步骤S103,判断接收的数据包的类型是否被包括在数据包类型集合中,如果是,则将包数记录器的值加1,执行步骤S104,否则,执行步骤S105。
步骤S104,在合法地址表中查找该数据包的源IPv4地址,如果能找到,执行步骤S106,否则,执行步骤S105。
步骤S105,判断缓冲区中的低权重队列是否已满,如果已满则丢弃该数据包,否则将数据包加入到低权重队列,执行步骤S107。
其中低权重队列采用先进先出方式(FIFO方式)。
步骤S106,判断缓冲区中的高权重队列是否已满,如果已满则丢弃该数据包,否则将数据包加入到高权重队列,转步骤S107。
其中高权重队列采用先进先出方式(FIFO方式)。
步骤S107,判断当前是否存在攻击,如果存在,在缓冲区中有数据包时,分别按r×v/(r+1)和v/(r+1)的速率将高权重队列和低权重队列中的数据包不停地转发出去;如果不存在,在高权重队列中有数据包时,则按速率v将其中数据包不停地转发出去。
步骤S108,将数据包源地址记入源地址信息统计表中。
记录数据包源地址信息采用了一种已有技术Bloom Filter组织结构,如图2所示,有4个函数SIPH、SIPM、SIPL和SIPLH和四个与之分别对应的整型数组,表示为A1、A2、A3和A4组成,每个数组的大小都是64K,函数SIPH、SIPM、SIPL和SIPLH分别计算256×a+b,256×b+c,256×c+d和256×d+a。操作过程如下:
步骤181,将接收的数据包的源IPv4地址用点分十进制形式表示,左起第一段值表示为a,左起第二段值表示为b,左起第三段值表示为c,左起第四段值表示为d。
例如接收的数据包的源IPv4地址为192.168.1.2,则a为192,b为168,c为1,d为2。
步骤182,计算该数据包在4个所述数组对应单元的下标值。
在数组A1中的单元下标值为value1=256×a+b,在数组A2中的单元下标值为value2=256×b+c,在数组A3中的单元下标值为value3=256×c+d,在数组A4中的单元下标值为value4=256×d+a。
步骤183,将数组单元A1[value1]的计数加1,将数组单元A2[value2]的计数加1,将数组单元A3[value3]的计数加1,将数组单元A4[value4]的计数加1。
步骤S109,判断计时器的计时是否小于检测时隙,如果是,则等待接收数据包,执行步骤S102,否则,执行步骤S110。
步骤S110,清空合法地址表,将计时器置为0。
步骤S111,分析源地址信息统计表,从中识别出所有合法源地址,并在合法地址表中记录,清空源地址信息统计表,包数记录器置为0,执行步骤S102。
识别合法源地址的过程如下:
读取包数记录器的值,表示为m,对所有源IPv4地址分别查找其在四个数组A1、A2、A3和A4中对应的单元,如果对应的四个单元的计数的值都大于((m-s×n)/65536)+1,则该IPv4地址是合法源地址,将此IPv4地址写入合法地址表中。
例如:一个IPv4地址(a.b.c.d),对应四个数组单元下标分别为
value_1=256×a+b;value_2=256×b+c;value_3=256×c+d;value_4=256×d+a。
如果A1[value_1],A2[value_2],A3[value_3],A4[value_4]的值都大于((m-s×n)/65536)+1,则IP地址(a.b.c.d)为合法源地址。
本发明公开的过滤系统具有随机伪造源地址攻击过滤和防御能力,主要部署于接入路由器与被保护网络信息系统之间,具体的部署连接方式可参见图3所示。过滤系统可以连接在接入路由器和交换机之间,接入路由器和出口路由器之间,或者接入路由器和受保护的服务器之间。
过滤系统结构如图4所示,包括
缓冲区403,包括高权重队列和低权重队列。
初始化模块401,用于初始化和配置参数。
配置高低权重队列转发数据包的比例,表示为r;配置数据包类型集合,其中包括ICMP类型、UDP类型、TCP/ACK类型、TCP/FIN类型;由历史数据获得正常情况包速率,表示为n,单位为每秒包数;初始化计时器为0。
由用户设置检测时隙为s,单位为秒;高权重队列和低权重队列的长度,由过滤系统的处理能力决定;转发总速率为表示为v,单位为每秒包数,由被保护的网络信息系统的处理能力决定。
过滤模块402,用于在接收到数据包后,判断所述数据包的类型是否被包括在所述数据包类型集合中,如果是,则在所述数据包的源地址合法时,将所述数据包加入高权重队列,在所述数据包的源地址不合法时,将所述数据包加入低权重队列;否则,所述数据包进入低权重队列。
具体操作如下:
步骤421,接收一个数据包。
步骤422,判断接收的数据包的类型是否被包括在数据包类型集合中,如果是,则将包数记录器的值加1,执行步骤423,否则,执行步骤424。
步骤423,在合法地址表中查找该数据包的源IPv4地址,如果能找到,执行步骤425,否则,执行步骤424。
步骤424,判断缓冲区中的低权重队列是否已满,如果已满则丢弃该数据包,否则将数据包加入到低权重队列。
其中低权重队列采用先进先出方式(FIFO方式)。
步骤425,判断缓冲区中的高权重队列是否已满,如果已满则丢弃该数据包,否则将数据包加入到高权重队列。
其中高权重队列采用先进先出方式(FIFO方式)。
过滤模块402还用于统计数据包的源地址信息,对预设检测时隙内统计的源地址信息进行分析,识别出合法源地址,将所述合法源地址记录到合法地址表中。
具体操作如下
步骤501,将数据包源地址记入源地址信息统计表中。
记录数据包源地址信息采用了一种已有技术Bloom Filter组织结构,如图2所示,有4个函数SIPH、SIPM、SIPL和SIPLH和四个与之分别对应的整型数组,表示为A1、A2、A3和A4组成,每个数组的大小都是64K,函数SIPH、SIPM、SIPL和SIPLH分别计算256×a+b,256×b+c,256×c+d和256×d+a。操作过程如下:
步骤511,将接收的数据包的源IPv4地址用点分十进制形式表示,左起第一段值表示为a,左起第二段值表示为b,左起第三段值表示为c,左起第四段值表示为d。
例如接收的数据包的源IPv4地址为192.168.1.2,则a为192,b为168,c为1,d为2。
步骤512,计算该数据包在4个所述数组对应单元的下标值。
在数组A1中的单元下标值为value1=256×a+b,在数组A2中的单元下标值为value2=256×b+c,在数组A3中的单元下标值为value3=256×c+d,在数组A4中的单元下标值为value4=256×d+a。
步骤513,将数组单元A1[value1]的计数加1,将数组单元A2[value2]的计数加1,将数组单元A3[value3]的计数加1,将数组单元A4[value4]的计数加1。
步骤502,判断计时器的计时是否小于检测时隙,如果是,则等待接收数据包,否则,执行步骤503。
步骤503,清空合法地址表,将计时器置为0。
步骤504,分析源地址信息统计表,从中识别出所有合法源地址,并在合法地址表中记录,清空源地址信息统计表,包数记录器置为0。
识别合法源地址的过程如下:
读取包数记录器的值,表示为m,对所有源IPv4地址分别查找其在四个数组A1、A2、A3和A4中对应的单元,如果对应的四个单元的计数的值都大于((m-s×n)/65536)+1,则该IPv4地址是合法源地址,将此IPv4地址写入合法地址表中。
例如:一个IPv4地址(a.b.c.d),对应四个数组单元下标分别为
value_1=256×a+b;value_2=256×b+c;value_3=256×c+d;value_4=256×d+a。
如果A1[value_1],A2[value_2],A3[value_3],A4[value_4]的值都大于((m-s×n)/65536)+1,则IP地址(a.b.c.d)为合法源地址。
转发模块404,用于在当前存在攻击时,按所述高低权重队列转发数据包的比例转发所述低权重队列和所述高权重队列中的数据包,在当前不存在攻击时,转发所述高权重队列中数据包。
具体操作为,判断当前是否存在攻击,如果存在,在缓冲区中有数据包时,分别按r×v/(r+1)和v/(r+1)的速率将高权重队列和低权重队列中的数据包不停地转发出去;如果不存在,在高权重队列中有数据包时,则按速率v将其中数据包不停地转发出去。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。
机译: 源地址伪造包检测单元,源地址伪造包检测方法和源地址伪造包检测程序
机译: 一种基于随机数表的密码验证方法,该方法可避免肩膀攻击,嗅探攻击和密钥记录攻击ETC以及用户认证系统的危害
机译: 基于源地址和目的地址的分组过滤方法和系统