CN110855636A - 一种dns劫持的检测方法和装置 - Google Patents
一种dns劫持的检测方法和装置 Download PDFInfo
- Publication number
- CN110855636A CN110855636A CN201911025755.6A CN201911025755A CN110855636A CN 110855636 A CN110855636 A CN 110855636A CN 201911025755 A CN201911025755 A CN 201911025755A CN 110855636 A CN110855636 A CN 110855636A
- Authority
- CN
- China
- Prior art keywords
- dns
- domain name
- hijacking
- sub
- false
- 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.)
- Granted
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/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
-
- 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
- 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/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
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解析请求,第一DNS服务器为真实DNS服务器;检查DNS响应结果,并根据第一测试子域名集合中的各测试子域名是否得到解析,判断是否存在DNS劫持;如果有测试子域名得到解析,则存在DNS劫持,并确定DNS劫持的关键字。本发明通过主动DNS请求探测,使用大量虚假子域名来进行批量探测,不仅可快速、准确地检测出是否存在DNS劫持,还可识别出DNS劫持的匹配关键字。
Description
【技术领域】
本发明属于网络安全技术领域,具体涉及一种DNS劫持的检测方法和装置。
【背景技术】
域名系统(DomainNameSystem,简写为DNS)是一个层次树状结构的联机分布式数据库系统,由以下几种角色组成:DNS客户端、转发DNS服务器、解析DNS服务器、权威域名服务器,如图1所示;其中,解析DNS服务器也叫做递归DNS服务器。
DNS客户端,是指进行DNS请求的程序,如浏览器、操作系统、dig命令工具等,它负责发起DNS请求,发起DNS请求的对象是一个转发DNS服务器或者一个解析DNS服务器。
转发DNS服务器,是指本身不负责解析域名到IP地址,而是把DNS请求转发给另外一个转发DNS服务器或者解析DNS服务器。一个典型的关于转发DNS服务器的场景是,家庭用的路由器往往会设置DNS服务器的地址为192.168.1.1,这里的DNS服务器就是转发DNS服务器。其中,转发DNS服务器一般使用dnsmasq工具搭建。
解析DNS服务器,是负责解析域名的DNS服务器,它会执行递归查找操作来解析一个目标域名,同时本身也对DNS记录进行缓存;其中,解析DNS服务器一般使用BIND工具软件来搭建。
权威域名服务器,是负责对某一个域名Zone进行维护的,该域名Zone内部所有的子域名相关记录都由此服务器来定义和维护。此域名系统组成了一个树形的结构,根域名服务器位于顶部,其次是顶级域名服务器(或一级域名服务器),然后是二级域名服务器,依次类推,如图2所示。其中,权威域名DNS服务器一般使用BIND工具软件来搭建,此软件也可以搭建解析DNS服务器。
DNS劫持又称为域名劫持,是指修改域名的DNS记录,让DNS客户端得到错误的DNS解析结果。最常见的DNS记录就是A记录,也就是域名到IP地址的记录,最常见的DNS劫持是修改某个域名所对应的IP地址,把客户端的流量引导到错误的IP地址上。DNS劫持的方法有很多,以一个典型的浏览器访问网站的场景为例,可以发生DNS劫持的地方有主机hosts文件修改、网络驱动程序修改网络报文、网络设备修改DNS报文、DNS服务器缓存污染等等。
常见的发生在网络中的DNS劫持方法是DNS服务器缓存污染,可发生在转发DNS服务器或者解析DNS服务器上;另一种比较常见的DNS劫持方法是直接做DNS报文修改,可以是修改DNS请求报文,也可以是修改DNS响应报文。DNS劫持是有针对性的目标的,这里关于如何匹配目标域名,一般有两种方式,一是精确匹配完整的目标域名;二是关键字匹配,即提供匹配关键字,只要在域名中匹配到了关键字就认为此域名匹配。
DNS服务器作为互联网的关键基础服务,一旦出现DNS劫持,将影响互联网的大部分业务的正常运行,从而使用户无法进行正常的网络访问,甚至给用户造成经济损失。因此,DNS劫持已成为影响网络安全的主要问题之一,如何有效地对DNS劫持进行检测已经受到广泛关注,有利于后续防劫持工作的展开。目前,已经出现许多用于DNS劫持的检测方法,例如,某些网站、搜索引擎等的经营者通常依靠论坛等公共平台的用户反馈信息,联系用户以复现被劫持现象,从而截图取证,但这种方法无法及时主动地发现并复现劫持,而且人力成本高、效率低。再例如,IOT安全防御平台采用终端解析结果与云端DNS解析结果对比的方法来判断是否发生DNS劫持,但是当云端DNS解析服务器被劫持或者IOT设备与云端分析服务器地理位置相差太大时,有可能出现解析结果不完全或者不一致的情况,使检测产生误报或漏报。而且,目前这些传统检测方法也难以有效地确定DNS劫持匹配关键字。因此,仍需一种高效率、高准确率的方法来进行DNS劫持的检测。
【发明内容】
本发明需要解决的技术问题是:
DNS劫持会影响互联网的大部分业务的正常运行,需要及时进行检测,而传统的DNS劫持检测效率低、准确率低,且难以有效地确定DNS劫持匹配关键字,因此仍需一种高效率、高准确率的方法来进行DNS劫持检测。
本发明通过如下技术方案达到上述目的:
第一方面,本发明提供了一种DNS劫持的检测方法,包括:
随机生成一个不存在的虚假域名,作为测试主域名;
基于所述测试主域名生成多个测试子域名,所述多个测试子域名形成第一测试子域名集合;其中,各测试子域名的上级域名为所述测试主域名;
使用所述第一测试子域名集合,向第一DNS服务器发起批量DNS解析请求;其中,所述第一DNS服务器为任一真实DNS服务器;
检查DNS响应结果,并根据所述第一测试子域名集合中的各测试子域名是否得到解析,判断当前环境中是否存在DNS劫持;
其中,如果每个测试子域名都未得到解析,则不存在DNS劫持;如果有一个或多个测试子域名得到解析,则存在DNS劫持,并进一步根据得到解析的一个或多个测试子域名确定DNS劫持的关键字。
优选的,当存在DNS劫持时,所述方法还包括:
将得到解析的所述一个或多个测试子域名收集起来,形成第二测试子域名集合;
使用所述第二测试子域名集合,向第二DNS服务器发起批量DNS解析请求;其中,所述第二DNS服务器为任一虚假DNS服务器;
检查DNS响应结果,并根据所述第二测试子域名集合中的各测试子域名是否得到解析,判断DNS劫持发生的具体路径;
其中,如果所述第二测试子域名集合中存在测试子域名得到解析,则DNS劫持发生在DNS请求路径上;如果所述第二测试子域名集合中的每个测试子域名都未得到解析,则DNS劫持发生在DNS响应路径上。
优选的,所述虚假DNS服务器采用随机生成IP地址的方式来生成。
优选的,在所述使用所述第二测试子域名集合,向第二DNS服务器发起批量DNS解析请求之前,所述方法还包括:
通过随机生成一个IP地址选定一个虚假DNS服务器之后,使用dig工具检查在该虚假DNS服务器上是否确实没有提供DNS服务;
如果该虚假DNS服务器上确实没有提供DNS服务,则将该虚假DNS服务器作为第二DNS服务器;否则,将重新选定另一虚假DNS服务器。
优选的,所述虚假域名采用随机字符串的形式来生成。
优选的,所述随机生成一个不存在的虚假域名之后,所述方法还包括:
使用whois工具查询该域名,检查此域名是否被人注册;
使用dig工具解析该域名的IP地址,检查该域名目前是否能被解析;
如果该域名未经人注册,且目前无法被解析,则将该域名作为测试主域名;否则,重新随机生成一个虚假域名。
优选的,在所述第一测试子域名集合中,所述多个测试子域名包括:
中国区网站域名top 100万、alexa域名top 100万、多个中国单词的汉语拼音以及多个英文单词中的一项或多项;其中,所述网站域名包含带www的域名和不带www的域名两种版本。
优选的,在所述第一测试子域名集合中,所述测试子域名的数量在百万级别以上。
优选的,所述第一DNS服务器为任意一个真实的转发DNS服务器或解析DNS服务器。
第二方面,本发明还提供了一种DNS劫持的检测装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述的DNS劫持的检测方法。
本发明的有益效果是:
本发明主要是针对发生在网络中的DNS报文修改类型的DNS劫持,通过主动DNS请求探测的方式来识别DNS劫持,过程中使用大量的虚假子域名来进行批量探测,观察响应结果,不仅可快速、准确地有效检测出当前环境中是否存在DNS劫持,还可识别出DNS劫持的匹配关键字;进一步地,通过虚假子域名结合虚假DNS服务器,还可判断DNS劫持发生在DNS请求路径还是DNS响应路径中。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种DNS系统的角色组成示意图;
图2为一种权威域名系统的树形结构示意图;
图3为本发明实施例提供的一种DNS劫持的检测方法流程图;
图4为本发明实施例提供的一种正常情况下利用虚假域名向真实DNS服务器发起DNS请求时的运行界面示意图;
图5为本发明实施例提供的一种存在DNS劫持时利用虚假域名向真实DNS服务器发起DNS请求时的运行界面示意图;
图6为本发明实施例提供的一种存在DNS劫持时利用虚假域名向虚假DNS服务器发起DNS请求时的运行界面示意图;
图7为本发明实施例提供的一种DNS劫持的检测装置架构图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。
实施例1:
本发明实施例提供了一种DNS劫持的检测方法,主要是针对发生在网络中的DNS报文修改类型的DNS劫持。在进行检测方法的介绍之前,先对本发明所述检测方法的检测原理和检测思路进行介绍。其中,本发明提供的所述检测方法主要基于以下检测原理:
在DNS报文传输的整个流程中,如果某个环节发生了修改DNS报文的情况,便会得到虚假的DNS解析记录;例如,如果DNS请求是解析某个域名的IP地址,便会得到一个虚假的IP地址。真实的DNS请求流程和被劫持的DNS请求流程在许多方面都有差别,其中最重要的不同在于对虚假域名和虚假DNS服务器的处理上。如果我们请求一个不存在的域名,正常的未被劫持的DNS请求会返回此域名不存在;当DNS劫持发生时,劫持的逻辑是使用关键字来匹配域名,如果匹配成功,则生成一个虚假的DNS响应报文返回给客户端。此时,虽然域名并不存在,但是仍然命中了劫持的匹配逻辑,因此返回一个虚假的IP地址,导致一个虚假的域名被成功地进行了DNS解析。当DNS没有被劫持时,是不会发生此种情况的,只有当DNS流量被劫持时,才会发生此种现象,因此我们可以据此来判断是否发生了DNS劫持。
进一步地,DNS劫持可以是缓存污染,也可以是DNS报文修改。DNS缓存污染是发生在DNS请求路径上的;DNS报文修改,理论上可以发生在DNS请求报文或者DNS响应报文中。如果DNS报文修改是发生在DNS请求报文中,即截获到DNS请求报文,丢弃掉请求报文并生成相应的DNS响应报文,那么此时DNS请求报文就没有到达DNS服务器,直接在中途就被丢弃了;如果DNS报文修改是发生在DNS响应报文,即截获到DNS响应报文并修改DNS响应报文,这种情况下,DNS请求报文已经到达了DNS服务器,并且DNS服务器返回了DNS响应报文。
基于上述检测原理,本发明的检测思路如下:第一步,使用不存在的域名向真实的DNS解析服务器发起DNS解析请求,这里我们来解析域名的IP地址,如果得到解析结果就说明发生了DNS劫持;第二步,当不存在的域名被真实DNS服务器返回了IP地址,那么我们使用虚假的DNS解析服务器解析此域名,如果虚假DNS服务器同样返回了DNS解析结果,就说明不但发生了DNS劫持,而且DNS劫持发生在DNS请求路径上。在此流程中,一个不存在的域名得到解析,肯定是命中了DNS劫持的某个关键字,基于这种思路,我们可以通过生成大量的不存在域名,对它们进行DNS请求,让DNS劫持发生,通过观察哪些域名得到了解析,就可以得到哪些关键字是DNS劫持时匹配的关键字。
基于上述检测思路,本发明实施例提供的DNS劫持的检测方法可参考图3,具体包括以下步骤:
步骤201,随机生成一个不存在的虚假域名,作为测试主域名。
所述虚假域名需保证该域名没有被购买注册,且不能被DNS解析,具体可采用随机字符串的形式来生成,如asdfasldflkjalskdf.com。在随机生成一个虚假域名之后,需要验证该域名是否确实为一个不存在的虚假域名,验证方法具体如下:首先使用whois工具查询该域名,检查此域名是否被人注册;其次使用dig工具解析该域名的IP地址,检查该域名目前是否能被解析。如果验证后发现该域名未经人注册,且目前无法被解析,则验证通过,确定该域名确实为一个不存在的虚假域名,进而可将其作为测试主域名;否则,则需要重新随机生成一个虚假域名,并继续进行验证,直至验证通过,将对应生成的域名作为测试主域名。
步骤202,基于所述测试主域名生成多个测试子域名,所述多个测试子域名形成第一测试子域名集合。
这一步其实是生成一个子域名列表,即所述第一测试子域名集合,列表中各测试子域名的上级域名均为步骤201中生成的所述测试主域名。生成子域名列表并没有什么强制要求,但是原则是测试子域名的数量越多越好,此列表包含的测试子域名数量越多,那么能命中DNS劫持关键字的概率就越大。通常,在所述第一测试子域名集合中,所述测试子域名的数量最好可达到百万级别以上。
在可选的实施例中,建议所述多个测试子域名包括:中国区网站域名top 100万、alexa域名top 100万、多个中国单词的汉语拼音(最好选用所有中国常见单词的汉语拼音)以及多个英文单词(最好选用所有常见英文单词)中的一项或多项;其中,所述网站域名应包含带www的域名和不带www的域名两种版本。DNS劫持的目的往往是要劫持某个或某些域名,还有就是为了阻断某一种功能,如阻断vpn功能,那么关键字可能是openvpn或者webproxy。
步骤203,使用所述第一测试子域名集合,向第一DNS服务器发起批量DNS解析请求。
其中,所述第一DNS服务器为任一真实可用的DNS服务器,具体可以是任意一个真实的转发DNS服务器或解析DNS服务器。使用所述第一测试子域名集合向第一DNS服务器发起批量DNS解析请求,是指将所述步骤202中生成的所有测试子域名,都向所述第一DNS服务器请求一遍,以便使用所述第一DNS服务器去解析所述第一测试子域名集合中的每一个测试子域名。
步骤204,检查DNS响应结果,并根据所述第一测试子域名集合中的各测试子域名是否得到解析,判断当前环境中是否存在DNS劫持。
检查所述步骤203中的DNS响应结果,看是否有些测试子域名得到解析,也就是返回了IP地址。正常情况下,因为所述测试主域名是一个不存在的虚假域名,那么应该所有的测试子域名都不能解析。因此,如果所述第一测试子域名集合中的每个测试子域名都未得到解析,则可说明不存在DNS劫持;而如果有一个或多个测试子域名得到解析,则说明此DNS报文被修改了,链路上存在DNS劫持,此时可进一步根据得到解析的一个或多个测试子域名确定DNS劫持的关键字。
本发明实施例提供的上述检测方法主要是针对发生在网络中的DNS报文修改类型的DNS劫持,通过生成虚假域名,使用大量的虚假子域名来进行批量探测,观察响应结果,不仅可快速、准确地有效检测出当前环境中是否存在DNS劫持,还可识别出DNS劫持的匹配关键字。
进一步地,当在所述步骤204中判读存在DNS劫持时,还可进一步验证DNS劫持是发生在DNS请求路径上还是DNS响应路径上,具体步骤可继续参考图3,在步骤204之后,所述方法还包括:
步骤205,将得到解析的所述一个或多个测试子域名收集起来,形成第二测试子域名集合。
显然,这里的第二测试子域名集合为步骤202中所述第一测试子域名集合的子集;所述第二测试子域名集合中的测试子域名,为步骤204中得到解析返回IP地址的一个或多个测试子域名。因此,位于所述第二测试子域名集合中的测试子域名,都是DNS劫持时匹配域名的关键字。
步骤206,使用所述第二测试子域名集合,向第二DNS服务器发起批量DNS解析请求。
其中,所述第二DNS服务器为任一虚假DNS服务器,具体可采用随机生成IP地址的方式来生成,在其上面并没有提供DNS解析服务。这个虚假DNS服务器我们可以随便指定,如23.23.23.23,但仍需验证其确实为一个虚假DNS服务器。验证方法具体如下:通过随机生成一个IP地址选定一个虚假DNS服务器之后,使用dig工具检查在该虚假DNS服务器上是否确实没有提供DNS服务;如果该虚假DNS服务器上确实没有提供DNS服务,则验证通过,可将该虚假DNS服务器作为第二DNS服务器;否则,将重新选定另一虚假DNS服务器,并继续进行验证,直至验证通过,将对应生成的虚假DNS服务器作为第二DNS服务器。
由前述可知,针对所述第二测试子域名集合中的各测试子域名,所述第一DNS服务器是返回了IP地址的,也就是确认了DNS劫持的存在;这里我们把第一DNS服务器换成一个不存在的第二DNS服务器,目的就是为了区分DNS劫持是发生在DNS请求路径上,还是DNS响应路径上。
步骤207,检查DNS响应结果,并根据所述第二测试子域名集合中的各测试子域名是否得到解析,判断DNS劫持发生的具体路径。
检查所述步骤206中的DNS响应结果,看是否有些测试子域名得到解析,也就是返回了IP地址。其中,如果所述第二测试子域名集合中存在某些测试子域名得到解析,就说明DNS请求报文根本没有走到第二DNS服务器上,在中途就被劫持了,因此DNS劫持发生在DNS请求路径上,即发生的是DNS请求劫持;反之,如果所述第二测试子域名集合中的每个测试子域名都未得到解析,说明DNS请求路径上没有被劫持,DNS劫持可能发生在DNS响应路径上,即发生的是DNS响应劫持。
下面通过一个具体的实施例对上述检测方法进行说明:
首先,构造一个不存在的虚假域名,如iamnotexist.com,作为测试主域名;接下来根据测试主域名iamnotexist.com生成第一测试子域名集合,所述第一测试子域名集合中包含的各测试子域名具体如下:
webproxy.iamnotexist.com
openvpn.iamnotexist.com
google.com.iamnotexist.com
www.google.com.iamnotexist.com
youtube.com.iamnotexist.com
www.youtube.com.iamnotexist.com
baidu.com.iamnotexist.com
www.baidu.com.iamnotexist.com
其次,选取第一DNS解析服务器,例如这里可选取114.114.114.114,使用该DNS服务器去解析所述第一测试子域名集合中的每一个测试子域名,看哪些子域名得到了解析,并将得到解析的测试子域名收集下来形成第二测试子域名集合,同时也得到了DNS劫持的关键字列表。如果第一测试子域名集合中的所有测试子域名都没有返回IP地址,那么说明不存在DNS劫持。
例如,假设这里有三个测试子域名得到了解析的IP地址,分别是:
openvpn.iamnotexist.com
www.google.com.iamnotexist.com
www.baidu.com.iamnotexist.com
那么,这三个测试子域名构成了第二测试子域名集合,且DNS劫持的关键字分别对应为openvpn、www.google.com和www.baidu.com。
最后,选取第二DNS服务器,如23.23.23.23,并使用此DNS服务器来解析第二测试子域名集合中的各测试子域名,观察是否有解析结果。如果仍然有解析的IP地址返回,那么说明DNS劫持发生在DNS请求路径上;否则,说明DNS劫持发生在DNS响应路径上。
为了更好地理解本发明实施例提供的检测方法,这里使用dig工具来发出DNS请求,结合图4-图6,对本方法的检测原理进一步做出说明。
如图4所示,使用dig工具对虚假域名iamnotexist.com发起DNS请求时,由于此域名没有被注册,所以DNS服务器返回域名不存在,即代码NXDOMAIN。
如图5所示,使用dig工具对某个虚假域名发起DNS请求,这里的虚假域名是一个不存在的域名youtube.com.iamnotexist.com。正常情况下,由于此域名没有被注册,DNS服务器应该返回此域名不存在,但是这里却正常返回了一个IP地址,证明此网络环境存在DNS劫持,而且劫持的关键字是youtbe.com。
如图6所示,使用dig工具对虚假域名youtube.com.iamnotexist.com发起DNS请求,这里请求的DNS服务器是一个虚假的DNS服务器23.23.23.23,实际上此IP地址并不提供DNS查询服务。正常情况下,此域名不会得到解析,但是这里却发现此域名得到一个解析的IP地址,说明网络环境中存在DNS劫持,而且劫持的关键字是youtube.com,进一步说明劫持是发生在DNS请求路径上某个节点,而不是DNS响应路径上的某个节点上。
综上所述,本发明提供的DNS劫持的检测方法,具有以下优势:
通过主动DNS请求探测的方式来识别DNS劫持,过程中使用大量的虚假子域名来进行批量探测,观察响应结果,不仅可快速、准确地有效检测出当前环境中是否存在DNS劫持,还可确定DNS劫持的匹配关键字;
进一步地,通过虚假子域名结合虚假DNS服务器,在发生DNS劫持时,可准确判断DNS劫持是发生在DNS请求路径还是DNS响应路径中。
实施例2:
在上述实施例1提供的DNS劫持的检测方法的基础上,本发明还提供了一种可用于实现上述方法的DNS劫持的检测装置,如图7所示,是本发明实施例的装置架构示意图。本实施例的DNS劫持的检测装置包括一个或多个处理器21以及存储器22。其中,图7中以一个处理器21为例。
所述处理器21和所述存储器22可以通过总线或者其他方式连接,图7中以通过总线连接为例。
所述存储器22作为一种DNS劫持的检测方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的DNS劫持的检测方法。所述处理器21通过运行存储在所述存储器22中的非易失性软件程序、指令以及模块,从而执行DNS劫持的检测装置的各种功能应用以及数据处理,即实现实施例1的DNS劫持的检测方法。
所述存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,所述存储器22可选包括相对于所述处理器21远程设置的存储器,这些远程存储器可以通过网络连接至所述处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的DNS劫持的检测方法,例如,执行以上描述的图3所示的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种DNS劫持的检测方法,其特征在于,包括:
随机生成一个不存在的虚假域名,作为测试主域名;
基于所述测试主域名生成多个测试子域名,所述多个测试子域名形成第一测试子域名集合;其中,各测试子域名的上级域名为所述测试主域名;
使用所述第一测试子域名集合,向第一DNS服务器发起批量DNS解析请求;其中,所述第一DNS服务器为任一真实DNS服务器;
检查DNS响应结果,并根据所述第一测试子域名集合中的各测试子域名是否得到解析,判断当前环境中是否存在DNS劫持;
其中,如果每个测试子域名都未得到解析,则不存在DNS劫持;如果有一个或多个测试子域名得到解析,则存在DNS劫持,并进一步根据得到解析的一个或多个测试子域名确定DNS劫持的关键字。
2.根据权利要求1所述的DNS劫持的检测方法,其特征在于,当存在DNS劫持时,所述方法还包括:
将得到解析的所述一个或多个测试子域名收集起来,形成第二测试子域名集合;
使用所述第二测试子域名集合,向第二DNS服务器发起批量DNS解析请求;其中,所述第二DNS服务器为任一虚假DNS服务器;
检查DNS响应结果,并根据所述第二测试子域名集合中的各测试子域名是否得到解析,判断DNS劫持发生的具体路径;
其中,如果所述第二测试子域名集合中存在测试子域名得到解析,则DNS劫持发生在DNS请求路径上;如果所述第二测试子域名集合中的每个测试子域名都未得到解析,则DNS劫持发生在DNS响应路径上。
3.根据权利要求2所述的DNS劫持的检测方法,其特征在于,所述虚假DNS服务器采用随机生成IP地址的方式来生成。
4.根据权利要求3所述的DNS劫持的检测方法,其特征在于,在所述使用所述第二测试子域名集合,向第二DNS服务器发起批量DNS解析请求之前,所述方法还包括:
通过随机生成一个IP地址选定一个虚假DNS服务器之后,使用dig工具检查在该虚假DNS服务器上是否确实没有提供DNS服务;
如果该虚假DNS服务器上确实没有提供DNS服务,则将该虚假DNS服务器作为第二DNS服务器;否则,将重新选定另一虚假DNS服务器。
5.根据权利要求1-4任一所述的DNS劫持的检测方法,其特征在于,所述虚假域名采用随机字符串的形式来生成。
6.根据权利要求1-4任一所述的DNS劫持的检测方法,其特征在于,所述随机生成一个不存在的虚假域名之后,所述方法还包括:
使用whois工具查询该域名,检查此域名是否被人注册;
使用dig工具解析该域名的IP地址,检查该域名目前是否能被解析;
如果该域名未经人注册,且目前无法被解析,则将该域名作为测试主域名;否则,重新随机生成一个虚假域名。
7.根据权利要求1-4任一所述的DNS劫持的检测方法,其特征在于,在所述第一测试子域名集合中,所述多个测试子域名包括:
中国区网站域名top 100万、alexa域名top 100万、多个中国单词的汉语拼音以及多个英文单词中的一项或多项;其中,所述网站域名包含带www的域名和不带www的域名两种版本。
8.根据权利要求1-4任一所述的DNS劫持的检测方法,其特征在于,在所述第一测试子域名集合中,所述测试子域名的数量在百万级别以上。
9.根据权利要求1-4任一所述的DNS劫持的检测方法,其特征在于,所述第一DNS服务器为任意一个真实的转发DNS服务器或解析DNS服务器。
10.一种DNS劫持的检测装置,其特征在于,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成权利要求1-9任一所述的DNS劫持的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025755.6A CN110855636B (zh) | 2019-10-25 | 2019-10-25 | 一种dns劫持的检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025755.6A CN110855636B (zh) | 2019-10-25 | 2019-10-25 | 一种dns劫持的检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110855636A true CN110855636A (zh) | 2020-02-28 |
CN110855636B CN110855636B (zh) | 2020-12-08 |
Family
ID=69598168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911025755.6A Active CN110855636B (zh) | 2019-10-25 | 2019-10-25 | 一种dns劫持的检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110855636B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112671943A (zh) * | 2020-12-17 | 2021-04-16 | 苏州极光无限信息技术有限公司 | 一种真实域名的探测方法、装置和存储介质 |
CN113329039A (zh) * | 2021-08-03 | 2021-08-31 | 杭州安恒信息技术股份有限公司 | 一种缓存污染检测方法、装置、电子设备和存储介质 |
CN113347139A (zh) * | 2020-03-02 | 2021-09-03 | 深信服科技股份有限公司 | 一种识别安全信息的方法、装置、系统和介质 |
CN114401247A (zh) * | 2022-01-14 | 2022-04-26 | 深圳市和讯华谷信息技术有限公司 | 一种基于bind服务的高并发业务请求处理系统 |
CN116319113A (zh) * | 2023-05-23 | 2023-06-23 | 阿里云计算有限公司 | 一种域名解析异常的检测方法和电子设备 |
CN118509257A (zh) * | 2024-07-17 | 2024-08-16 | 阿里云计算有限公司 | 域名劫持的定位方法、装置、域名系统和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065762A (zh) * | 2014-05-30 | 2014-09-24 | 小米科技有限责任公司 | 一种检测dns服务器劫持的方法及装置 |
CN105681358A (zh) * | 2016-03-31 | 2016-06-15 | 北京奇虎科技有限公司 | 检测域名劫持的方法、装置和系统 |
CN105763564A (zh) * | 2016-04-19 | 2016-07-13 | 成都知道创宇信息技术有限公司 | 一种dns劫持检测方法 |
CN105871912A (zh) * | 2016-06-03 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 一种域名劫持的探测方法和服务器以及移动终端 |
US20180007088A1 (en) * | 2016-06-29 | 2018-01-04 | AVAST Software s.r.o. | Detection of domain name system hijacking |
CN109413015A (zh) * | 2018-04-28 | 2019-03-01 | 武汉思普崚技术有限公司 | 一种dns劫持的防御方法和装置 |
-
2019
- 2019-10-25 CN CN201911025755.6A patent/CN110855636B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065762A (zh) * | 2014-05-30 | 2014-09-24 | 小米科技有限责任公司 | 一种检测dns服务器劫持的方法及装置 |
CN105681358A (zh) * | 2016-03-31 | 2016-06-15 | 北京奇虎科技有限公司 | 检测域名劫持的方法、装置和系统 |
CN105763564A (zh) * | 2016-04-19 | 2016-07-13 | 成都知道创宇信息技术有限公司 | 一种dns劫持检测方法 |
CN105871912A (zh) * | 2016-06-03 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 一种域名劫持的探测方法和服务器以及移动终端 |
US20180007088A1 (en) * | 2016-06-29 | 2018-01-04 | AVAST Software s.r.o. | Detection of domain name system hijacking |
CN109413015A (zh) * | 2018-04-28 | 2019-03-01 | 武汉思普崚技术有限公司 | 一种dns劫持的防御方法和装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113347139A (zh) * | 2020-03-02 | 2021-09-03 | 深信服科技股份有限公司 | 一种识别安全信息的方法、装置、系统和介质 |
CN112671943A (zh) * | 2020-12-17 | 2021-04-16 | 苏州极光无限信息技术有限公司 | 一种真实域名的探测方法、装置和存储介质 |
CN112671943B (zh) * | 2020-12-17 | 2022-07-15 | 苏州极光无限信息技术有限公司 | 一种真实域名的探测装置 |
CN113329039A (zh) * | 2021-08-03 | 2021-08-31 | 杭州安恒信息技术股份有限公司 | 一种缓存污染检测方法、装置、电子设备和存储介质 |
CN114401247A (zh) * | 2022-01-14 | 2022-04-26 | 深圳市和讯华谷信息技术有限公司 | 一种基于bind服务的高并发业务请求处理系统 |
CN116319113A (zh) * | 2023-05-23 | 2023-06-23 | 阿里云计算有限公司 | 一种域名解析异常的检测方法和电子设备 |
CN116319113B (zh) * | 2023-05-23 | 2023-08-11 | 阿里云计算有限公司 | 一种域名解析异常的检测方法和电子设备 |
CN118509257A (zh) * | 2024-07-17 | 2024-08-16 | 阿里云计算有限公司 | 域名劫持的定位方法、装置、域名系统和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110855636B (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110855636B (zh) | 一种dns劫持的检测方法和装置 | |
WO2021109669A1 (zh) | 恶意域名访问的检测方法、装置及计算机可读存储介质 | |
CN106657044B (zh) | 一种用于提高网站系统安全防御的网页地址跳变方法 | |
US9053320B2 (en) | Method of and apparatus for identifying requestors of machine-generated requests to resolve a textual identifier | |
KR100619178B1 (ko) | 인터넷 검색 엔진에 있어서의 무효 클릭 검출 방법 및 장치 | |
CN109768992B (zh) | 网页恶意扫描处理方法及装置、终端设备、可读存储介质 | |
US20100088405A1 (en) | Determining Network Delay and CDN Deployment | |
US9058381B2 (en) | Method of and apparatus for identifying machine-generated textual identifiers | |
CN107454037B (zh) | 网络攻击的识别方法和系统 | |
CN111314285B (zh) | 一种路由前缀攻击检测方法及装置 | |
CN104468860A (zh) | 域名解析服务器危险性的识别方法和装置 | |
CN107733699B (zh) | 互联网资产安全管理方法、系统、设备及可读存储介质 | |
US20210360013A1 (en) | Detection method for malicious domain name in domain name system and detection device | |
CN105407186A (zh) | 获取子域名的方法和装置 | |
WO2024031884A1 (zh) | 一种域名同源判定方法、装置、电子设备及存储介质 | |
US10333966B2 (en) | Quarantining an internet protocol address | |
CN111698345A (zh) | 域名查询方法、递归服务器和存储介质 | |
CN102223422A (zh) | 一种dns报文处理方法及网络安全设备 | |
Seifert et al. | Identification of malicious web pages through analysis of underlying dns and web server relationships | |
CN113810518A (zh) | 有效子域名识别方法、装置和电子设备 | |
WO2023040070A1 (zh) | 一种域名接管漏洞的检测方法和装置 | |
CN115001724B (zh) | 网络威胁情报管理方法、装置、计算设备及计算机可读存储介质 | |
CN114301872B (zh) | 基于域名的访问方法及装置、电子设备、存储介质 | |
CN117061247B (zh) | 基于dns的溯源定位方法、装置、电子设备及存储介质 | |
Swathi et al. | Detection of Phishing Websites Using Machine Learning |
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 |