DNS攻击防护方法及系统技术方案

技术编号:29497324 阅读:14 留言:0更新日期:2021-07-30 19:10
本发明专利技术公开了一种DNS攻击防护方法及系统,其中所述方法包括如下步骤:通过内核态中的钩子程序获取网卡接收到的DNS报文,所述钩子程序触发直接对数据链路接收路径的报文处理;与所述钩子程序连接的BPF程序,所述BPF程序加载于所述钩子程序中实施至少包括在网络协议栈之前执行丢弃或允许通过的处理。本发明专利技术可以减少资源开销的水平,提高恶意攻击的防护能力。

【技术实现步骤摘要】
DNS攻击防护方法及系统
本专利技术涉及计算机网络通信
,尤其涉及一种DNS攻击防护方法及系统。
技术介绍
DNS(DomainNameSystem,域名系统)提供了互联网上的一个重要服务,其本质是建立了人的名字世界和底层的二进制协议地址世界的桥梁。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串,通过域名最终得到该域名对应的IP地址的过程叫做域名解析。实现域名解析的架构包括递归DNS服务器及权威DNS服务器等,他们通常暴露在互联网的公共空间中,供任意公众去查询,因此伴随而来的也就会存在相应的恶意攻击,如DDOS(Distributeddenialofserviceattack,分布式拒绝服务攻击)攻击。现有DNS服务器及相应软件的运行机制导致需要大量的硬件资源,特别是花费内存等开销,当DNS服务器遭受大流量攻击的情况下,就会更加放大相应的开销,甚至超过处理性能的阈值,导致DNS服务器不能正常提供服务。
技术实现思路
本专利技术的目的在于提供一种DNS攻击防护方法及系统,解决了现有技术中DNS系统资源开销非常大,抗恶意攻击的能力不强,存在安全性瓶颈的技术问题。为了解决上述技术问题,本专利技术的一种DNS攻击防护方法,包括如下步骤:通过内核态中的钩子程序获取网卡接收到的DNS报文,所述钩子程序触发直接对数据链路接收路径的报文处理;与所述钩子程序连接的BPF程序,所述BPF程序加载于所述钩子程序中实施至少包括在网络协议栈之前执行丢弃或允许通过的处理。作为本专利技术上述DNS攻击防护方法的进一步改进,所述BPF程序为字节码,加载于所述钩子程序中以实现对内核态网卡驱动的更新。作为本专利技术上述DNS攻击防护方法的进一步改进,所述BPF程序执行的处理是基于数据采集分析组件的抽样分析生成的规则。作为本专利技术上述DNS攻击防护方法的进一步改进,所述数据采集分析组件加载于所述钩子程序中基于特定的归纳模型判断DNS报文的特征以确定恶意流量。作为本专利技术上述DNS攻击防护方法的进一步改进,所述BPF程序执行的处理由规则管理组件更新下发。为了解决上述技术问题,本专利技术的一种DNS攻击防护系统,包括:钩子单元,用于通过内核态中的钩子程序获取网卡接收到的DNS报文,所述钩子程序触发直接对数据链路接收路径的报文处理;BPF单元,包括与所述钩子程序连接的BPF程序,所述BPF程序加载于所述钩子程序中实施至少包括在网络协议栈之前执行丢弃或允许通过的处理。作为本专利技术上述DNS攻击防护系统的进一步改进,在所述BPF单元中,所述BPF程序为字节码,加载于所述钩子程序中以实现对内核态网卡驱动的更新。作为本专利技术上述DNS攻击防护系统的进一步改进,在所述BPF单元中,所述BPF程序执行的处理是基于数据采集分析组件的抽样分析生成的规则。作为本专利技术上述DNS攻击防护系统的进一步改进,所述数据采集分析组件加载于所述钩子程序中基于特定的归纳模型判断DNS报文的特征以确定恶意流量。作为本专利技术上述DNS攻击防护系统的进一步改进,在所述BPF单元中,所述BPF程序执行的处理由规则管理组件更新下发。与现有技术相比,本专利技术通过在数据接收最前端就开始介入处理,基于特定规则对数据进行预决策,减少不必要的内存分配,以抵抗高并发及大流量的开销,同时采用类似虚拟机的机制,来实现线上的处理决策实时更新,提高了处理决策规则的管理灵活性。本专利技术可以减少资源开销的水平,提高恶意攻击的防护能力。结合附图阅读本专利技术实施方式的详细描述后,本专利技术的其他特点和优点将变得更加清楚。附图说明为了更清楚地说明本专利技术实施方式或现有技术的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本专利技术中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术一实施方式中DNS攻击防护方法流程图。图2为本专利技术一实施方式中DNS攻击防护架构图。图3为本专利技术一实施方式中数据采集分析组件流程示意图。图4为本专利技术一实施方式中规则管理组件流程示意图。图5为本专利技术一实施方式中DNS攻击防护系统示意图。具体实施方式以下将结合附图所示的各实施方式对本专利技术进行详细描述。但这些实施方式并不限定本专利技术,本领域的普通技术人员根据这些实施方式所做出的结构、方法或功能上的变化均包含在本专利技术的保护范围内。需要说明的是,在不同的实施方式中,可能使用相同的标号或标记,但这些并不代表结构或功能上的绝对联系关系。并且,各实施方式中所提到的“第一”、“第二”也并不代表结构或功能上的绝对区分关系,这些仅仅是为了描述的方便。如图1所示,本专利技术一实施方式中DNS攻击防护方法流程图。DNS攻击防护方法,具体包括如下步骤:步骤S1、通过内核态中的钩子程序获取网卡接收到的DNS报文,所述钩子程序触发直接对数据链路接收路径的报文处理。对于现有的DNS服务的实现路径,接收到的网络报文无论是否是标准的DNS报文,都需要从接收报文到网络协议栈,再到用户态经历整个过程,而其间分配skb(socketbuffer,套接字缓存)、套接字加锁、内核/用户态切换都需要耗费相应的资源,特别是宝贵的内存资源。当DNS服务遭受到外部网络大流量攻击的情况下,就会让资源耗费成倍增长从而超出性能阈值,导致DNS服务不能正常提供服务。而在本专利技术实施方式中,则是对DNS报文接收后的路径进行优化,在内核态的网络协议栈与网卡之间设置特定的机制,对接收到的DNS报文进行快速决策及修改,通过前置诊断及分流而减少不必要流量对资源的耗费。具体地,如图2所示,对于处于网络协议栈之上工作在用户态的DNS应用服务,由于需要耗费可观的资源,因此在目标情况下需要通过过滤使DNS应用服务仅仅对正常的DNS报文进行处理,进一步,本专利技术就需要保证非法的报文不会通过网络协议栈到达DNS应用服务,将可能的攻击报文在到达网络协议栈之前就可以被分析和拦截,从而达到保护DNS应用服务的功能。另外,也可以将一些仅需要转发的报文无需经过用户态,而直接在底层的内核态实现转发。但是,这里还需要解决两个主要问题,其一,如何知道DNS报文的到达,其二、依靠什么机制判断DNS报文的处理类型,以下将详述。在本专利技术实施方式中,可以在内核态中对网卡驱动设置特定的钩子程序,钩子程序用于在操作系统调用前或执行过程中拦截DNS报文,进一步在本专利技术实施方式中,钩子程序实现对网卡接收到来的DNS报文进行收集和自定义事件处理。网卡驱动中的钩子程序在中断处理之后,网络协议栈本身实施内存分配之前,会触发对数据链路接收路径的报文处理,由于是在网络协议栈的最底层接收路径上对DNS报文进行处理,即可以理解为直接对网卡数据的流向处理,因此不必过早地在分配skb、套接字加锁本文档来自技高网...

【技术保护点】
1.一种DNS攻击防护方法,其特征在于,包括如下步骤:/n通过内核态中的钩子程序获取网卡接收到的DNS报文,所述钩子程序触发直接对数据链路接收路径的报文处理;/n与所述钩子程序连接的BPF程序,所述BPF程序加载于所述钩子程序中实施至少包括在网络协议栈之前执行丢弃或允许通过的处理。/n

【技术特征摘要】
1.一种DNS攻击防护方法,其特征在于,包括如下步骤:
通过内核态中的钩子程序获取网卡接收到的DNS报文,所述钩子程序触发直接对数据链路接收路径的报文处理;
与所述钩子程序连接的BPF程序,所述BPF程序加载于所述钩子程序中实施至少包括在网络协议栈之前执行丢弃或允许通过的处理。


2.根据权利要求1所述的DNS攻击防护方法,其特征在于,所述BPF程序为字节码,加载于所述钩子程序中以实现对内核态网卡驱动的更新。


3.根据权利要求1所述的DNS攻击防护方法,其特征在于,所述BPF程序执行的处理是基于数据采集分析组件的抽样分析生成的规则。


4.根据权利要求3所述的DNS攻击防护方法,其特征在于,所述数据采集分析组件加载于所述钩子程序中基于特定的归纳模型判断DNS报文的特征以确定恶意流量。


5.根据权利要求1所述的DNS攻击防护方法,其特征在于,所述BPF程序执行的处理由规则管理组件更新下发。


6.一种DNS攻击防护系统,其...

【专利技术属性】
技术研发人员:龚道彪李震张汉卓
申请(专利权)人:广州根链国际网络研究院有限公司
类型:发明
国别省市:广东;44

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

1