一种基于DPDK的DNS拒绝服务攻击防御方法技术

技术编号:14113206 阅读:73 留言:0更新日期:2016-12-07 09:53
本发明专利技术公开了一种基于DPDK的DNS拒绝服务攻击防御方法,包括以下步骤:DPDK读取DNS查询请求数据包;采用DNS拒绝服务检测模块检测数据包是否为攻击,如果为攻击则丢弃数据包,反之将数据包转发至KNI模块;KNI模块将数据包经内核协议栈转发至DNS解析程序,对数据包进行解析;本发明专利技术采用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拒绝服务攻击检测性能有一定的提升,但是与本专利技术的性能效果相比还有一定的差距。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡在本专利技术的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本专利技术的保护范围之内。本文档来自技高网...
一种基于DPDK的DNS拒绝服务攻击防御方法

【技术保护点】
一种基于DPDK的DNS拒绝服务攻击防御方法,其特征在于,包括以下步骤:DPDK读取DNS查询请求数据包;采用DNS拒绝服务检测模块检测数据包是否为攻击,如果为攻击则丢弃数据包,反之将数据包转发至KNI模块;KNI模块将数据包经内核协议栈转发至DNS解析程序,对数据包进行解析。

【技术特征摘要】
1.一种基于DPDK的DNS拒绝服务攻击防御方法,其特征在于,包括以下步骤:DPDK读取DNS查询请求数据包;采用DNS拒绝服务检测模块检测数据包是否为攻击,如果为攻击则丢弃数据包,反之将数据包转发至KNI模块;KNI模块将数据包经内核协议栈转发至DNS解析程序,对数据包进行解析。2.根据权利要求1所述的一种基于DPDK的DNS拒绝服务攻击防御方法,其特征在于,所述DNS拒绝服务检测模块检测过程如下:A、对DNS查询请求数据包中的数据进行合法DNS头部检测,如果不合法则...

【专利技术属性】
技术研发人员:张文宇蔡自彬叶兴皮少臣
申请(专利权)人:成都知道创宇信息技术有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1