一种基于DPDK的DNS拒绝服务攻击防御方法与流程

文档序号:11960127阅读:692来源:国知局
一种基于DPDK的DNS拒绝服务攻击防御方法与流程

本发明涉及一种拒绝服务攻击防御方法,具体涉及一种基于DPDK的DNS拒绝服务攻击防御方法。



背景技术:

DNS是一项因特网基础服务,作为域名与IP地址相互映射的分布式数据库,使用户能够方便地访问互联网;当用户通过域名访问某一站点时,会先发起一条DNS查询请求到DNS服务器,查询域名对应的IP地址,然后用户利用该IP地址去访问服务器的资源;然而一些非法或恶意用户通过控制大量的僵尸网络,发起伪造的查询请求到DNS服务器,造成服务器无法处理正常的请求,以达到攻击的目的;目前DNS服务器大多采用Unix(Unix-like)系统平台,现有DNS拒绝服务攻击的防御方法是在系统层面上限速或封堵查询请求,即从NIC(网卡)接收查询请求数据包,经过内核态的缓冲区和驱动程序处理后,将数据拷贝至用户态的DNS检测程序,若检测发现DDoS攻击,则执行预先设置的限速或封堵动作,丢弃数据包,若为正常的合法查询请求则将请求转发到后端的DNS服务程序完成解析;现有的DNS拒绝服务攻击防御方法中所有的DNS查询请求数据包均要经过内核态的协议栈处理后再交由用户态的DDoS检测程序,包括伪造的不合法请求;使得内核协议栈成为性能的瓶颈,并且单机处理能力相对较低,尤其受大量DDoS攻击时,DNS服务器的服务质量大大降低,无法满足快速发展的业务需求。



技术实现要素:

本发明提供一种提高DNS服务器的单机处理能力,性能更好的基于DPDK的DNS拒绝服务攻击防御方法。

本发明采用的技术方案是:一种基于DPDK的DNS拒绝服务攻击防御方法,包括以下步骤:

DPDK读取DNS查询请求数据包;

采用DNS拒绝服务检测模块检测数据包是否为攻击,如果为攻击则丢弃数据包,反之将数据包转发至KNI模块;

KNI模块将数据包经内核协议栈转发至DNS解析程序,对数据包进行解析。

进一步的,所述DNS拒绝服务检测模块检测过程如下:

A、对DNS查询请求数据包中的数据进行合法DNS头部检测,如果不合法则丢弃数据包,反之转入步骤B;

B、获取DNS查询数据,检测其是否为服务范围内的域名,如果不在服务范围内则丢弃数据包,反之转入步骤C;

C、检测数据是否正在受到DDoS攻击,如果发现攻击则执行封堵或限速,反之转入步骤D;

D、检测查询速率是否达到设定的阈值,如果超过设定的阈值,则执行封堵或限速,反之转入步骤E;

E、转发数据包;

步骤C和步骤D中,如果执行封堵则丢弃所有数据包,解封转入步骤E;如果执行限速则丢弃部分数据使查询速率限制在阈值范围内,预定的执行时间到期后解封转入步骤E。

本发明的有益效果是:

(1)本发明采用DPDK应用处理,提高了DNS服务器的单机处理能力,使得能够防御规模更大的DNS拒绝服务攻击;

(2)本发明减少了开发和维护成本,成本低;

(3)本发明对攻击执行不同的防御动作,并且达到执行时间后可实现自动解封。

附图说明

图1为本发明的流程结构图。

图2为本发明中DNS拒绝服务检测模块的工作流程图。

图3为现有DNS拒绝服务攻击防御方法流程图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步说明。

如图2所示,一种基于DPDK的DNS拒绝服务攻击防御方法,包括以下步骤:

DPDK读取DNS查询请求数据包;

采用DNS拒绝服务检测模块检测数据包是否为攻击,如果为攻击则丢弃数据包,反之将数据包转发至KNI模块;

KNI模块将数据包经内核协议栈转发至DNS解析程序,对数据包进行解析。

一般DPDK是从NIC读取DNS查询请求的数据包,然后采用DNS拒绝服务检测模块检测数据包是否为攻击,如果为攻击则丢弃数据包,如果不是攻击则将数据包转发至KNI模块;KNI模块将数据包转发至内核协议栈,内核协议栈处理并转发数据包至DNS解析程序;DNS解析程序解析请求数据包,查询数据,将查询结果构造为相应数据包并返回给内核协议栈;内核协议栈处理并转发相应数据包至KNI模块,KNI模块处理,并向网卡NIC写入数据相应包,网卡NIC发送数据至用户。

进一步的,其特征在于,所述DNS拒绝服务检测模块检测过程如下:

A、对DNS查询请求数据包中的数据进行合法DNS头部检测,如果不合法则丢弃数据包,反之转入步骤B;

B、获取DNS查询数据,检测其是否为服务范围内的域名,如果不在服务范围内则丢弃数据包,反之转入步骤C;

C、检测数据是否正在受到DDoS攻击,如果发现攻击则执行封堵或限速,反之转入步骤D;

D、检测查询速率是否达到设定的阈值,如果超过设定的阈值,则执行封堵或限速,反之转入步骤E;

E、转发数据包;

步骤C和步骤D中,如果执行封堵则丢弃所有数据包,解封转入步骤E;如果执行限速则丢弃部分数据使查询速率限制在阈值范围内,预定的执行时间到期后解封转入步骤E。

检测前对服务范围内的域名进行防御配置,预设报文速率阈值、执行动作及执行时间;执行动作包括限速、封堵和正常;当某域名在单位时间内的查询速率超过预设阈值时,则执行限速或封堵动作,当达到执行时间时自动进行解封处理;当检测到攻击时,会执行限速或封堵动作,两个动作均会在时间到期后自动解封;“封堵”动作是所有的请求均会被丢弃,而“限速”动作是把请求速度限制在阈值范围内,就是说会丢弃一部分,放行一部分;防御配置可以根据实际需要进行自定义,如报文速率阈值、执行时间等可自行设定,用户可根据实际攻击情况调节防御配置。

本发明利用DPDK的轮询模式、缓存、大页表管理和无锁机制等特性,提高DNS服务器的单机处理能力,性能达到千万级别,使得能够防御更大规模的DNS拒绝服务攻击,同时相比于现有技术,减少了大量的开发和维护成本。

文中,DNS(Domain Name Server)域名系统,DDoS(Distributed Denial of Service)分布式拒绝服务攻击,DPDK(Data Plane Development Kit)数据平面开发套件,KNI(Kernel NIC Interface)一种与内核协议栈交互的接口,IP地址(Internet Protocol Address),一种互联网协议地址,NIC(Network interface controller)网络适配器,俗称网卡,Unix为现有的一种计算机操作系统,具有多任务、多用户的特征。

目前,也有将DNS拒绝服务攻击检测程序实现为内核模块,由内核模块进行检测攻击并完成防御;与本发明的方法相比,开发内核模块的复杂性非常高,同时后期维护的成本投入也很大;虽然对于DNS拒绝服务攻击检测性能有一定的提升,但是与本发明的性能效果相比还有一定的差距。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1