DNS分布式拒绝服务防御方法、装置、设备及存储介质与流程

    专利2022-07-07  109


    本发明涉及安全防护技术领域,尤其涉及一种dns分布式拒绝服务防御方法、装置、设备及存储介质。



    背景技术:

    对于域名解析系统(domainnamesystem,dns)的分布式拒绝服务攻击(distributeddenialofservice,ddos),攻击者通常会针对域名解析系统的域名解析功能,向域名解析系统对应的服务器发送大量的不存在的域名的解析请求,最终导致服务器因大量dns请求而超载。由于dns的防御体系非常复杂,对于dnsddos,没有一种现有方法可以防御所有攻击,存在容易误杀正常流量、反应慢、dns防御与业务高耦合在一起导致部署不灵活的风险。

    上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



    技术实现要素:

    本发明的主要目的在于提供了一种dns分布式拒绝服务防御方法、装置、设备及存储介质,旨在解决现有技术dns分布式拒绝服务防御准确度低的技术问题。

    为实现上述目的,本发明提供了一种dns分布式拒绝服务防御方法,所述dns分布式拒绝服务防御方法包括:

    接收待检测dns数据,并对所述待检测dns数据进行流量统计,获得流量统计结果;

    根据预设静态条件对所述待检测dns数据进行静态验证,获得静态验证结果;

    根据动态验证条件对所述待检测dns数据进行动态验证,获得动态验证结果;

    根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级;

    根据所述攻击等级对所述待检测dns数据进行防御。

    可选地,所述接收待检测dns数据,并对所述待检测dns数据进行流量统计,获得流量统计结果的步骤,包括:

    接收待检测dns数据,并确定所述待检测dns数据的数据包数量与字节数;

    实时统计接收到的待检测dns数据的数据包数量与字节数,获得流量统计结果。

    可选地,所述根据预设静态条件对所述待检测dns数据进行静态验证,获得静态验证结果的步骤,包括:

    根据预设静态条件确定预设服务器区域zone列表;

    对所述待检测dns数据进行用户数据报协议udp头检测及域名dns头检测;

    在检测到所述待检测dns数据满足预设协议格式时,根据所述预设zone列表对所述待检测dns数据进行zone验证,获得静态验证结果。

    可选地,所述根据动态验证条件对所述待检测dns数据进行动态验证,获得动态验证结果的步骤,包括:

    在zone验证通过时,根据动态验证条件确定预设域名黑名单、预设动态异常特征库、预设本地服务器域名localdns列表及预设非本地服务器域名生存时间值non-localdnsttl列表;

    根据所述预设域名黑名单对待检测dns数据进行域名安全性验证;

    在验证通过时,根据所述预设动态异常特征库对所述待检测流量进行特征检测,并根据预设localdns列表及预设non-localdnsttl列表对所述待检测dns数据进行动态验证。

    可选地,所述根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级的步骤,包括:

    根据静态验证结果与动态验证结果确定异常流量大小;

    根据流量统计结果与所述异常流量大小确定的异常流量占比;

    根据所述异常流量占比确定所述待检测dns数据攻击等级。

    可选地,所述根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级的步骤之后,还包括:

    根据静态验证结果与动态验证结果确定异常流量,并获取所述异常流量的异常特征,根据所述异常特征更新预设静态条件与动态验证条件。

    可选地,所述根据所述攻击等级对所述待检测dns数据进行防御的步骤,包括:

    在所述攻击等级为第一预设攻击等级时,对所述待检测dns数据进行限速;

    在所述攻击等级为第二预设攻击等级时,对所述待检测dns数据进行非本地域名服务器nldns异常限速;

    在所述攻击等级为第三预设攻击等级时,对所述待检测dns数据进行丢弃。

    此外,为实现上述目的,本发明还提出一种dns分布式拒绝服务防御装置,所述dns分布式拒绝服务防御装置包括:

    流量统计模块,用于接收待检测dns数据,并对所述待检测dns数据进行流量统计,获得流量统计结果;

    静态验证模块,用于根据预设静态条件对所述待检测dns数据进行静态验证,获得静态验证结果;

    动态验证模块,用于根据动态验证条件对所述待检测dns数据进行动态验证,获得动态验证结果;

    等级评估模块,用于根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级;

    数据防御模块,用于根据所述攻击等级对所述待检测dns数据进行防御。

    此外,为实现上述目的,本发明还提出一种dns分布式拒绝服务防御设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的dns分布式拒绝服务防御程序,所述dns分布式拒绝服务防御程序配置为实现如上文所述的dns分布式拒绝服务防御方法的步骤。

    此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有dns分布式拒绝服务防御程序,所述dns分布式拒绝服务防御程序被处理器执行时实现如上文所述的dns分布式拒绝服务防御方法的步骤。

    本发明通过接收待检测dns数据,并对所述待检测dns数据进行流量统计,获得流量统计结果;根据预设静态条件对所述待检测dns数据进行静态验证,获得静态验证结果;根据动态验证条件对所述待检测dns数据进行动态验证,获得动态验证结果;根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级;根据所述攻击等级对所述待检测dns数据进行防御。通过静态检测与动态检测结合,提升攻击检测的准确度,防止误杀;部署灵活易扩展,能够基于本防御方法集成防御系统,所述防御系统可以作为一个独立模块与业务子系统解绑,即可单独部署在前置服务上也可与业务子系统上部署在一起,也可根据业务需要进行水平扩展增强防御水平。

    附图说明

    图1是本发明实施例方案涉及的硬件运行环境的dns分布式拒绝服务防御设备的结构示意图;

    图2为本发明dns分布式拒绝服务防御方法第一实施例的流程示意图;

    图3为本发明dns分布式拒绝服务防御方法第二实施例的流程示意图;

    图4为本发明dns分布式拒绝服务防御方法第三实施例的流程示意图;

    图5为本发明dns分布式拒绝服务防御装置第一实施例的结构框图。

    本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

    具体实施方式

    应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

    参照图1,图1为本发明实施例方案涉及的硬件运行环境的dns分布式拒绝服务防御设备结构示意图。

    如图1所示,该dns分布式拒绝服务防御设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(randomaccessmemory,ram)存储器,也可以是稳定的非易失性存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

    本领域技术人员可以理解,图1中示出的结构并不构成对dns分布式拒绝服务防御设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

    如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及dns分布式拒绝服务防御程序。

    在图1所示的dns分布式拒绝服务防御设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明dns分布式拒绝服务防御设备中的处理器1001、存储器1005可以设置在dns分布式拒绝服务防御设备中,所述dns分布式拒绝服务防御设备通过处理器1001调用存储器1005中存储的dns分布式拒绝服务防御程序,并执行本发明实施例提供的dns分布式拒绝服务防御方法。

    本发明实施例提供了一种dns分布式拒绝服务防御方法,参照图2,图2为本发明dns分布式拒绝服务防御方法第一实施例的流程示意图。

    本实施例中,所述dns分布式拒绝服务防御方法包括以下步骤:

    步骤s10:接收待检测dns数据,并对所述待检测dns数据进行流量统计,获得流量统计结果。

    需要说明的是,本实施例的执行主体为防御系统,所述防御系统可以作为一个独立模块与业务子系统解绑,即可单独部署在前置服务上也可与业务子系统上部署在一起,也可根据业务需要进行水平扩展增强防御水平。所述防御系统设置在域名解析系统dns之前,dns接收流量数据之前,所述防御系统先对所述流量数据进行检测、防御,所述流量数据即所述待检测dns数据。

    进一步地,为准确进行流量统计,所述步骤s10具体包括:接收待检测dns数据,并确定所述待检测dns数据的数据包数量与字节数;实时统计接收到的待检测dns数据的数据包数量与字节数,获得流量统计结果。

    需要说明的是,由于分布式拒绝服务攻击(distributeddenialofservice,ddos)的形式为攻击者发送大量解析请求,占用了dns的大量可用资源,具体实施中,解析请求能以数据包的形式进行发送。本实施例中,采用的协议为用户数据报协议(userdatagramprotocol,udp)/传输控制协议(transmissioncontrolprotocol,tcp),且端口为53。

    需要说明的是,统计的操作实时进行,仅统计了接收到的待检测dns数据中数据包数量与数据包对应的字节数,是对上述两数值进行加法操作,本实施例中可以运用每cpu变量(per-cpu-variable)技术进行上述步骤,性能较高。

    具体实施中,例如:防御系统的服务器有64核,cpu0作为控制核,cpu1-63为业务核,通过网卡通道队列与cpu核绑定技术,只有业务核收到待检测dns数据,每个业务核都分别统计自己累计收到的数据包数量和字节数,业务核之间不存在竞争,属于无锁统计,使得性能很快;每一秒控制核都遍历读取并累加所有业务核的统计值,得到流量统计结果,且业务核的写操作与控制核的读均不影响性能。

    步骤s20:根据预设静态条件对所述待检测dns数据进行静态验证,获得静态验证结果。

    易于理解的是,所述静态验证包括包括udp头检测、dns头检测、zone验证,udp头检测与dns头检测目的在于判断待检测dns数据的报文格式是否正确,zone验证目的在于确定待检测dns数据的区域。

    进一步地,为有效进行静态验证,所述步骤s20具体包括:根据预设静态条件确定预设服务器区域zone列表;对所述待检测dns数据进行用户数据报协议udp头检测及域名dns头检测;在检测到所述待检测dns数据满足预设协议格式时,根据所述预设zone列表对所述待检测dns数据进行zone验证,获得静态验证结果。

    易于理解的是,所述dns头检测与所述upd头检测可以统称为协议检测,两个检测结果均为正确时,协议检测结果为正确,进行下一步的zone验证。若udp头检测错误,则记录所述错误结果并丢弃待检测dns数据中对应的流量包,无需进行下一步检测;若upd头检测正确则正常进行dns头检测,dns头检测错误,则记录所述错误并丢弃待检测dns数据中对应的流量包,无需进行下一步检测。并根据流量统计获取所述待检测dns数据的特征信息,记录所述特征信息到历史特征库,根据历史特征库对预设静态条件进行训练。若所述协议检测正确,zone验证错误,也进入丢弃所述待检测dns数据中对应的流量包的步骤,并执行后续步骤。

    本实施例中,基于上述内容,所述upd头检测具体包括:检测udp端口是否是53端口,udp头的字段或长度是否符合预设协议列表中存储的udp规范,若udp格式不符合udp规范,则对应的流量数据包为畸形包,需要对所述流量数据包进行丢弃。所述dns头检测具体包括:检测dns头的状态位和问题数是否设置正确,例如:如果流量数据包类型为请求包,那么请求状态位应当置为1,若不是1,则为异常包,检测结果为dns头检测错误。

    步骤s30:根据动态验证条件对所述待检测dns数据进行动态验证,获得动态验证结果。

    需要说明的是,动态验证包括域名黑名单检测,localdns与non-localdnsttl(timetolive域名解析信息在dns中的存在时间,即,过期时间)检测,所述动态验证条件实时生成并根据验证结果进行调整。

    进一步地,为有效进行动态验证,所述步骤s30具体包括:在zone验证通过时,根据动态验证条件确定预设域名黑名单、预设动态异常特征库、预设本地服务器域名localdns列表及预设非本地服务器域名生存时间值non-localdnsttl列表;根据所述预设域名黑名单对待检测dns数据进行域名安全性验证;在验证通过时,根据所述预设动态异常特征库对所述待检测流量进行特征检测,并根据预设localdns列表及预设non-localdnsttl列表对所述待检测dns数据进行动态验证。

    需要说明的是,在所述流量数据包未通过静态验证时,静态验证结果为失败,无需进行动态验证,直接丢弃并统计。在进行动态验证的过程中,若动态验证中的其中一项为验证未通过,也同时展开防御手段,例如:丢弃或限流等。

    步骤s40:根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级。

    需要说明的是,攻击等级的确定并不是在上述三种结果均具备时进行的,而是三种结果中任一项结果为未通过时就进行攻击等级的判定,以迅速进行防御手段。

    进一步地,为准确评定攻击等级,所述步骤s40具体包括:根据静态验证结果与动态验证结果确定异常流量大小;根据流量统计结果与所述异常流量大小确定的异常流量占比;根据所述异常流量占比确定所述待检测dns数据攻击等级。

    需要说明的是,所述流量统计持续进行,控制核定期获取统计结果,根据所述统计结果能得到流量大小、异常流量的大小,从而获取及异常流量相对于总流量的占比;根据所述异常流量占比可以反映攻击的强度;可以根据所述异常流量占比进行攻击等级的评定。例如:流量占网卡或服务能力的60%为低级别,80%为中级别,90%以上为高级别。

    步骤s50:根据所述攻击等级对所述待检测dns数据进行防御。

    应当理解的是,不同的攻击等级对应不同的攻击强度,且不同的攻击等级对应不同的防御方式,对不同的攻击强度采用对应的防御手段可以有效降低同一手段应对多种攻击造成的资源占用过多或防御力度过低。

    本实施例通过静态检测与动态检测结合,提升攻击检测的准确度,防止误杀;部署灵活易扩展,能够基于本防御方法集成防御系统,所述防御系统可以作为一个独立模块与业务子系统解绑,即可单独部署在前置服务上也可与业务子系统上部署在一起,也可根据业务需要进行水平扩展增强防御水平。

    参考图3,图3为本发明dns分布式拒绝服务防御方法第二实施例的流程示意图。

    基于上述第一实施例,在本实施例中,步骤s10之前,还包括获取预设zone列表、预设域名黑名单、预设localdns列表及预设non-localdnsttl列表及预设请求控制配置,并分别构造各预设列表对应的哈希表。

    应当理解的是,哈希表是根据关键码值(keyvalue)而直接进行访问的数据结构;构造各列表对应的哈希表,并将所述哈希表中的哈希值作为各列表中元素的索引值,有利于提升在列表中查询列表中各元素的速度。构造各列表对应的哈希表的步骤在接收所述流量数据包之前。

    易于理解的是,具体实施中,上述各预设列表可以通过共享设备文件下发到服务器内核,并分别构造自己的哈希表以备后面查询比较,如果某个列表没有下发,它对应的哈希表只有表头与默认值。

    需要说明的是,本实施例中,例如:所述预设zone列表对应的哈希表的域名为zone,而静态域名黑白名单为domain,即host zone,示例:域名www.pingan.com,www为host主机记录,pingan.com即为zone,假设本实施例中的dns服务器只托管pingan.com,如果接收到的请求对应xxx.abc.com,则防御模块可以直接丢掉该请求并拒绝服务。

    步骤s40之后,还包括:

    步骤s401:根据静态验证结果与动态验证结果确定异常流量,并获取所述异常流量的异常特征,根据所述异常特征更新预设静态条件与动态验证条件。

    应当理解的是,步骤s10中流量统计包括每秒查询率(queries-per-second,qps)统计,所述每秒查询率统计可通过与已经获得的学习流量基线进行比较进行,若超出流量基线,则为流量异常,根据所述流量异常生成第一动态过滤规则,根据所述第一动态过滤规则对预设静态条件进行更新,使得静态验证可以通过不断更新的的预设静态条件对流量数据包进行验证过滤。

    应当理解的是,所述流量统计还包括dns流量统计,所述dns流量统计可以包括dnserror攻击分析,在所述dns流量统计过程中若发现异常流量,则根据所述异常流量生成第二动态过滤规则,根据所述第二动态过滤规则对动态验证条件进行更新,使得动态验证可以通过不断更新的动态验证条件对流量数据包进行验证过滤。

    易于理解的是,本实施例中异常流量识别实时进行,因而实时过滤规则进行实时更新,使得验证条件实时更新,验证过程中能够对验证过的异常流量包进行快速拦截,提升防御效果。动态域名黑名单、动态异常特征库、localdns列表及non-localdnsttl列表均根据流量统计、日志进行上层异常识别自主学习后动态更新,使得再次接收到相同的待检测dns数据的流量包时,能够快速展开防御。

    本实施例通过流量异常检测进行自主学习,更新静态验证规则,提升防御性能;通过历史特征库对动态检测进行自主学习,在同一攻击特征的流量进行攻击时能够快速发现,提升响应速度。

    参考图4,图4为本发明dns分布式拒绝服务防御方法第三实施例的流程示意图。

    基于上述各实施例,在本实施例中,所述步骤s50,具体包括:

    步骤s501:在所述攻击等级为第一预设攻击等级时,对所述待检测dns数据进行限速。

    需要说明的是,本实施例中所述攻击等级包括第一预设攻击等级、第二预设攻击等级、第三预设攻击等级等,分别对应低、中、高的防御程度,具体实施中可以划分得更为细致;无攻击等级可以对应异常流量占比小于等于30%,在无等级时,所述流量数据包的报文正常,因而采用常规限速手段;所述常规限速手段为dns正常运行时的过载保护强度的限速。

    具体实施中,第一预设攻击等级对应低等级,低等级可以对应异常流量占比大于30%且小于等于60%,在低等级时,动态验证中将待检测dns数据的流量包与动态域名黑名单进行比对验证,并对所述待检测dns数据的流量包进行nldns异常限速,在nldns异常限速前可利用dnstcp反弹技术来识别哪些正常服务器哪些是攻击者,即在收到数据包不确定真假情况下向来源服务器发送基于tcp的dns请求正常响应着即为真否则为假来达到防止误杀的作用。

    步骤s502:在所述攻击等级为第二预设攻击等级时,对所述待检测dns数据进行非本地域名服务器nldns异常限速。

    需要说明的是,第二预设攻击等级对应中等级,中等级可以对应占比大于60%且小于等于80%,在中等级时,将所述待检测dns数据对应的域名包与动态域名黑名单比较验证,并对所述待检测dns数据的流量包进行nldns异常限速及ldns异常限速,同时对数据流量包进行ldnsttl检查,根据检查结果获取待检测dns数据的流量包的特征信息,根据所述特征信息更新动态验证条件。

    步骤s503:在所述攻击等级为第三预设攻击等级时,对所述待检测dns数据进行丢弃。

    需要说明的是,第三预设攻击等级对应高等级,高等级可以对应占比大于80%,在高等级时,将所述待检测dns数据对应的域名包与动态域名黑名单比较验证,并对所述待检测dns数据的流量包包进行nldns丢弃及ldns异常限速,同时对数据流量包进行ldnsttl检查,当服务器资源或网络宽带将要被占满而不能服务时,可以丢掉部分或全部nldns请求达到丢卒保车的作用,防治服务瘫痪,根据检查结果获取待检测dns数据的流量包的特征信息,根据所述特征信息更新动态验证条件。

    本实施例通过在异常流量的占比不同的情况下,以不同的防御方式进行防御,防止误杀,防止服务瘫痪,并根据防御级别,对应更新动态验证条件,提升防御精准度,达到了良性循环。

    此外,本发明实施例还提出一种存储介质,所述存储介质上存储有dns分布式拒绝服务防御程序,所述dns分布式拒绝服务防御程序被处理器执行时实现如上文所述的dns分布式拒绝服务防御方法的步骤。

    参照图5,图5为本发明dns分布式拒绝服务防御装置第一实施例的结构框图。

    如图5所示,本发明实施例提出的dns分布式拒绝服务防御装置包括:

    流量统计模块601,用于接收待检测dns数据,并对所述待检测dns数据进行流量统计,获得流量统计结果。

    需要说明的是,本实施例的dns分布式拒绝服务防御装置可以为防御系统,所述防御系统可以作为一个独立模块与业务子系统解绑,即可单独部署在前置服务上也可与业务子系统上部署在一起,也可根据业务需要进行水平扩展增强防御水平。所述防御系统设置在域名解析系统dns之前,dns接收流量数据之前,所述防御系统先对所述流量数据进行检测、防御,所述流量数据即所述待检测dns数据。

    进一步地,为准确进行流量统计,流量统计模块601,用于接收待检测dns数据,并确定所述待检测dns数据的数据包数量与字节数;实时统计接收到的待检测dns数据的数据包数量与字节数,获得流量统计结果。

    需要说明的是,由于ddos(distributeddenialofservice,分布式拒绝服务攻击)的形式为攻击者发送大量解析请求,占用了dns的大量可用资源,具体实施中,解析请求能以数据包的形式进行发送。本实施例中,采用的协议为udp(userdatagramprotocol,用户数据报协议)/tcp(transmissioncontrolprotocol,传输控制协议),且端口为53。

    需要说明的是,统计的操作实时进行,仅统计了接收到的待检测dns数据中数据包数量与数据包对应的字节数,是对上述两数值进行加法操作,本实施例中可以运用每cpu变量(per-cpu-variable)技术进行上述步骤,性能较高。

    具体实施中,例如:防御系统的服务器有64核,cpu0作为控制核,cpu1-63为业务核,通过网卡通道队列与cpu核绑定技术,只有业务核收到待检测dns数据,每个业务核都分别统计自己累计收到的数据包数量和字节数,业务核之间不存在竞争,属于无锁统计,使得性能很快;每一秒控制核都遍历读取并累加所有业务核的统计值,得到流量统计结果,且业务核的写操作与控制核的读均不影响性能。

    静态验证模块602,用于根据预设静态条件对所述待检测dns数据进行静态验证,获得静态验证结果。

    易于理解的是,所述静态验证包括包括udp头检测、dns头检测、zone验证,udp头检测与dns头检测目的在于判断待检测dns数据的报文格式是否正确,zone验证目的在于确定待检测dns数据的区域。

    进一步地,为有效进行静态验证,静态验证模块602,用于根据预设静态条件确定预设服务器区域zone列表;对所述待检测dns数据进行用户数据报协议udp头检测及域名dns头检测;在检测到所述待检测dns数据满足预设协议格式时,根据所述预设zone列表对所述待检测dns数据进行zone验证,获得静态验证结果。

    易于理解的是,所述dns头检测与所述upd头检测可以统称为协议检测,两个检测结果均为正确时,协议检测结果为正确,进行下一步的zone验证。若udp头检测错误,则记录所述错误结果并丢弃待检测dns数据中对应的流量包,无需进行下一步检测;若upd头检测正确则正常进行dns头检测,dns头检测错误,则记录所述错误并丢弃待检测dns数据中对应的流量包,无需进行下一步检测。并根据流量统计获取所述待检测dns数据的特征信息,记录所述特征信息到历史特征库,根据历史特征库对预设静态条件进行训练。若所述协议检测正确,zone验证错误,也进入丢弃所述待检测dns数据中对应的流量包的步骤,并执行后续步骤。

    本实施例中,基于上述内容,所述upd头检测具体包括:检测udp端口是否是53端口,udp头的字段或长度是否符合预设协议列表中存储的udp规范,若udp格式不符合udp规范,则对应的流量数据包为畸形包,需要对所述流量数据包进行丢弃。所述dns头检测具体包括:检测dns头的状态位和问题数是否设置正确,例如:如果流量数据包类型为请求包,那么请求状态位应当置为1,若不是1,则为异常包,检测结果为dns头检测错误。

    动态验证模块603,用于根据动态验证条件对所述待检测dns数据进行动态验证,获得动态验证结果。

    需要说明的是,动态验证包括域名黑名单检测,localdns与non-localdnsttl(timetolive域名解析信息在dns中的存在时间,即,过期时间)检测,所述动态验证条件实时生成并根据验证结果进行调整。

    进一步地,为有效进行动态验证,动态验证模块603,用于在zone验证通过时,根据动态验证条件确定预设域名黑名单、预设动态异常特征库、预设本地服务器域名localdns列表及预设非本地服务器域名生存时间值non-localdnsttl列表;根据所述预设域名黑名单对待检测dns数据进行域名安全性验证;在验证通过时,根据所述预设动态异常特征库对所述待检测流量进行特征检测,并根据预设localdns列表及预设non-localdnsttl列表对所述待检测dns数据进行动态验证。

    需要说明的是,在所述流量数据包未通过静态验证时,静态验证结果为失败,无需进行动态验证,直接丢弃并统计。在进行动态验证的过程中,若动态验证中的其中一项为验证未通过,也同时展开防御手段,例如:丢弃或限流等。

    等级评估模块604,用于根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级。

    需要说明的是,攻击等级的确定并不是在上述三种结果均具备时进行的,而是三种结果中任一项结果为未通过时就进行攻击等级的判定,以迅速进行防御手段。

    进一步地,为准确评定攻击等级,等级评估模块604,用于根据静态验证结果与动态验证结果确定异常流量大小;根据流量统计结果与所述异常流量大小确定的异常流量占比;根据所述异常流量占比确定所述待检测dns数据攻击等级。

    需要说明的是,所述流量统计持续进行,控制核定期获取统计结果,根据所述统计结果能得到流量大小、异常流量的大小,从而获取及异常流量相对于总流量的占比;根据所述异常流量占比可以反映攻击的强度;可以根据所述异常流量占比进行攻击等级的评定。例如:流量占网卡或服务能力的60%为低级别,80%为中级别,90%以上为高级别。

    数据防御模块605,用于根据所述攻击等级对所述待检测dns数据进行防御。

    应当理解的是,不同的攻击等级对应不同的攻击强度,且不同的攻击等级对应不同的防御方式,对不同的攻击强度采用对应的防御手段可以有效降低同一手段应对多种攻击造成的资源占用过多或防御力度过低。

    本实施例通过静态检测与动态检测结合,提升攻击检测的准确度,防止误杀;部署灵活易扩展,能够基于本防御方法集成防御系统,所述防御系统可以作为一个独立模块与业务子系统解绑,即可单独部署在前置服务上也可与业务子系统上部署在一起,也可根据业务需要进行水平扩展增强防御水平。

    基于本发明上述dns分布式拒绝服务防御装置第一实施例,提出本发明dns分布式拒绝服务防御装置的第二实施例。

    在本实施例中,进一步地,所述装置还包括自学习模块,用于根据静态验证结果与动态验证结果确定异常流量,并获取所述异常流量的异常特征,根据所述异常特征更新预设静态条件与动态验证条件。

    进一步地,所述数据防御模块,还用于在所述攻击等级为第一预设攻击等级时,对所述待检测dns数据进行限速;

    在所述攻击等级为第二预设攻击等级时,对所述待检测dns数据进行非本地域名服务器nldns异常限速;

    在所述攻击等级为第三预设攻击等级时,对所述待检测dns数据进行丢弃。

    本发明dns分布式拒绝服务防御装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。

    需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

    上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

    通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的dns分布式拒绝服务防御方法。

    以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。


    技术特征:

    1.一种dns分布式拒绝服务防御方法,其特征在于,所述dns分布式拒绝服务防御方法包括:

    接收待检测dns数据,并对所述待检测dns数据进行流量统计,获得流量统计结果;

    根据预设静态条件对所述待检测dns数据进行静态验证,获得静态验证结果;

    根据动态验证条件对所述待检测dns数据进行动态验证,获得动态验证结果;

    根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级;

    根据所述攻击等级对所述待检测dns数据进行防御。

    2.如权利要求1所述的dns分布式拒绝服务防御方法,其特征在于,所述接收待检测dns数据,并对所述待检测dns数据进行流量统计,获得流量统计结果的步骤,包括:

    接收待检测dns数据,并确定所述待检测dns数据的数据包数量与字节数;

    实时统计接收到的待检测dns数据的数据包数量与字节数,获得流量统计结果。

    3.如权利要求1所述的dns分布式拒绝服务防御方法,其特征在于,所述根据预设静态条件对所述待检测dns数据进行静态验证,获得静态验证结果的步骤,包括:

    根据预设静态条件确定预设服务器区域zone列表;

    对所述待检测dns数据进行用户数据报协议udp头检测及域名dns头检测;

    在检测到所述待检测dns数据满足预设协议格式时,根据所述预设zone列表对所述待检测dns数据进行zone验证,获得静态验证结果。

    4.如权利要求3所述的dns分布式拒绝服务防御方法,其特征在于,所述根据动态验证条件对所述待检测dns数据进行动态验证,获得动态验证结果的步骤,包括:

    在zone验证通过时,根据动态验证条件确定预设域名黑名单、预设动态异常特征库、预设本地服务器域名localdns列表及预设非本地服务器域名生存时间值non-localdnsttl列表;

    根据所述预设域名黑名单对待检测dns数据进行域名安全性验证;

    在验证通过时,根据所述预设动态异常特征库对所述待检测流量进行特征检测,并根据预设localdns列表及预设non-localdnsttl列表对所述待检测dns数据进行动态验证。

    5.如权利要求4所述的dns分布式拒绝服务防御方法,其特征在于,所述根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级的步骤,包括:

    根据静态验证结果与动态验证结果确定异常流量大小;

    根据流量统计结果与所述异常流量大小确定的异常流量占比;

    根据所述异常流量占比确定所述待检测dns数据攻击等级。

    6.如权利要求1所述的dns分布式拒绝服务防御方法,其特征在于,所述根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级的步骤之后,还包括:

    根据静态验证结果与动态验证结果确定异常流量,并获取所述异常流量的异常特征,根据所述异常特征更新预设静态条件与动态验证条件。

    7.如权利要求1至6任一项所述的dns分布式拒绝服务防御方法,其特征在于,所述根据所述攻击等级对所述待检测dns数据进行防御的步骤,包括:

    在所述攻击等级为第一预设攻击等级时,对所述待检测dns数据进行限速;

    在所述攻击等级为第二预设攻击等级时,对所述待检测dns数据进行非本地域名服务器nldns异常限速;

    在所述攻击等级为第三预设攻击等级时,对所述待检测dns数据进行丢弃。

    8.一种dns分布式拒绝服务防御装置,其特征在于,所述dns分布式拒绝服务防御装置包括:

    流量统计模块,用于接收待检测dns数据,并对所述待检测dns数据进行流量统计,获得流量统计结果;

    静态验证模块,用于根据预设静态条件对所述待检测dns数据进行静态验证,获得静态验证结果;

    动态验证模块,用于根据动态验证条件对所述待检测dns数据进行动态验证,获得动态验证结果;

    等级评估模块,用于根据所述流量统计结果、所述静态验证结果与所述动态验证结果确定所述待检测dns数据的攻击等级;

    数据防御模块,用于根据所述攻击等级对所述待检测dns数据进行防御。

    9.一种dns分布式拒绝服务防御设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的dns分布式拒绝服务防御程序,所述dns分布式拒绝服务防御程序配置为实现如权利要求1至7中任一项所述的dns分布式拒绝服务防御方法的步骤。

    10.一种存储介质,其特征在于,所述存储介质上存储有dns分布式拒绝服务防御程序,所述dns分布式拒绝服务防御程序被处理器执行时实现如权利要求1至7任一项所述的dns分布式拒绝服务防御方法的步骤。

    技术总结
    本发明涉及安全防护技术领域,公开了一种DNS分布式拒绝服务防御方法、装置、设备及存储介质,该方法包括:接收待检测DNS数据,并对待检测DNS数据进行流量统计,获得流量统计结果;根据预设静态条件对待检测DNS数据进行静态验证,获得静态验证结果;根据动态验证条件对待检测DNS数据进行动态验证,获得动态验证结果;根据流量统计结果、静态验证结果与动态验证结果确定待检测DNS数据的攻击等级;根据攻击等级对待检测DNS数据进行防御。上述方法通过将静态检测与动态检测相结合对DNS数据进行检测,提升了攻击检测的准确度,同时,通过攻击等级对DNS数据进行防御,解决了DNS分布式拒绝服务防御准确度低的问题。

    技术研发人员:莫生平
    受保护的技术使用者:平安科技(深圳)有限公司
    技术研发日:2020.12.01
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-7750.html

    最新回复(0)