CN113660275B - 域名系统请求的处理方法、装置、电子设备和存储介质 - Google Patents
域名系统请求的处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113660275B CN113660275B CN202110950460.0A CN202110950460A CN113660275B CN 113660275 B CN113660275 B CN 113660275B CN 202110950460 A CN202110950460 A CN 202110950460A CN 113660275 B CN113660275 B CN 113660275B
- Authority
- CN
- China
- Prior art keywords
- dns
- blacklist
- source
- address
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall traversal, e.g. tunnelling or, creating pinholes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及网络安全技术领域,提供一种域名系统请求的处理方法、装置、电子设备和存储介质。所述处理方法包括:响应于DNS请求,判断DNS请求是否匹配DNS隧道黑名单或分布式反射拒绝服务DRDoS黑名单;若是,对DNS请求进行限流处理;若否,根据DNS请求查询DNS服务器,获得DNS服务器的响应数据进行返回,并缓存应答状态为域名不存在NXDomain的目标响应数据;根据目标响应数据,更新DNS隧道黑名单和/或DRDoS黑名单。本发明能够根据DNS黑名单快速识别出异常的DNS请求,进行限流处理,降低异常请求对整个网络的不良影响,并可基于NXDomain响应更新DNS黑名单,提升对DNS请求的识别准确性,并为后续的分析和处置提供依据。
Description
技术领域
本发明涉及网络安全技术领域,具体地说,涉及一种域名系统请求的处理方法、系统、电子设备和存储介质。
背景技术
域名系统(Domain Name System,简称DNS)缓存服务器用于记录解析过的域名,当接收到客户端的DNS请求时,若域名的解析结果存在于DNS缓存服务器中,则可直接调用返回;否则,需要请求DNS服务器进行域名解析。DNS服务器用于将域名转换为互联网协议(Internet Protocol,简称IP)地址,客户端根据IP地址可以访问对应的网站。
DNS服务器进行域名解析时,若解析不到域名对应的IP地址,会返回域名不存在(Non-Existent Domain,简称NXDomain)应答。NXDomain应答将导致原本正常服务的域名不可访问,影响服务稳定性。
目前的DNS缓存服务器无法处理NXDomain应答,导致如下问题:
DNS缓存服务器无法从源头对NXDomain类型的DNS攻击进行检测和防范,会加重整个网络的负担,使终端的数据和通信安全受到威胁;
DNS缓存服务器无法区分DNS隧道(Tunnel)攻击、分布式反射拒绝服务(Distributed Reflection Denial of Service,简称DRDoS)攻击等NXDomain类型的DNS攻击,不便于后续的精确分析和处置。
需要说明的是,上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本发明提供一种域名系统请求的处理方法、系统、电子设备和存储介质,能够根据DNS黑名单快速识别出异常的DNS请求,进行限流处理,降低异常请求对整个网络的不良影响,并可基于NXDomain响应更新DNS黑名单,提升对DNS请求的识别准确性,并为后续的分析和处置提供依据。
本发明的一个方面提供一种域名系统请求的处理方法,包括:响应于DNS请求,判断所述DNS请求是否匹配DNS隧道黑名单或分布式反射拒绝服务DRDoS黑名单;若是,对所述DNS请求进行限流处理;若否,根据所述DNS请求查询DNS服务器,获得所述DNS服务器的响应数据进行返回,并缓存应答状态为域名不存在NXDomain的目标响应数据;根据所述目标响应数据,更新所述DNS隧道黑名单和/或所述DRDoS黑名单。
在一些实施例中,所述更新所述DNS隧道黑名单和/或所述DRDoS黑名单,包括:自所述目标响应数据中,筛选出请求次数超过阈值的源互联网协议IP地址,获得每个源IP地址对应的二级域名和响应请求大小比;根据每个所述源IP地址对应的二级域名和响应请求大小比,判断每个所述源IP地址的攻击类型;当一源IP地址的攻击类型为DRDoS攻击,将所述源IP地址存入所述DRDoS黑名单;当一源IP地址的攻击类型为DNS隧道攻击,将所述源IP地址和对应的二级域名存入所述DNS隧道黑名单。
在一些实施例中,所述判断每个所述源IP地址的攻击类型,包括:于一源IP地址满足任一目标条件时,判断所述源IP地址的攻击类型为所述DRDoS攻击,所述目标条件包括:所述源IP地址对应的二级域名中,超过预设比例的二级域名匹配已知的DRDoS攻击域名;所述源IP地址对应的二级域名的去重数量超过预设数量;所述源IP地址对应的响应请求大小比超过预设值;于一源IP地址不满足所述目标条件时,判断所述源IP地址的攻击类型为所述DNS隧道攻击。
在一些实施例中,所述DNS隧道黑名单包括第一双向链表和第一哈希表;所述第一双向链表包括多个第一节点,每个第一节点存储一源IP地址和对应的一二级域名,多个所述第一节点基于最近最少使用算法排序;所述第一哈希表包括多个第一键值对,每个第一键值对的键为一源IP地址和对应的一二级域名且值指向所述第一双向链表的一对应第一节点;所述将所述源IP地址和对应的二级域名存入所述DNS隧道黑名单时,若所述第一双向链表的容量超过第一容量阈值,删除所述第一双向链表的尾节点元素。
在一些实施例中,所述DRDoS黑名单包括第二双向链表组、第二哈希表和第三哈希表;所述第二哈希表包括多个第二键值对,每个第二键值对的键为访问频次且值指向所述第二双向链表组中的一第二双向链表;所述第二双向链表组包括多个第二节点,每个第二节点存储一源IP地址,多个所述第二节点基于最不经常使用算法排序;所述第三哈希表包括多个第三键值对,每个第三键值对的键为一源IP地址且值指向所述第二双向链表组中的一对应第二节点;所述将所述源IP地址存入所述DRDoS黑名单时,若所述第二双向链表组的容量超过第二容量阈值,删除最小访问频次指向的一第二双向链表的尾节点元素。
在一些实施例中,所述将所述源IP地址存入所述DRDoS黑名单时,还将所述源IP地址对应的二级域名存入一缓存表;所述判断所述DNS请求是否匹配DNS隧道黑名单或分布式反射拒绝服务DRDoS黑名单,包括:将所述DNS请求的当前源IP地址和当前二级域名分别与所述DNS隧道黑名单和所述DRDoS黑名单进行匹配;于所述当前源IP地址和所述当前二级域名命中所述DNS隧道黑名单时,判断所述DNS请求匹配所述DNS隧道黑名单;于所述当前源IP地址命中所述DRDoS黑名单且所述当前二级域名命中所述缓存表时,判断所述DNS请求匹配所述DRDoS黑名单。
在一些实施例中,所述缓存应答状态为域名不存在NXDomain的目标响应数据时,将所述目标响应数据缓存至DNS缓存服务器;所述对所述DNS请求进行限流处理时,自所述DNS缓存服务器中获取所述DNS请求对应的响应数据进行丢弃或返回;所述根据所述目标响应数据时,周期性地自所述DNS缓存服务器中获取当前周期缓存的目标响应数据。
本发明的另一个方面提供一种域名系统请求的处理装置,包括:请求响应模块,用于响应于DNS请求,判断所述DNS请求是否匹配DNS隧道黑名单或分布式反射拒绝服务DRDoS黑名单;限流处理模块,用于当所述DNS请求匹配所述DNS隧道黑名单或所述DRDoS黑名单时,对所述DNS请求进行限流处理;DNS查询模块,用于当所述DNS请求不匹配所述DNS隧道黑名单和所述DRDoS黑名单时,根据所述DNS请求查询DNS服务器,获得所述DNS服务器的响应数据进行返回,并缓存应答状态为NXDomain的目标响应数据;黑名单更新模块,用于根据所述目标响应数据,更新所述DNS隧道黑名单和/或所述DRDoS黑名单。
本发明的又一个方面提供一种电子设备,包括:一处理器;一存储器,所述存储器中存储有可执行指令;其中,所述可执行指令被所述处理器执行时,实现如上述任意实施例描述的域名系统请求的处理方法。
本发明的再一个方面提供一种计算机可读的存储介质,用于存储程序,所述程序被处理器执行时实现如上述任意实施例描述的域名系统请求的处理方法。
本发明与现有技术相比的有益效果至少包括:
本发明能够根据DNS隧道黑名单和DRDoS黑名单识别DNS请求,从源头检测DNSTunnel攻击和DRDoS攻击,对识别异常的DNS请求进行限流处理,降低异常请求对整个网络的不良影响;
本发明还可根据NXDomain响应更新DNS隧道黑名单和DRDoS黑名单,提升对DNS请求的识别准确性,并实现对NXDomain响应中的异常IP和域名进行分类,为后续的分析和处置提供依据。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明一实施例中域名系统请求的处理方法的步骤示意图;
图2示出本发明一实施例中更新DNS隧道黑名单和DRDoS黑名单的步骤示意图;
图3示出本发明一实施例中DNS隧道黑名单的数据结构示意图;
图4示出本发明一实施例中DRDoS黑名单的数据结构示意图;
图5示出本发明一实施例中域名系统请求的处理方法的场景示意图;
图6示出本发明一实施例中域名系统请求的处理装置的模块示意图;
图7示出本发明一实施例中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使本发明全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
此外,附图中所示的流程仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤可以分解,有的步骤可以合并或部分合并,且实际执行的顺序有可能根据实际情况改变。具体描述时使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。需要说明的是,在不冲突的情况下,本发明的实施例及不同实施例中的特征可以相互组合。
本发明的域名系统请求的处理方法,可由部署于客户端的处理装置、部署于DNS缓存服务器的处理装置或部署于位于客户端与DNS缓存服务器之间的服务器的处理装置执行。图1示出一实施例中域名系统请求的处理方法的主要步骤,参照图1所示,包括如下步骤。
步骤S110,响应于DNS请求,判断DNS请求是否匹配DNS隧道黑名单或分布式反射拒绝服务DRDoS黑名单。
DNS请求发自于客户端,DNS请求中携带源IP地址(Source IP,即客户端的IP地址)和二级域名,根据DNS请求的源IP地址和二级域名,能够判断DNS请求是否匹配DNS Tunnel黑名单/DRDoS黑名单。DNS Tunnel黑名单中存储与DNS Tunnel攻击相关的DNS特征,DRDoS黑名单中存储与DRDoS攻击相关的DNS特征,基于NXDomain类型的DNS攻击主要体现为DNSTunnel攻击和DRDoS攻击。通过DNS Tunnel黑名单和DRDoS黑名单,能够从源头检测DNSTunnel攻击和DRDoS攻击。
步骤S120,若DNS请求匹配DNS Tunnel黑名单或DRDoS黑名单,对DNS请求进行限流处理。
若DNS请求匹配任一黑名单,表明该DNS请求属于对应攻击类型的异常请求,则按照既定的限流处置规则对该DNS请求进行处理,包括丢弃或返回该DNS请求对应的响应数据。此处DNS请求对应的响应数据,是获取自DNS缓存服务器的响应数据,无需查询DNS服务器。通过对识别为异常的DNS请求进行限流处理,能够从源头降低异常请求对整个网络的不良影响。
步骤S130,若DNS请求不匹配DNS Tunnel黑名单和DRDoS黑名单否,根据DNS请求查询DNS服务器,获得DNS服务器的响应数据进行返回,并缓存应答状态为域名不存在NXDomain的目标响应数据。
若DNS请求在黑名单中没有记录,将其视为正常请求,查询权威DNS服务器获得解析结果返回至客户端。若DNS服务器返回NXDomain类型的响应数据,则缓存至DNS缓存服务器以供后续分类处置,同时会将NXDomain响应正常返回客户端。
步骤S140,根据目标响应数据,更新DNS隧道黑名单和/或DRDoS黑名单。
目标响应数据周期性地自DNS缓存服务器中获取,根据当前周期缓存的目标响应数据,提取出与DNS Tunnel攻击和DRDoS攻击相关的DNS特征,主要包括异常IP和域名,对应更新至DNS Tunnel黑名单和DRDoS黑名单中,以提升后续对DNS请求的识别准确性,并实现对NXDomain响应中的异常IP和域名进行分类,为后续的分析和处置提供依据。
在一个实施例中,更新DNS隧道黑名单和/或DRDoS黑名单,具体包括:自目标响应数据中,筛选出请求次数超过阈值的源互联网协议IP地址,获得每个源IP地址对应的二级域名和响应请求大小比;根据每个源IP地址对应的二级域名和响应请求大小比,判断每个源IP地址的攻击类型;当一源IP地址的攻击类型为DRDoS攻击,将源IP地址存入DRDoS黑名单;当一源IP地址的攻击类型为DNS隧道攻击,将源IP地址和对应的二级域名存入DNS隧道黑名单。
响应请求大小比具体是指源IP地址对应的响应数据与请求数据的大小比值,根据每个源IP地址对应的二级域名和响应请求大小比,判断每个源IP地址的攻击类型,具体包括:于一源IP地址满足任一目标条件时,判断源IP地址的攻击类型为DRDoS攻击,目标条件包括:源IP地址对应的二级域名中,超过预设比例的二级域名匹配已知的DRDoS攻击域名;源IP地址对应的二级域名的去重数量超过预设数量;源IP地址对应的响应请求大小比超过预设值;于一源IP地址不满足目标条件时,判断源IP地址的攻击类型为DNS隧道攻击。
图2示出一实施例中更新DNS隧道黑名单和DRDoS黑名单的主要步骤,参照图2所示,包括:步骤S210,获取当前周期的NXDomain响应数据。步骤S220,筛选出请求次数超过阈值(例如10次)的源IP地址对应的数据。步骤S230a,对于每个源IP地址及对应的二级域名,结合DRDoS攻击域名表200,判断是否有超过预设比例(例如80%)的二级域名命中DRDoS攻击域名表200;若否,继续步骤S240,判断二级域名的去重数量是否超过预设数量(例如6个)。DRDoS攻击域名表200由安全管理人员定期更新维护,其中存储容易被利用为DRDoS攻击的相关域名。步骤S230b,对于每个源IP地址及对应的响应请求大小比,判断响应请求大小比是否超过预设值(例如5)。步骤S250,若步骤S230a/步骤S240/步骤S230b判断为是,则确定攻击类型为DRDoS攻击;继续步骤S260,将该源IP地址存入DRDoS黑名单。步骤S270,当所有判断均为否,即步骤S230b和步骤S240判断为否,则确定攻击类型为DNS Tunnel攻击;继续步骤S280,将该源IP地址和对应的二级域名存入DNS Tunnel黑名单。
在一个具体示例中,已知的DRDoS攻击域名例如包括aa.com和bb.org,对一组当前周期(例如3分钟)的NXDomain响应数据进行分析,将符合条件的源IP地址/二级域名归类至DNS Tunnel黑名单/DRDoS黑名单的数据情况如下表所示:
DNS Tunnel黑名单具体可采用哈希表+双向链表的数据结构,实现基于最近最少使用(Least Recently Used,简称LRU)算法的数据存储。图3示出一实施例中DNS隧道黑名单的数据结构,参照图3所示,DNS Tunnel黑名单包括第一双向链表310和第一哈希表320。第一双向链表310包括多个第一节点,图3中示出三个第一节点310a、310b和310c。每个第一节点存储一源IP地址和对应的一二级域名(Second Level Domain,简称SLD),还可存储一些其他信息,多个第一节点基于LRU算法排序。当一节点数据被访问时,LRU算法将其移至第一双向链表310的头指针指向的节点位置。第一哈希表320包括多个第一键值对,每个第一键值对的键(key)为一源IP地址和对应的一二级域名且值(value)指向第一双向链表310的一对应第一节点,即每个值对应第一双向链表310的一节点地址。对DNS Tunnel黑名单进行更新时,若第一双向链表310的容量超过其第一容量阈值,删除第一双向链表310的尾节点元素,即淘汰尾指针指向的节点元素。
采用哈希表+双向链表的DNS Tunnel黑名单数据结构,能够通过双向链表(node:{<IP,SLD>,其他信息})+链表容量capacity+链表长度size,满足元素的插入删除和队满出队的O(1)时间复杂度优化;并通过哈希表{<IP,SLD>:nodeAddress},满足元素判断存在、在链表中查找定位的O(1)时间复杂度优化。
DRDoS黑名单具体可采用双哈希表+双向链表的数据结构,实现基于最不经常使用(Least Frequently Used,简称LFU)算法的数据存储。图4示出一实施例中DRDoS黑名单的数据结构,参照图4所示,DRDoS黑名单包括第二双向链表组410、第二哈希表420和第三哈希表430。第二哈希表420包括多个第二键值对,每个第二键值对的键(key)为访问频次且值(value)指向第二双向链表组410中的一第二双向链表,即指向对应的第二双向链表的头指针。第二双向链表组410包括多个第二节点,图4中示出三个第二节点410a、410b和410c,每个第二节点存储一源IP地址,以及一些其他信息,例如对应节点数据的访问频次,多个第二节点基于LFU算法排序。当一节点数据的访问频次改变时,LFU算法会将该节点数据移至对应访问频次的第二双向链表的头指针指向的节点位置。第三哈希表430包括多个第三键值对,每个第三键值对的键(key)为一源IP地址且值(value)指向第二双向链表组410中的一对应第二节点,即每个值对应第二双向链表组410的一节点地址。对DRDoS黑名单进行更新时,若第二双向链表组410的容量超过其第二容量阈值,删除最小访问频次指向的一第二双向链表的尾节点元素,例如,会淘汰图4中访问频次1所指向的第二双向链表的尾指针指向的节点410c。
采用双哈希表+双向链表的DRDos黑名单数据结构,能够通过频次哈希表+双向链表(node:{IP,其他信息},freq:nodeList)+链表容量capacity+链表长度size,满足元素的插入删除和队满根据频率最小出队的O(1)时间复杂度优化;并通过哈希表{ip:nodeAddress},满足元素判断存在、在链表中查找定位的O(1)时间复杂度优化。
进一步地,在将源IP地址存入DRDoS黑名单时,还将该源IP地址对应的二级域名存入一缓存表,具体是一NCACHE表;判断DNS请求是否匹配DNS Tunnel黑名单或DRDoS黑名单,具体包括:将DNS请求的当前源IP地址和当前二级域名分别与DNS Tunnel黑名单和DRDoS黑名单进行匹配;于当前源IP地址和当前二级域名命中DNS Tunnel黑名单时,判断DNS请求匹配DNS Tunnel黑名单;于当前源IP地址命中DRDoS黑名单且当前二级域名命中缓存表时,判断DNS请求匹配DRDoS黑名单。
图5示出一实施例中域名系统请求的处理方法的示例场景,参照图5所示,在一示例场景中,域名系统请求的处理方法包括如下流程步骤。该些流程步骤中,与上述各实施例相同的步骤原理不再重复说明。
S510,接收到DNS请求。
S520,对DNS请求进行黑名单匹配,具体包括:S520a,判断DNS请求的源IP地址(SRCIP)和二级域名(SLD)是否匹配DNS Tunnel黑名单表520a;S520b,判断DNS请求的源IP地址(SRCIP)和二级域名(SLD)是否匹配DRDoS黑名单表520b和NCACHE表520b’。
DNS Tunnel黑名单表520a中存储的主要字段为源IP地址(SRCIP)和二级域名(SLD),采用哈希表+双向链表的数据结构实现类LRU算法的数据存储。当元素个数超过容量时,淘汰双向链表的尾元素。DRDoS黑名单表520b中存储的主要字段为源IP地址(SRCIP),采用双哈希表+双向链表的数据结构实现类LFU算法的数据存储。当元素个数超过容量时,淘汰频次哈希表指向的最小频次的双向链表的尾元素。NCACHE表520b’配合DRDoS黑名单表520b使用,若DNS请求的源IP地址命中DRDoS黑名单表520b且二级域名命中NCACHE表520b’,则判定其为DRDoS异常请求。
S530,若判断DNS请求匹配DNS Tunnel黑名单/DRDoS黑名单,代表当前DNS请求属于对应类型的异常请求,按照既定的限流处置规则进行限流处理,具体可执行S530’:丢弃或返回响应包,并执行S540:进行日志输出。
S550,若判断DNS请求未与任何黑名单匹配,则将其视为正常请求放行;并执行S560:查询权威DNS服务器,获取解析结果。若获得正常响应570a,则正常返回响应包;若获得NXDomain响应570b,默认会进行日志输出,并缓存NXDomain响应数据以供执行S570b:旁路分析写入,同时执行S580:正常返回响应包。
S570b:旁路分析写入,具体是指:周期性地分析缓存的NXDomain响应数据,根据DNS Tunnel攻击和DRDoS攻击两种攻击类型的特征,将NXDomain响应数据中的源IP地址和二级域名分为两类,分别写入到DNS Tunnel黑名单和DRDoS黑名单中,以供后续接收到DNS请求时进行更精准的匹配。
旁路分析写入的过程具体包括:对一定时间周期内的NXDomain日志进行过滤,筛选出请求次数超过阈值的源IP地址,例如筛选出3分钟内NXDomain请求超过10次的源IP地址;结合由安全管理人员定期更新维护的一容易被利用为DRDoS攻击的知名域名列表,若源IP地址对应的大多数二级域名命中知名域名列表,则判断为DRDoS类型;若源IP地址对应的二级域名去重个数超过一定阈值,例如超过10个,则判断为DRDos类型;若源IP地址对应的NXDomain响应包的大小远大于请求包的大小,例如比值达到5倍以上,则判断为DRDos类型;其他情况下,认为是DNS Tunnel类型。
实际应用时,可以根据实际的网络状况,或使用默认配置结合日志调整分类阈值,将满足指定条件的NXDomain请求响应自动录入到黑名单中。另外,也可根据服务器实际情况,分配缓存空间,当超出空间限制时自动淘汰过期元素。通过以“时间窗口内源IP地址的异常请求次数+二级域名的去重个数+二级域名是否“知名”+响应请求大小比”多维度判断,对异常请求进行分类,为后续的限流处置和日志分析的可解释性奠定基础。
上述的域名系统请求的处理方法通过独有的NXDomain异常请求匹配识别和黑名单录入淘汰机制,对NXDomain类型的请求和响应中的异常IP和域名进行分类和动态黑名单标记,实现针对后续一段时间内的DNS Tunnel和DRDos等类型的异常请求进行有效的限流处置。在黑名单录入淘汰时,通过精简各分类的特征维度、配置缓存容量以及O(1)时间复杂度的匹配算法,能够将异常请求的判断和处置做到较优的性能。对于过滤出来的异常请求,可以灵活配置限流方案,并可以将日志对接到其他的分析系统作为参考,为安全管理人员优化配置、安全运维和应急响应提供帮助。
本发明实施例还提供一种域名系统请求的处理装置,可用于实现上述任意实施例描述的域名系统请求的处理方法。上述任意实施例描述的处理方法的特征和原理均可应用至下面的处理装置实施例。在下面的处理装置实施例中,对已经阐明的关于域名系统请求的处理过程的特征和原理不再重复说明。
图6示出一实施例中域名系统请求的处理装置的主要模块,参照图6所示,本实施例中域名系统请求的处理装置600包括:请求响应模块610,用于响应于DNS请求,判断DNS请求是否匹配DNS隧道黑名单或分布式反射拒绝服务DRDoS黑名单;限流处理模块620,用于当DNS请求匹配DNS隧道黑名单或DRDoS黑名单时,对DNS请求进行限流处理;DNS查询模块630,用于当DNS请求不匹配DNS隧道黑名单和DRDoS黑名单时,根据DNS请求查询DNS服务器,获得DNS服务器的响应数据进行返回,并缓存应答状态为NXDomain的目标响应数据;黑名单更新模块640,用于根据目标响应数据,更新DNS隧道黑名单和/或DRDoS黑名单。
进一步地,域名系统请求的处理装置600还可包括实现上述各处理方法实施例的其他流程步骤的模块。例如,请求响应模块610中,可以包括判断DNS请求是否匹配DNSTunnel黑名单以及判断DNS请求是否匹配DRDoS黑名单的两个子模块;黑名单更新模块640中,可以包括将异常的源IP地址和二级域名存入DNS Tunnel黑名单以及将异常的源IP地址存入DRDoS黑名单的两个子模块。各个模块的具体原理可参照上述各处理方法实施例的描述,此处不再重复说明。
如上所述,本发明的域名系统请求的处理装置,能够根据DNS Tunnel黑名单和DRDoS黑名单识别DNS请求,从源头检测DNS Tunnel攻击和DRDoS攻击,对识别异常的DNS请求进行限流处理,降低异常请求对整个网络的不良影响;还能够根据NXDomain响应更新DNSTunnel黑名单和DRDoS黑名单,提升对DNS请求的识别准确性,并实现对NXDomain响应中的异常IP和域名进行分类,为后续的分析和处置提供依据。
本发明实施例还提供一种电子设备,包括处理器和存储器,存储器中存储有可执行指令,可执行指令被处理器执行时,实现上述任意实施例描述的域名系统请求的处理方法。
如上所述,本发明的电子设备能够根据DNS Tunnel黑名单和DRDoS黑名单识别DNS请求,从源头检测DNS Tunnel攻击和DRDoS攻击,对识别异常的DNS请求进行限流处理,降低异常请求对整个网络的不良影响;还能够根据NXDomain响应更新DNS Tunnel黑名单和DRDoS黑名单,提升对DNS请求的识别准确性,并实现对NXDomain响应中的异常IP和域名进行分类,为后续的分析和处置提供依据。
图7是本发明实施例中电子设备的结构示意图,应当理解的是,图7仅仅是示意性地示出各个模块,这些模块可以是虚拟的软件模块或实际的硬件模块,这些模块的合并、拆分及其余模块的增加都在本发明的保护范围之内。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同平台组件(包括存储单元720和处理单元710)的总线730、显示单元740等。
存储单元存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710实现上述任意实施例描述的域名系统请求的处理方法。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
存储单元720还可以包括具有一个或多个程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备800通信,外部设备800可以是键盘、指向设备、蓝牙设备等设备中的一种或多种。这些外部设备800使得用户能与该电子设备700进行交互通信。电子设备700也能与一个或多个其它计算设备进行通信,所示计算机设备包括路由器、调制解调器。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本发明实施例还提供一种计算机可读的存储介质,用于存储程序,程序被执行时实现上述任意实施例描述的域名系统请求的处理方法。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行上述任意实施例描述的域名系统请求的处理方法。
如上所述,本发明的计算机可读的存储介质能够根据DNS Tunnel黑名单和DRDoS黑名单识别DNS请求,从源头检测DNS Tunnel攻击和DRDoS攻击,对识别异常的DNS请求进行限流处理,降低异常请求对整个网络的不良影响;还能够根据NXDomain响应更新DNSTunnel黑名单和DRDoS黑名单,提升对DNS请求的识别准确性,并实现对NXDomain响应中的异常IP和域名进行分类,为后续的分析和处置提供依据。
程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,其可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括但不限于:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备,例如利用因特网服务提供商来通过因特网连接。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (8)
1.一种域名系统请求的处理方法,其特征在于,包括:
响应于DNS请求,判断所述DNS请求是否匹配DNS隧道黑名单或分布式反射拒绝服务DRDoS黑名单;
若是,对所述DNS请求进行限流处理;
若否,根据所述DNS请求查询DNS服务器,获得所述DNS服务器的响应数据进行返回,并缓存应答状态为域名不存在NXDomain的目标响应数据;
根据所述目标响应数据,更新所述DNS隧道黑名单和/或所述DRDoS黑名单,包括:
自所述目标响应数据中,筛选出请求次数超过阈值的源互联网协议IP地址,获得每个源IP地址对应的二级域名和响应请求大小比;
根据每个所述源IP地址对应的二级域名和响应请求大小比,判断每个所述源IP地址的攻击类型;
当一源IP地址的攻击类型为DRDoS攻击,将所述源IP地址存入所述DRDoS黑名单;
当一源IP地址的攻击类型为DNS隧道攻击,将所述源IP地址和对应的二级域名存入所述DNS隧道黑名单;
其中,所述判断每个所述源IP地址的攻击类型,包括:
于一源IP地址满足任一目标条件时,判断所述源IP地址的攻击类型为所述DRDoS攻击,所述目标条件包括:
所述源IP地址对应的二级域名中,超过预设比例的二级域名匹配已知的DRDoS攻击域名;
所述源IP地址对应的二级域名的去重数量超过预设数量;
所述源IP地址对应的响应请求大小比超过预设值;
于一源IP地址不满足所述目标条件时,判断所述源IP地址的攻击类型为所述DNS隧道攻击。
2.如权利要求1所述的处理方法,其特征在于,所述DNS隧道黑名单包括第一双向链表和第一哈希表;
所述第一双向链表包括多个第一节点,每个第一节点存储一源IP地址和对应的一二级域名,多个所述第一节点基于最近最少使用算法排序;
所述第一哈希表包括多个第一键值对,每个第一键值对的键为一源IP地址和对应的一二级域名且值指向所述第一双向链表的一对应第一节点;
所述将所述源IP地址和对应的二级域名存入所述DNS隧道黑名单时,若所述第一双向链表的容量超过第一容量阈值,删除所述第一双向链表的尾节点元素。
3.如权利要求1所述的处理方法,其特征在于,所述DRDoS黑名单包括第二双向链表组、第二哈希表和第三哈希表;
所述第二哈希表包括多个第二键值对,每个第二键值对的键为访问频次且值指向所述第二双向链表组中的一第二双向链表;
所述第二双向链表组包括多个第二节点,每个第二节点存储一源IP地址,多个所述第二节点基于最不经常使用算法排序;
所述第三哈希表包括多个第三键值对,每个第三键值对的键为一源IP地址且值指向所述第二双向链表组中的一对应第二节点;
所述将所述源IP地址存入所述DRDoS黑名单时,若所述第二双向链表组的容量超过第二容量阈值,删除最小访问频次指向的一第二双向链表的尾节点元素。
4.如权利要求1所述的处理方法,其特征在于,所述将所述源IP地址存入所述DRDoS黑名单时,还将所述源IP地址对应的二级域名存入一缓存表;
所述判断所述DNS请求是否匹配DNS隧道黑名单或分布式反射拒绝服务DRDoS黑名单,包括:
将所述DNS请求的当前源IP地址和当前二级域名分别与所述DNS隧道黑名单和所述DRDoS黑名单进行匹配;
于所述当前源IP地址和所述当前二级域名命中所述DNS隧道黑名单时,判断所述DNS请求匹配所述DNS隧道黑名单;
于所述当前源IP地址命中所述DRDoS黑名单且所述当前二级域名命中所述缓存表时,判断所述DNS请求匹配所述DRDoS黑名单。
5.如权利要求1所述的处理方法,其特征在于,所述缓存应答状态为域名不存在NXDomain的目标响应数据时,将所述目标响应数据缓存至DNS缓存服务器;
所述对所述DNS请求进行限流处理时,自所述DNS缓存服务器中获取所述DNS请求对应的响应数据进行丢弃或返回;
所述根据所述目标响应数据时,周期性地自所述DNS缓存服务器中获取当前周期缓存的目标响应数据。
6.一种域名系统请求的处理装置,其特征在于,包括:
请求响应模块,用于响应于DNS请求,判断所述DNS请求是否匹配DNS隧道黑名单或分布式反射拒绝服务DRDoS黑名单;
限流处理模块,用于当所述DNS请求匹配所述DNS隧道黑名单或所述DRDoS黑名单时,对所述DNS请求进行限流处理;
DNS查询模块,用于当所述DNS请求不匹配所述DNS隧道黑名单和所述DRDoS黑名单时,根据所述DNS请求查询DNS服务器,获得所述DNS服务器的响应数据进行返回,并缓存应答状态为NXDomain的目标响应数据;
黑名单更新模块,用于根据所述目标响应数据,更新所述DNS隧道黑名单和/或所述DRDoS黑名单,包括:自所述目标响应数据中,筛选出请求次数超过阈值的源互联网协议IP地址,获得每个源IP地址对应的二级域名和响应请求大小比;根据每个所述源IP地址对应的二级域名和响应请求大小比,判断每个所述源IP地址的攻击类型;当一源IP地址的攻击类型为DRDoS攻击,将所述源IP地址存入所述DRDoS黑名单;当一源IP地址的攻击类型为DNS隧道攻击,将所述源IP地址和对应的二级域名存入所述DNS隧道黑名单;
其中,所述黑名单更新模块判断每个所述源IP地址的攻击类型,包括:于一源IP地址满足任一目标条件时,判断所述源IP地址的攻击类型为所述DRDoS攻击,所述目标条件包括:所述源IP地址对应的二级域名中,超过预设比例的二级域名匹配已知的DRDoS攻击域名;所述源IP地址对应的二级域名的去重数量超过预设数量;所述源IP地址对应的响应请求大小比超过预设值;于一源IP地址不满足所述目标条件时,判断所述源IP地址的攻击类型为所述DNS隧道攻击。
7.一种电子设备,其特征在于,包括:
一处理器;
一存储器,所述存储器中存储有可执行指令;
其中,所述可执行指令被所述处理器执行时,实现如权利要求1-5任一项所述的域名系统请求的处理方法。
8.一种计算机可读的存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5任一项所述的域名系统请求的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110950460.0A CN113660275B (zh) | 2021-08-18 | 2021-08-18 | 域名系统请求的处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110950460.0A CN113660275B (zh) | 2021-08-18 | 2021-08-18 | 域名系统请求的处理方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113660275A CN113660275A (zh) | 2021-11-16 |
CN113660275B true CN113660275B (zh) | 2023-02-24 |
Family
ID=78492283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110950460.0A Active CN113660275B (zh) | 2021-08-18 | 2021-08-18 | 域名系统请求的处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113660275B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114844704B (zh) * | 2022-05-05 | 2023-06-06 | 鹏城实验室 | 基于可编程交换机的实时dns隧道检测方法及相关设备 |
CN115297083B (zh) * | 2022-08-03 | 2023-09-12 | 左道明 | 基于数据量和行为特征的域名系统隧道检测方法和系统 |
CN115412611B (zh) * | 2022-08-29 | 2024-03-01 | 北京新唐思创教育科技有限公司 | 基于dns服务器的查询方法、装置、设备及介质 |
CN115412357B (zh) * | 2022-09-02 | 2024-03-19 | 中国电信股份有限公司 | 异常设备检测方法、装置、电子设备和存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581363B (zh) * | 2013-11-29 | 2017-12-12 | 哈尔滨工业大学(威海) | 对恶意域名和非法访问的控制方法及装置 |
CN104917851B (zh) * | 2015-05-08 | 2019-01-22 | 成都亚信网络安全产业技术研究院有限公司 | 信息处理方法及dns缓存服务器 |
CN105610830A (zh) * | 2015-12-30 | 2016-05-25 | 山石网科通信技术有限公司 | 域名的检测方法及装置 |
US10097568B2 (en) * | 2016-08-25 | 2018-10-09 | International Business Machines Corporation | DNS tunneling prevention |
CN108259425A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 攻击请求的确定方法、装置及服务器 |
CN107786539A (zh) * | 2017-09-20 | 2018-03-09 | 杭州安恒信息技术有限公司 | 一种基于dns进行防cc攻击的方法 |
US11271963B2 (en) * | 2018-12-20 | 2022-03-08 | Micro Focus Llc | Defending against domain name system based attacks |
CN109547270A (zh) * | 2019-01-04 | 2019-03-29 | 烽火通信科技股份有限公司 | 一种基于vCPE的网络访问控制方法及系统 |
CN112543141B (zh) * | 2020-12-04 | 2022-03-01 | 互联网域名系统北京市工程研究中心有限公司 | Dns转发服务器容灾调度的方法和系统 |
-
2021
- 2021-08-18 CN CN202110950460.0A patent/CN113660275B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113660275A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113660275B (zh) | 域名系统请求的处理方法、装置、电子设备和存储介质 | |
US10673884B2 (en) | Apparatus method and medium for tracing the origin of network transmissions using n-gram distribution of data | |
US11012472B2 (en) | Security rule generation based on cognitive and industry analysis | |
EP2452287B1 (en) | Anti-virus scanning | |
AU2018208693B2 (en) | A system to identify machines infected by malware applying linguistic analysis to network requests from endpoints | |
US20190334948A1 (en) | Webshell detection method and apparatus | |
US10521358B2 (en) | System, apparatus and method for prioritizing the storage of content based on a threat index | |
US8260914B1 (en) | Detecting DNS fast-flux anomalies | |
EP3275151B1 (en) | Collecting domain name system traffic | |
US20150288711A1 (en) | Network analysis apparatus and method | |
US20210160260A1 (en) | Automatic Categorization Of IDPS Signatures From Multiple Different IDPS Systems | |
WO2018075819A1 (en) | Universal link to extract and classify log data | |
CN115580448A (zh) | 工控网络恶意代码检测方法、系统、设备及存储介质 | |
US10587648B2 (en) | Recursive domain name service (DNS) prefetching | |
CN114301659A (zh) | 网络攻击预警方法、系统、设备及存储介质 | |
US11190589B1 (en) | System and method for efficient fingerprinting in cloud multitenant data loss prevention | |
CN112583827A (zh) | 一种数据泄露检测方法及装置 | |
CN113329035B (zh) | 一种攻击域名的检测方法、装置、电子设备及存储介质 | |
CN115001724B (zh) | 网络威胁情报管理方法、装置、计算设备及计算机可读存储介质 | |
US11275832B2 (en) | Real-time threat alert forensic analysis | |
US20230056625A1 (en) | Computing device and method of detecting compromised network devices | |
RU2777348C1 (ru) | Вычислительное устройство и способ выявления скомпрометированных устройств на основе обнаружения DNS-туннелирования | |
US20230394136A1 (en) | System and method for device attribute identification based on queries of interest | |
WO2023073952A1 (ja) | セキュリティ分析装置、セキュリティ分析方法、及びコンピュータ読み取り可能な記録媒体 | |
US20220269737A1 (en) | Systems and methods for host name based network device pre-recognition and discovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |