利索能及
我要发布
收藏
专利号: 2015108940433
申请人: 上海斐讯数据通信技术有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2024-09-26
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种防止同步包攻击的方法,其特征在于,包括:

预先在内核注册钩子函数、创建跟踪监测链表和黑名单链表,并设置SYN数据包阀值和重检间隔时间;

利用所述钩子函数解析客户端向服务器发送的TCP连接数据包,其中客户端和服务器第一次握手发送的所述TCP连接数据包为SYN数据包;

当来自同一IP地址的所述SYN数据包的数量达到SYN数据包阀值时,将所述IP地址添加到所述跟踪监测链表中,对所述IP地址对应的客户端后续发送的所述TCP连接数据包进行跟踪;

对跟踪的TCP连接数据包进行解析,如果确定所述TCP连接数据包是攻击数据包,则将所述TCP连接数据包对应的IP地址添加到所述黑名单链表中,经过所述重检间隔时间后,再次统计添加到所述黑名单链表中的所述IP地址对应的所述SYN数据包数量,如果所述SYN数据包数量达到所述SYN数据包阈值,则将所述IP地址永久保存在黑名单链表中;如果所述SYN数据包数量没有达到所述SYN数据包阈值,则将所述IP地址从所述黑名单链表中删除。

2.如权利要求1所述的防止同步包攻击的方法,其特征在于,所述跟踪监测链表包括IP地址字段和TCP连接数据包字段;所述跟踪监测链表的长度为要跟踪检测的IP地址的数目。

3.如权利要求1所述的防止同步包攻击的方法,其特征在于,所述黑名单链表包括IP地址字段和黑名单标识位字段;

所述黑名单标识位为第一值时,表示所述IP地址永久加入黑名单链表,所述IP地址对应的客户端发出的TCP连接数据包直接丢弃;所述黑名单标识位为第二值时,表示所述IP地址在加入黑名单链表的重检间隔时间内,所述IP地址对应的客户端发出的TCP连接数据包无法发送到服务器。

4.如权利要求1所述的防止同步包攻击的方法,其特征在于,所述同步包阀值表示每秒允许来自同一IP地址的同步数据包的最大数量;

所述重检间隔时间表示第一次将IP地址加入黑名单链表后,第二次检测到同步数据包达到同步包阀值的时间。

5.如权利要求1所述的防止同步包攻击的方法,其特征在于,所述方法还包括:通过Jiffes变量差值统计每秒同步数据包的数量;

启动时将该Jiffies变量初始化为0,每次钩子函数对同步数据包进行解析中断处理程序时增加Jiffies变量的值。

6.如权利要求1所述的防止同步包攻击的方法,其特征在于,所述TCP连接数据包包括序列字段和确认字段;

所述对跟踪的TCP连接数据包进行解析的步骤包括:

根据序列字段和确认字段,对跟踪的TCP连接数据包进行解析。

7.如权利要求6所述的防止同步包攻击的方法,其特征在于,所述根据序列字段和确认字段,对跟踪的TCP连接数据包进行解析的步骤包括:在客户端和服务器的第一次握手时,截获客户端向服务器发送的第一TCP连接数据包,获取第一TCP连接数据包的序列值,设为X,其中X为整数;将第一TCP连接数据包放行发送到服务器;

在客户端和服务器的第二次握手时,截获服务器向客户端返回作为应答的第二TCP连接数据包,获取第二TCP连接数据包的确认值,所述第二TCP连接数据包的确认值为X+1;获取第二TCP连接数据包的序列值,设为Y,其中Y为整数。

8.如权利要求7所述的防止同步包攻击的方法,其特征在于,所述方法还包括:判断在预设时间内客户端和服务器是否进行第三次握手;

如果截获到客户端向服务器发送的第三TCP连接数据包,获取第三TCP连接数据包序列值,所述第三TCP连接数据包的序列值为Y+1,则确定客户端不是攻击客户端;

如果没有截获到客户端向服务器发送的第三TCP连接数据包,而截获到进行第一次握手的第一TCP连接数据包,则确定客户端是攻击客户端,所述攻击客户端发出的TCP连接数据包是攻击数据包。

9.如权利要求3所述的防止同步包攻击的方法,其特征在于,所述如果确定所述TCP连接数据包是攻击数据包,则将所述TCP连接数据包对应的IP地址添加到黑名单链表中之后,还包括:将所述IP地址对应的黑名单标识位设置为第二值;

在所述间隔重检间隔时间内,如果截获到客户端向服务器发送的TCP连接数据包,判断所述客户端的IP地址是否在黑名单链表中;

如果所述IP地址在黑名单链表中,则将所述TCP连接数据包进行丢弃。

10.如权利要求9所述的防止同步包攻击的方法,其特征在于,所述方法还包括:经过所述间隔重检间隔时间后,再次统计所述IP地址对应的每秒同步数据包的数量;

如果同步数据包的数量达到同步包阈值,则将所述IP地址对应的黑名单标识位设置为第一值;

如果同步数据包的数量没有达到同步包阈值,则将所述IP地址从黑名单链表中删除。

11.一种防止同步包攻击的装置,其特征在于,所述装置包括:

设置模块,用于预先在内核注册钩子函数、创建跟踪监测链表和黑名单链表,并设置SYN数据包阀值和重检间隔时间;

第一处理模块,用于利用所述钩子函数解析客户端向服务器发送的TCP连接数据包,其中客户端和服务器第一次握手发送的所述TCP连接数据包为SYN数据包;

第二处理模块,用于当来自同一IP地址的所述SYN数据包的数量达到SYN数据包阀值时,将所述IP地址添加到所述跟踪监测链表中,对所述IP地址对应的客户端后续发送的所述TCP连接数据包进行跟踪;

第三处理模块,用于对跟踪的TCP连接数据包进行解析,如果确定所述TCP连接数据包是攻击数据包,则将所述TCP连接数据包对应的IP地址添加到所述黑名单链表中,经过所述重检间隔时间后,再次统计添加到所述黑名单链表中的所述IP地址对应的所述SYN数据包数量,如果所述SYN数据包数量达到所述SYN数据包阈值,则将所述IP地址永久保存在黑名单链表中;如果所述SYN数据包数量没有达到所述SYN数据包阈值,则将所述IP地址从所述黑名单链表中删除。

12.如权利要求11所述的防止同步包攻击的装置,其特征在于,所述跟踪监测链表包括IP地址字段和TCP连接数据包字段;所述跟踪监测链表的长度为要跟踪检测的IP地址的数目;

所述黑名单链表包括IP地址字段和黑名单标识位字段;所述黑名单标识位为第一值时,表示所述IP地址永久加入黑名单链表,所述IP地址对应的客户端发出的TCP连接数据包直接丢弃;所述黑名单标识位为第二值时,表示所述IP地址在加入黑名单链表的重检间隔时间内,所述IP地址对应的客户端发出的TCP连接数据包无法发送到服务器。

13.如权利要求11所述的防止同步包攻击的装置,其特征在于,所述同步包阀值表示每秒允许来自同一IP地址的同步数据包的最大数量;所述重检间隔时间表示第一次将IP地址加入黑名单链表后,第二次检测到同步数据包达到同步包阀值的时间。

14.如权利要求11所述的防止同步包攻击的装置,其特征在于,所述TCP连接数据包包括序列字段和确认字段;

所第二处理模块,具体用于:

在客户端和服务器的第一次握手时,截获客户端向服务器发送的第一TCP连接数据包,获取第一TCP连接数据包的序列值,设为X,其中X为整数;将第一TCP连接数据包放行发送到服务器;

在客户端和服务器的第二次握手时,截获服务器向客户端返回作为应答的第二TCP连接数据包,获取第二TCP连接数据包的确认值,所述第二TCP连接数据包的确认值为X+1;获取第二TCP连接数据包的序列值,设为Y,其中Y为整数;

判断在预设时间内客户端和服务器是否进行第三次握手;

如果截获到客户端向服务器发送的第三TCP连接数据包,获取第三TCP连接数据包序列值,所述第三TCP连接数据包的序列值为Y+1,则确定客户端不是攻击客户端;

如果没有截获到客户端向服务器发送的第三TCP连接数据包,而截获到进行第一次握手的第一TCP连接数据包,则确定客户端是攻击客户端,所述攻击客户端发出的TCP连接数据包是攻击数据包。

15.如权利要求12所述的防止同步包攻击的装置,其特征在于,所述第三处理模块,还用于:将所述IP地址对应的黑名单标识位设置为第二值;在所述间隔重检间隔时间内,如果截获到客户端向服务器发送的TCP连接数据包,判断所述客户端的IP地址是否在黑名单链表中;如果所述IP地址在黑名单链表中,则将所述TCP连接数据包进行丢弃。

16.如权利要求15所述的防止同步包攻击的装置,其特征在于,所述第三处理模块,还用于:经过所述间隔重检间隔时间后,再次统计所述IP地址对应的每秒同步数据包的数量;

如果同步数据包的数量达到同步包阈值,则将所述IP地址对应的黑名单标识位设置为第一值;如果同步数据包的数量没有达到同步包阈值,则将所述IP地址从黑名单链表中删除。