域名解析防护方法及装置、系统、计算设备、存储介质与流程

文档序号:13520411阅读:263来源:国知局

本发明涉及网络安全领域,具体涉及一种域名解析防护方法及装置、系统、计算设备、计算机存储介质。



背景技术:

dns(domainnamesystem,域名系统)被称为网络翻译官,因特网上作为域名和ip地址相互映射的一个分布式数据库,目前已经成为互联网的基础设备。dns服务器能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的ip数串。dns服务器将域名解析为机器使用的语言(ip),dns服务器的存在方便了用户对网址的访问,为用户提供了便捷的网络服务。

随着网络的日益壮大,现今dns已成为网络必要的基础设施。然而,由于dns作为早期的internet设计,为了追求效率上的高速,其并未在安全性上充分考虑,且其协议体系完全开放,不仅没有加密和访问的认证机制,而且对于各种查询请求都未进行验证等问题导致dns的管理困难。同时。dns服务器也日渐庞大,dns系统也变得日渐脆弱,这些都是导致dns易遭受攻击和劫持的原因。dns存在的安全问题对用户的上网安全造成极大的威胁。事实上,dns已经成为黑客和不发分子攻击用户的常用手段,dns劫持已经普遍存在。

因此,需要一种域名解析防护方法,以便保障用户访问网络的安全性。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的域名解析防护方法及装置、计算设备、计算机存储介质。

根据本发明的一个方面,提供了一种域名解析防护方法,其包括:

将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果;

依据本地规则和/或云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据;

若是,对域名解析结果进行修复,并返回修复后的域名解析结果。

根据本发明的另一方面,提供了一种域名解析防护装置,其包括:

拦截模块,适于将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果;

分析判断模块,适于依据本地规则和/或云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据;

修复模块,适于若是,对域名解析结果进行修复,并返回修复后的域名解析结果。

根据本发明的又一方面,提供了一种域名解析防护系统,其包括云端服务器及上述的域名解析防护装置。

根据本发明的再一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述域名解析防护方法对应的操作。

根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述域名解析防护方法对应的操作。

根据本发明提供的域名解析防护方法及装置、系统、计算设备、存储介质,将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果;依据本地规则和/或云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据;若是,对域名解析结果进行修复,并返回修复后的域名解析结果。通过拦截返回的域名解析结果,在用户和dns服务器之间构建一道屏障,保障网络安全。依据本地规则和/或云查杀结果对域名解析结果进行分析,可以及时、主动的判断域名解析结果是否被劫持,且判断时更加准确,提高分析的有效率。并且在判断后,对域名解析结果进行修复,返回的正确的域名解析结果,在保障网络安全的同时不影响用户的正常使用,且有效对域名解析进行了防护。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的域名解析防护方法的流程图;

图2示出了根据本发明另一个实施例的域名解析防护方法的流程图;

图3示出了根据本发明一个实施例的域名解析防护装置的功能框图;

图4示出了根据本发明一个实施例的域名解析防护装置的功能框图;

图5示出了根据本发明一个实施例的一种计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的域名解析防护方法的流程图。如图1所示,域名解析防护方法具体包括如下步骤:

步骤s101,将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果。

dns服务器在对域名解析请求进行解析后直接返回,当dns被劫持时,此时返回的域名解析结果可能被篡改,其已经无法实现用户的真正需求。因此,需要将对dns服务器返回的域名解析结果进行拦截,以便于后续对其进行分析判断,避免返回被劫持的域名解析结果。

具体在将携带有域名信息的域名解析请求发送给dns服务器进行解析时,可以利用伪造函数钩取远程过程调用协议请求函数,将携带有域名信息的域名解析请求发送给dns服务器进行解析。如基于hook技术,构造一个fakefunc函数来钩取掉原始的远程过程调用协议的请求函数,并设置一个回调函数拦截dns服务器返回的域名解析结果,以避免域名解析结果的直接返回。

步骤s102,依据本地规则和/或云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据。

在驱动程序拦截到域名解析结果之后,本实施例采用异步方式将域名解析结果传递至特权级3进行分析。针对不同的操作系统版本、不同版本的互联网协议可以使用不同的分析策略,在实施时可以根据实施情况自定义专门的数据结构,对域名解析结果进行分析,得到相应的数据信息,如ip地址等信息。

具体分析时,可以依据本地规则,即客户端制定的规则对域名解析结果进行分析。还可以依据云端服务器执行的云查杀结果进行分析,判断域名解析结果是否为被劫持的数据。若是,执行步骤s103,否则,不做处理,将数据放行,执行步骤s104。

步骤s103,若是,对域名解析结果进行修复。

判断域名解析结果为被劫持的数据时,需要对域名解析结果进行修复。修复时,根据之前域名解析请求中携带的地域信息,由云端服务器根据对地域信息、域名信息等统计的大数据进行筛选。云端服务器可以根据位于该地域信息的正常用户访问该域名信息的情况,得到并返回其对应的白ip地址,从而获取到地域信息对应的白ip地址。如正常用户在某地域a多次访问某ip1,从而获取到该ip1。若本地存在有本地ip地址白名单时,可以根据其中的地域信息、域名信息或运营商信息等信息获取白ip地址。使用获取到的白ip地址对域名解析结果进行修复。

步骤s104,返回域名解析结果。

将修复后或未被劫持的域名解析结果返回,以便后续使用该域名解析结果访问对应的页面。

根据本发明提供的域名解析防护方法,将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果;依据本地规则和/或云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据;若是,对域名解析结果进行修复,并返回修复后的域名解析结果。通过拦截返回的域名解析结果,在用户和dns服务器之间构建一道屏障,保障网络安全。依据本地规则和/或云查杀结果对域名解析结果进行分析,可以及时、主动的判断域名解析结果是否被劫持,且判断时更加准确,提高分析的有效率。并且在判断后,对域名解析结果进行修复,返回的正确的域名解析结果,在保障网络安全的同时不影响用户的正常使用,且有效对域名解析进行了防护。

图2示出了根据本发明另一个实施例的域名解析防护方法的流程图。如图2所示,域名解析防护方法具体包括如下步骤:

步骤s201,将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果。

该步骤参照图1实施例中的步骤s101的描述,在此不再赘述。

步骤s202,依据本地规则判断域名解析结果中包括的ip地址是否属于本地ip地址白名单。

依据本地规则判断域名解析结果中包括的ip地址是否属于本地ip地址白名单,若ip地址属于本地ip地址白名单,则判定域名解析结果不是被劫持的数据,不进行处理,直接放行,执行步骤s206。若ip地址不属于本地ip地址白名单,执行步骤s203。

步骤s203,依据本地规则判断域名解析结果中包括的ip地址是否属于本地ip地址黑名单。

依据本地规则判断域名解析结果中包括的ip地址是否属于本地ip地址黑名单,若ip地址属于本地ip地址黑名单,则判定域名解析结果是被劫持的数据,执行步骤s205。若ip地址不属于本地ip地址黑名单,需要继续执行步骤s204,依据各种云查杀结果对域名解析结果进一步分析。

以上,对于上述步骤s202和步骤s203的执行顺序不做限定。其中,本地ip地址白名单和/或本地ip地址黑名单,需要定时从云端服务器下载云端ip地址白名单和/或云端ip地址黑名单,并且根据云端ip地址白名单和/或云端ip地址黑名单,更新本地ip地址白名单和/或本地ip地址黑名单,以保障本地ip地址白名单和/或本地ip地址黑名单数据的全面性。

云端ip地址白名单可以通过在各数据中心的布点,向已知为一个或多个白dns服务器发送域名解析请求,得到对应的白ip地址,将其加入云端ip地址白名单中。为扩充白ip地址数量,还可以将同一域名解析请求发送给多个白dns服务器,得到所有解析结果的合集。或者通过在网盾等日志中打点,计算得到各白ip地址(包括对应的地域信息、运营商等信息),将其加入云端ip地址白名单中。

云端ip地址黑名单可以通过大数据运营平台进行收集,收集时包括对各个域名生效的黑ip地址和对所有域名都生效的黑ip地址。

步骤s204,依据云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据。

依据本地规则对域名解析结果进行分析,无法判断域名解析结果是否为被劫持的数据时,还可以依据云查杀结果进行判断。云查杀结果是通过将域名信息、域名解析结果中包括的ip地址等发送给云端服务器,以供云端服务器根据域名信息、ip地址等信息进行云查杀处理,获取云查杀结果。

由于本地ip地址白名单和/或本地ip地址黑名单不是实时进行更新的,云端ip地址白名单和/或云端ip地址黑名单的数据实时性更强,数据也更全面。云端服务器先根据域名解析结果中包括的ip地址进行判断,判断该ip地址是否属于云端ip地址白名单,若ip地址属于云端ip地址白名单,则得到域名解析结果不是被劫持的数据的云查杀结果。若ip地址不属于云端ip地址白名单,再判断ip地址是否属于云端ip地址黑名单。若ip地址属于云端ip地址黑名单,则得到域名解析结果是被劫持的数据的云查杀结果。从而根据云查杀结果,判断域名解析结果是否为被劫持的数据。若ip地址不属于云端ip地址白名单,也不属于云端ip地址黑名单,进一步,将携带有域名信息的域名解析请求发送给预先配置的属于dns服务器白名单中的dns服务器,获取dns解析得到的安全ip地址。按照该安全ip地址下载第一页面。第一页面为安全ip地址对应的页面,该页面可以为安全ip地址对应的网站的主页面。按照域名解析结果中包括的ip地址及发送者主机信息进行网络请求,并下载第二页面。第二页面为ip地址对应的页面,该页面可以为该ip地址对应的网站的主页面。对第一页面和第二页面进行比较,根据页面的相似度比较结果,获取云查杀结果。

在对第一页面和第二页面进行比较时,可以分别解析第一页面和第二页面,得到各自对应的dom树。通过对两者dom数各树节点进行比较,得到两页面的相似度比较结果。相似度比较结果中包括了第一页面和第二页面的差异值。若差异值大于预设阈值如20%,认为第一页面和第二页面不相似,否则,认为第一页面和第二页面相似。除此之外,也可以采用其他方式对第一页面和第二页面进行比较,得到页面的相似度比较结果。此处不做限定。

根据从两页面的相似度比较结果,以及第一页面的http状态码和第二页面的http状态码,若第二页面的http状态码不为200,即第二页面访问失败,如http状态码为404、503等。此时,极大可能存在域名解析结果是被劫持的数据的情况。需要进一步对相似度比较结果进行判断。若相似度比较结果为第一页面和第二页面不相似,则得到域名解析结果是被劫持的数据的云查杀结果。若第二页面的http状态码为200,即第二页面访问成功,且相似度比较结果为第一页面和第二页面相似,则得到域名解析结果不是被劫持的数据的云查杀结果。或者第二页面的http状态码与第一页面的http状态码不同,且相似度比较结果为第一页面和第二页面不相似,得到域名解析结果是被劫持的数据的云查杀结果。或者第二页面的http状态码与第一页面的http状态码相同,且相似度比较结果为第一页面和第二页面相似,则得到域名解析结果不是被劫持的数据的云查杀结果。

若第二页面的http状态码不为200,但相似度比较结果为第一页面和第二页面相似,或者第二页面的http状态码与第一页面的http状态码不同,但相似度比较结果为第一页面和第二页面相似,此时还需要进一步进行核查,得到域名解析结果是否被劫持的数据的云查杀结果。

由于ip地址的类型不同,在下载前,还可以根据ip地址的类型预先设置第一页面和/或第二页面的下载规则,方便在对第一页面和第二页面进行比较时,下载更易进行比较的页面。

根据上述的云查杀结果,判断域名解析结果是否为被劫持的数据。若是,执行步骤s205,否则,不做处理,直接放行,执行步骤s206。

进一步,通过以上步骤s202-s204在判断出域名解析结果为被劫持的数据时,还可以将其对应的dns服务器进行核查,排除外界影响因素确定为黑dns服务器后,将其进行拉黑等处理,以避免再次发送请求至该黑dns服务器。

步骤s205,对域名解析结果进行修复。

步骤s206,返回修复后的域名解析结果。

以上步骤参照图1实施例中的步骤s103-s104的描述,在此不再赘述。

需要说明的是,步骤s202-s204具体可以由第一进程执行,步骤s205具体由第二进程执行。其中,第一进程和第二进程为异步处理方式,使得处理时可以提高并发处理速度。

根据本发明提供的域名解析防护方法,在拦截dns服务器返回的域名解析结果后,依次依据本地规则、云查杀结果等对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据。可以及时、主动的判断域名解析结果是否被劫持。且先在本地进行判断,执行的速度快。若本地规则不能判断时,通过云查杀结果进行判断,保障了判断的准确性。若域名解析结果是被劫持的数据,对域名解析结果进行修复,返回的修复后正确的域名解析结果,在保障网络安全的同时不影响用户的正常使用,且有效对域名解析进行了防护。

图3示出了根据本发明一个实施例的域名解析防护装置的功能框图。如图3所示,域名解析防护装置包括如下模块:

拦截模块310,适于将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果。

dns服务器在对域名解析请求进行解析后直接返回,当dns被劫持时,此时返回的域名解析结果可能被篡改,其已经无法实现用户的真正需求。因此,需要拦截模块310对dns服务器返回的域名解析结果进行拦截,以便于后续对其进行分析判断,避免返回被劫持的域名解析结果。

拦截模块310在将携带有域名信息的域名解析请求发送给dns服务器进行解析时,可以利用伪造函数钩取远程过程调用协议请求函数,将携带有域名信息的域名解析请求发送给dns服务器进行解析。如拦截模块310基于hook技术,构造一个fakefunc函数来钩取掉原始的远程过程调用协议的请求函数,并设置一个回调函数拦截dns服务器返回的域名解析结果,以避免域名解析结果的直接返回。

分析判断模块320,适于依据本地规则和/或云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据。

在拦截模块310拦截到域名解析结果之后,本实施例采用异步方式将域名解析结果传递至特权级3进行分析。分析判断模块320针对不同的操作系统版本、不同版本的互联网协议可以使用不同的分析策略,在实施时可以根据实施情况自定义专门的数据结构,对域名解析结果进行分析,得到相应的数据信息,如ip地址等信息。

分析判断模块320分析时,可以依据本地规则,即客户端制定的规则对域名解析结果进行分析。分析判断模块320还可以依据云端服务器执行的云查杀结果进行分析,判断域名解析结果是否为被劫持的数据。若分析判断模块320判断域名解析结果是被劫持的数据,执行修复模块330,否则,不做处理,将数据放行。

分析判断模块320包括本地判断模块321和/或云查杀结果获取模块322。

本地判断模块321,适于判断域名解析结果中包括的ip地址是否属于本地ip地址白名单和/或本地ip地址黑名单;若ip地址属于本地ip地址白名单,则判定域名解析结果不是被劫持的数据;若ip地址属于本地ip地址黑名单,则判定域名解析结果是被劫持的数据。

本地判断模块321依据本地规则判断域名解析结果中包括的ip地址是否属于本地ip地址白名单,若ip地址属于本地ip地址白名单,则本地判断模块321判定域名解析结果不是被劫持的数据,不进行处理,直接放行。若ip地址不属于本地ip地址白名单,本地判断模块321依据本地规则判断域名解析结果中包括的ip地址是否属于本地ip地址黑名单,若ip地址属于本地ip地址黑名单,则本地判断模块321判定域名解析结果是被劫持的数据,执行修复模块330。若ip地址不属于本地ip地址黑名单,可以继续执行云查杀结果获取模块322,依据各种云查杀结果对域名解析结果进行分析。

以上,对于本地判断模块321先判断ip地址是否属于本地ip地址白名单还是ip地址是否属于本地ip地址黑名单的执行顺序不做限定。

其中,由于本地ip地址白名单和/或本地ip地址黑名单的数据需要根据实际情况进行更新,本装置还包括了定时更新模块340。

定时更新模块340,适于定时从云端服务器下载云端ip地址白名单和/或云端ip地址黑名单;根据云端ip地址白名单和/或云端ip地址黑名单,更新本地ip地址白名单和/或本地ip地址黑名单。

定时更新模块340定时从云端服务器下载云端ip地址白名单和/或云端ip地址黑名单,并且根据云端ip地址白名单和/或云端ip地址黑名单,更新本地ip地址白名单和/或本地ip地址黑名单,以保障本地ip地址白名单和/或本地ip地址黑名单数据的全面性。

云端ip地址白名单可以由云端服务器通过在各数据中心的布点,向已知为一个或多个白dns服务器发送域名解析请求,得到对应的白ip地址,将其加入云端ip地址白名单中。为扩充白ip地址数量,云端服务器还可以将同一域名解析请求发送给多个白dns服务器,得到所有解析结果的合集。或者云端服务器通过在网盾等日志中打点,计算得到各白ip地址(包括对应的地域信息、运营商等信息),将其加入云端ip地址白名单中。

云端ip地址黑名单可以通过大数据运营平台进行收集,收集时包括对各个域名生效的黑ip地址和对所有域名都生效的黑ip地址。

云查杀结果获取模块322,适于将域名信息和/或域名解析结果中包括的ip地址发送给云端服务器,以供云端服务器根据域名信息和/或ip地址进行云查杀处理,获取云查杀结果;根据云查杀结果,判断域名解析结果是否为被劫持的数据。

本地判断模块321无法判断域名解析结果是否为被劫持的数据时,还可以执行云查杀结果获取模块322进行判断。云查杀结果是云查杀结果获取模块322将域名信息、域名解析结果中包括的ip地址等发送给云端服务器,以供云端服务器根据域名信息、ip地址等信息进行云查杀处理后获取的。云查杀结果获取模块322在获取到云查杀结果后,根据域名解析结果是被劫持的数据的云查杀结果或域名解析结果不是被劫持的数据的云查杀结果,判断域名解析结果是否为被劫持的数据。

修复模块330,适于若是,对域名解析结果进行修复,并返回修复后的域名解析结果。

分析判断模块320判断域名解析结果为被劫持的数据时,需要修复模块330对域名解析结果进行修复。修复模块330修复时,根据之前域名解析请求中携带的地域信息,由云端服务器根据对地域信息、域名信息等统计的大数据进行筛选。云端服务器可以根据位于该地域信息的正常用户访问该域名信息的情况,得到并返回其对应的白ip地址,从而修复模块330获取到地域信息对应的白ip地址。如正常用户在某地域a多次访问某ip1,从而修复模块330获取到该ip1。若本地存在有本地ip地址白名单时,修复模块330可以根据其中的地域信息、域名信息或运营商信息等信息获取白ip地址。修复模块330使用获取到的白ip地址对域名解析结果进行修复,并返回修复后的域名解析结果。

分析判断模块320具体由第一进程执行,修复模块330由第二进程执行。其中,第一进程和第二进程为异步处理方式。

根据本发明提供的域名解析防护装置,在拦截dns服务器返回的域名解析结果后,依次依据本地规则、云查杀结果等对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据。可以及时、主动的判断域名解析结果是否被劫持。且先在本地进行判断,执行的速度快。若本地规则不能判断时,通过云查杀结果进行判断,保障了判断的准确性。若域名解析结果是被劫持的数据,对域名解析结果进行修复,返回的修复后正确的域名解析结果,在保障网络安全的同时不影响用户的正常使用,且有效对域名解析进行了防护。

图4示出了根据本发明一个实施例的域名解析防护系统的功能框图。如图4所示,域名解析防护系统包括了云端服务器400如图3所示的域名解析防护装置300。

其中,云端服务器400适于:接收域名解析防护装置300发送的域名信息和/或域名解析结果中包括的ip地址,根据域名信息和/或ip地址进行云查杀处理,获取云查杀结果,将云查杀结果返回给域名解析防护装置300。

云端服务器400包括云端ip查杀模块410和网页查杀模块420。

云端ip查杀模块410,适于判断域名解析结果中包括的ip地址是否属于云端ip地址白名单和/或云端ip地址黑名单;若ip地址属于云端ip地址白名单,则得到域名解析结果不是被劫持的数据的云查杀结果;若ip地址属于云端ip地址黑名单,则得到域名解析结果是被劫持的数据的云查杀结果。

由于本地ip地址白名单和/或本地ip地址黑名单不是实时进行更新的,云端ip地址白名单和/或云端ip地址黑名单的数据实时性更强,数据也更全面。云端ip查杀模块410先根据域名解析结果中包括的ip地址进行判断,判断该ip地址是否属于云端ip地址白名单,若ip地址属于云端ip地址白名单,则云端ip查杀模块410得到域名解析结果不是被劫持的数据的云查杀结果。若云端ip查杀模块410判断ip地址不属于云端ip地址白名单,再判断ip地址是否属于云端ip地址黑名单。若ip地址属于云端ip地址黑名单,则云端ip查杀模块410得到域名解析结果是被劫持的数据的云查杀结果。若云端ip查杀模块410判断ip地址不属于云端ip地址白名单,也不属于云端ip地址黑名单,执行网页查杀模块420。

网页查杀模块420,适于将携带有域名信息的域名解析请求发送给预先配置的属于dns服务器白名单中的dns服务器,获取dns解析得到的安全ip地址;按照安全ip地址下载第一页面;第一页面为安全ip地址对应的页面;按照域名解析结果中包括的ip地址及发送者主机信息进行网络请求,并下载第二页面;第二页面为ip地址对应的页面;对第一页面和第二页面进行比较,根据页面的相似度比较结果,获取云查杀结果。

网页查杀模块420将携带有域名信息的域名解析请求发送给预先配置的属于dns服务器白名单中的dns服务器,获取dns解析得到的安全ip地址。网页查杀模块420按照该安全ip地址下载第一页面。第一页面为安全ip地址对应的页面,该页面可以为安全ip地址对应的网站的主页面。网页查杀模块420按照域名解析结果中包括的ip地址及发送者主机信息进行网络请求,并下载第二页面。第二页面为ip地址对应的页面,该页面可以为该ip地址对应的网站的主页面。网页查杀模块420对第一页面和第二页面进行比较,根据页面的相似度比较结果,获取云查杀结果。

网页查杀模块420在对第一页面和第二页面进行比较时,可以分别解析第一页面和第二页面,得到各自对应的dom树。网页查杀模块420通过对两者dom数各树节点进行比较,得到两页面的相似度比较结果。相似度比较结果中包括了第一页面和第二页面的差异值。若差异值大于预设阈值如20%,网页查杀模块420认为第一页面和第二页面不相似,否则,网页查杀模块420认为第一页面和第二页面相似。除此之外,网页查杀模块420也可以采用其他方式对第一页面和第二页面进行比较,得到页面的相似度比较结果。此处不做限定。

网页查杀模块420根据从两页面的相似度比较结果,以及第一页面的http状态码和第二页面的http状态码,若第二页面的http状态码不为200,即第二页面访问失败,如http状态码为404、503等。此时,极大可能存在域名解析结果是被劫持的数据的情况。网页查杀模块420需要进一步对相似度比较结果进行判断。若相似度比较结果为第一页面和第二页面不相似,则网页查杀模块420得到域名解析结果是被劫持的数据的云查杀结果。若第二页面的http状态码为200,即第二页面访问成功,且相似度比较结果为第一页面和第二页面相似,则网页查杀模块420得到域名解析结果不是被劫持的数据的云查杀结果。或者第二页面的http状态码与第一页面的http状态码不同,且相似度比较结果为第一页面和第二页面不相似,网页查杀模块420得到域名解析结果是被劫持的数据的云查杀结果。或者第二页面的http状态码与第一页面的http状态码相同,且相似度比较结果为第一页面和第二页面相似,则网页查杀模块420得到域名解析结果不是被劫持的数据的云查杀结果。

若第二页面的http状态码不为200,但相似度比较结果为第一页面和第二页面相似,或者第二页面的http状态码与第一页面的http状态码不同,但相似度比较结果为第一页面和第二页面相似,网页查杀模块420此时还需要进一步进行核查,得到域名解析结果是否被劫持的数据的云查杀结果。

由于ip地址的类型不同,云端服务器400还包括下载规则模块430。在下载前,下载规则模块430还可以根据ip地址的类型预先设置第一页面和/或第二页面的下载规则,方便在对第一页面和第二页面进行比较时,网页查杀模块420可以下载更易进行比较的页面。

域名解析防护装置的描述参照图3实施例的描述,在此不再赘述。

根据本发明提供的域名解析防护系统,将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果;依据本地规则和/或云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据;若是,对域名解析结果进行修复,并返回修复后的域名解析结果。通过拦截返回的域名解析结果,在用户和dns服务器之间构建一道屏障,保障网络安全。依据本地规则和/或云查杀结果对域名解析结果进行分析,可以及时、主动的判断域名解析结果是否被劫持,且判断时更加准确,提高分析的有效率。并且在判断后,对域名解析结果进行修复,返回的正确的域名解析结果,在保障网络安全的同时不影响用户的正常使用,且有效对域名解析进行了防护。

本申请还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的域名解析防护方法。

图5示出了根据本发明一个实施例的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图5所示,该计算设备可以包括:处理器(processor)502、通信接口(communicationsinterface)504、存储器(memory)506、以及通信总线508。

其中:

处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。

通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器502,用于执行程序510,具体可以执行上述域名解析防护方法实施例中的相关步骤。

具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。

处理器502可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器506,用于存放程序510。存储器506可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序510具体可以用于使得处理器502执行以下操作:

在一种可选的实施方式中,程序510用于使得处理器502将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果;依据本地规则和/或云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据;若是,对域名解析结果进行修复,并返回修复后的域名解析结果。

在一种可选的实施方式中,程序510用于使得处理器502利用伪造函数钩取远程过程调用协议请求函数,将携带有域名信息的域名解析请求发送给dns服务器进行解析;设置回调函数拦截dns服务器返回的域名解析结果。

在一种可选的实施方式中,程序510用于使得处理器502在驱动程序拦截到域名解析结果之后,采用异步方式将域名解析结果传递至特权级3进行分析。

在一种可选的实施方式中,程序510用于使得处理器502判断域名解析结果中包括的ip地址是否属于本地ip地址白名单和/或本地ip地址黑名单;若ip地址属于本地ip地址白名单,则判定域名解析结果不是被劫持的数据;若ip地址属于本地ip地址黑名单,则判定域名解析结果是被劫持的数据。

在一种可选的实施方式中,程序510用于使得处理器502定时从云端服务器下载云端ip地址白名单和/或云端ip地址黑名单;根据云端ip地址白名单和/或云端ip地址黑名单,更新本地ip地址白名单和/或本地ip地址黑名单。

在一种可选的实施方式中,程序510用于使得处理器502将域名信息和/或域名解析结果中包括的ip地址发送给云端服务器,以供云端服务器根据域名信息和/或ip地址进行云查杀处理,获取云查杀结果;根据云查杀结果,判断域名解析结果是否为被劫持的数据。

在一种可选的实施方式中,程序510用于使得处理器502判断域名解析结果中包括的ip地址是否属于云端ip地址白名单和/或云端ip地址黑名单;若ip地址属于云端ip地址白名单,则得到域名解析结果不是被劫持的数据的云查杀结果;若ip地址属于云端ip地址黑名单,则得到域名解析结果是被劫持的数据的云查杀结果。

在一种可选的实施方式中,程序510用于使得处理器502将携带有域名信息的域名解析请求发送给预先配置的属于dns服务器白名单中的dns服务器,获取dns解析得到的安全ip地址;按照安全ip地址下载第一页面;第一页面为安全ip地址对应的页面;按照域名解析结果中包括的ip地址及发送者主机信息进行网络请求,并下载第二页面;第二页面为ip地址对应的页面;对第一页面和第二页面进行比较,根据页面的相似度比较结果,获取云查杀结果。

在一种可选的实施方式中,程序510用于使得处理器502获取第一页面和第二页面的相似度比较结果,以及第一页面的http状态码和第二页面的http状态码;根据相似度比较结果、第一页面的http状态码和第二页面的http状态码,获取云查杀结果。

在一种可选的实施方式中,程序510用于使得处理器502若第二页面的http状态码不为200,且相似度比较结果为不相似,则得到域名解析结果是被劫持的数据的云查杀结果。

在一种可选的实施方式中,程序510用于使得处理器502若第二页面的http状态码与第一页面的http状态码不同,且相似度比较结果为不相似,则得到域名解析结果是被劫持的数据的云查杀结果。

在一种可选的实施方式中,程序510用于使得处理器502根据ip地址的类型,预先设置第一页面和/或第二页面的下载规则。

在一种可选的实施方式中,程序510用于使得处理器502由第一进程执行依据本地规则和/或云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据的步骤;由第二进程执行对域名解析结果进行修复,并返回修复后的域名解析结果的步骤;其中,第一进程和第二进程为异步处理方式。

在一种可选的实施方式中,程序510用于使得处理器502根据域名解析请求中携带的地域信息,获取地域信息对应的白ip地址;使用白ip地址对域名解析结果进行修复,并返回修复后的域名解析结果。

程序510中各步骤的具体实现可以参见上述域名解析防护实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

通过本实施例提供的方案,将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果;依据本地规则和/或云查杀结果对域名解析结果进行分析,判断域名解析结果是否为被劫持的数据;若是,对域名解析结果进行修复,并返回修复后的域名解析结果。通过拦截返回的域名解析结果,在用户和dns服务器之间构建一道屏障,保障网络安全。依据本地规则和/或云查杀结果对域名解析结果进行分析,可以及时、主动的判断域名解析结果是否被劫持,且判断时更加准确,提高分析的有效率。并且在判断后,对域名解析结果进行修复,返回的正确的域名解析结果,在保障网络安全的同时不影响用户的正常使用,且有效对域名解析进行了防护。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的域名解析防护的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了:a1.一种域名解析防护方法,其包括:

将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果;

依据本地规则和/或云查杀结果对所述域名解析结果进行分析,判断所述域名解析结果是否为被劫持的数据;

若是,对所述域名解析结果进行修复,并返回修复后的域名解析结果。

a2.根据a1所述的方法,其中,所述将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果进一步包括:

利用伪造函数钩取远程过程调用协议请求函数,将携带有域名信息的域名解析请求发送给dns服务器进行解析;

设置回调函数拦截所述dns服务器返回的域名解析结果。

a3.根据a1或a2所述的方法,其中,所述依据本地规则和/或云查杀结果对所述域名解析结果进行分析进一步包括:

在驱动程序拦截到所述域名解析结果之后,采用异步方式将所述域名解析结果传递至特权级3进行分析。

a4.根据a1-a3中任一项所述的方法,其中,所述依据本地规则对所述域名解析结果进行分析,判断所述域名解析结果是否为被劫持的数据进一步包括:

判断所述域名解析结果中包括的ip地址是否属于本地ip地址白名单和/或本地ip地址黑名单;

若ip地址属于本地ip地址白名单,则判定所述域名解析结果不是被劫持的数据;

若ip地址属于本地ip地址黑名单,则判定所述域名解析结果是被劫持的数据。

a5.根据a4所述的方法,其中,所述方法还包括:

定时从云端服务器下载云端ip地址白名单和/或云端ip地址黑名单;

根据云端ip地址白名单和/或云端ip地址黑名单,更新本地ip地址白名单和/或本地ip地址黑名单。

a6.根据a1-a3中任一项所述的方法,其中,所述依据云查杀结果对所述域名解析结果进行分析,判断所述域名解析结果是否为被劫持的数据进一步包括:

将所述域名信息和/或所述域名解析结果中包括的ip地址发送给云端服务器,以供云端服务器根据所述域名信息和/或ip地址进行云查杀处理,获取云查杀结果;

根据所述云查杀结果,判断所述域名解析结果是否为被劫持的数据。

a7.根据a6所述的方法,其中,所述云端服务器根据ip地址进行云查杀处理,获取云查杀结果进一步包括:

判断所述域名解析结果中包括的ip地址是否属于云端ip地址白名单和/或云端ip地址黑名单;

若ip地址属于云端ip地址白名单,则得到所述域名解析结果不是被劫持的数据的云查杀结果;

若ip地址属于云端ip地址黑名单,则得到所述域名解析结果是被劫持的数据的云查杀结果。

a8.根据a6所述的方法,其中,所述云端服务器根据所述域名信息和/或ip地址进行云查杀处理,获取云查杀结果进一步包括:

将携带有所述域名信息的域名解析请求发送给预先配置的属于dns服务器白名单中的dns服务器,获取dns解析得到的安全ip地址;

按照所述安全ip地址下载第一页面;所述第一页面为所述安全ip地址对应的页面;

按照所述域名解析结果中包括的ip地址及发送者主机信息进行网络请求,并下载第二页面;所述第二页面为所述ip地址对应的页面;

对所述第一页面和所述第二页面进行比较,根据页面的相似度比较结果,获取云查杀结果。

a9.根据a8所述的方法,其中,所述对第一页面和所述第二页面进行比较,根据页面的相似度比较结果,获取云查杀结果进一步包括:

获取第一页面和第二页面的相似度比较结果,以及第一页面的http状态码和所述第二页面的http状态码;

根据所述相似度比较结果、所述第一页面的http状态码和所述第二页面的http状态码,获取云查杀结果。

a10.根据a9所述的方法,其中,所述根据所述相似度比较结果、所述第一页面的http状态码和所述第二页面的http状态码,获取云查杀结果进一步包括:

若所述第二页面的http状态码不为200,且所述相似度比较结果为不相似,则得到所述域名解析结果是被劫持的数据的云查杀结果。

a11.根据a9所述的方法,其中,所述根据所述相似度比较结果、所述第一页面的http状态码和所述第二页面的http状态码,获取云查杀结果进一步包括:

若所述第二页面的http状态码与所述第一页面的http状态码不同,且所述相似度比较结果为不相似,则得到所述域名解析结果是被劫持的数据的云查杀结果。

a12.根据a8-a11中任一项所述的方法,其中,所述方法还包括:

根据ip地址的类型,预先设置所述第一页面和/或所述第二页面的下载规则。

a13.根据a1-a12中任一项所述的方法,其中,所述依据本地规则和/或云查杀结果对所述域名解析结果进行分析,判断所述域名解析结果是否为被劫持的数据的步骤具体由第一进程执行;

所述对所述域名解析结果进行修复,并返回修复后的域名解析结果的步骤具体由第二进程执行;

其中,所述第一进程和所述第二进程为异步处理方式。

a14.根据a1-a13中任一项所述的方法,其中,所述对所述域名解析结果进行修复,并返回修复后的域名解析结果进一步包括:

根据所述域名解析请求中携带的地域信息,获取所述地域信息对应的白ip地址;

使用所述白ip地址对所述域名解析结果进行修复,并返回修复后的域名解析结果。

本发明还公开了:b15.一种域名解析防护装置,其包括:

拦截模块,适于将携带有域名信息的域名解析请求发送给dns服务器进行解析,拦截dns服务器返回的域名解析结果;

分析判断模块,适于依据本地规则和/或云查杀结果对所述域名解析结果进行分析,判断所述域名解析结果是否为被劫持的数据;

修复模块,适于若所述分析判断模块判断出所述域名解析结果是被劫持的数据,对所述域名解析结果进行修复,并返回修复后的域名解析结果。

b16.根据b15所述的装置,其中,所述拦截模块进一步适于:

利用伪造函数钩取远程过程调用协议请求函数,将携带有域名信息的域名解析请求发送给dns服务器进行解析;设置回调函数拦截所述dns服务器返回的域名解析结果。

b17.根据b15或b16所述的装置,其中,所述分析判断模块进一步适于:

在驱动程序拦截到所述域名解析结果之后,采用异步方式将所述域名解析结果传递至特权级3进行分析。

b18.根据b15-b17中任一项所述的装置,其中,所述分析判断模块进一步包括:

本地判断模块,适于判断所述域名解析结果中包括的ip地址是否属于本地ip地址白名单和/或本地ip地址黑名单;若ip地址属于本地ip地址白名单,则判定所述域名解析结果不是被劫持的数据;若ip地址属于本地ip地址黑名单,则判定所述域名解析结果是被劫持的数据。

b19.根据b18所述的装置,其中,所述装置还包括:

定时更新模块,适于定时从云端服务器下载云端ip地址白名单和/或云端ip地址黑名单;根据云端ip地址白名单和/或云端ip地址黑名单,更新本地ip地址白名单和/或本地ip地址黑名单。

b20.根据b15-b17中任一项所述的装置,其中,所述分析判断模块进一步包括:

云查杀结果获取模块,适于将所述域名信息和/或所述域名解析结果中包括的ip地址发送给云端服务器,以供云端服务器根据所述域名信息和/或ip地址进行云查杀处理,获取云查杀结果;根据所述云查杀结果,判断所述域名解析结果是否为被劫持的数据。

b21.根据b15-b20中任一项所述的装置,其中,所述分析判断模块具体由第一进程运行;

所述修复模块由第二进程运行;

其中,所述第一进程和所述第二进程为异步处理方式。

b22.根据b15-b21中任一项所述的装置,其中,所述修复模块进一步适于:

根据所述域名解析请求中携带的地域信息,获取所述地域信息对应的白ip地址;使用所述白ip地址对所述域名解析结果进行修复,并返回修复后的域名解析结果。

本发明还公开了:c23.一种域名解析防护系统,其包括:云端服务器及b15-b22中任一项所述的域名解析防护装置;

所述云端服务器适于:接收所述域名解析防护装置发送的域名信息和/或域名解析结果中包括的ip地址,根据域名信息和/或ip地址进行云查杀处理,获取云查杀结果,将云查杀结果返回给所述域名解析防护装置。

c24.根据c23所述的系统,其中,所述云端服务器包括:

云端ip查杀模块,适于判断所述域名解析结果中包括的ip地址是否属于云端ip地址白名单和/或云端ip地址黑名单;若ip地址属于云端ip地址白名单,则得到所述域名解析结果不是被劫持的数据的云查杀结果;若ip地址属于云端ip地址黑名单,则得到所述域名解析结果是被劫持的数据的云查杀结果。

c25.根据c23所述的系统,其中,所述云端服务器包括:

网页查杀模块,适于将携带有所述域名信息的域名解析请求发送给预先配置的属于dns服务器白名单中的dns服务器,获取dns解析得到的安全ip地址;按照所述安全ip地址下载第一页面;所述第一页面为所述安全ip地址对应的页面;按照所述域名解析结果中包括的ip地址及发送者主机信息进行网络请求,并下载第二页面;所述第二页面为所述ip地址对应的页面;对所述第一页面和所述第二页面进行比较,根据页面的相似度比较结果,获取云查杀结果。

c26.根据c25所述的系统,其中,所述网页查杀模块进一步适于:

获取第一页面和第二页面的相似度比较结果,以及第一页面的http状态码和所述第二页面的http状态码;根据所述相似度比较结果、所述第一页面的http状态码和所述第二页面的http状态码,获取云查杀结果。

c27.根据c25所述的系统,其中,所述网页查杀模块进一步适于:

若所述第二页面的http状态码不为200,且所述相似度比较结果为不相似,则得到所述域名解析结果是被劫持的数据的云查杀结果。

c28.根据c25所述的系统,其中,所述网页查杀模块进一步适于:

若所述第二页面的http状态码与所述第一页面的http状态码不同,且所述相似度比较结果为不相似,则得到所述域名解析结果是被劫持的数据的云查杀结果。

c29.根据c25-c28中任一项所述的系统,其中,所述云端服务器还包括:

下载规则模块,适于根据ip地址的类型,预先设置所述第一页面和/或所述第二页面的下载规则。

本发明还公开了:d30.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如a1-a14中任一项所述的域名解析防护方法对应的操作。

本发明还公开了:e31.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如a1-a14中任一项所述的域名解析防护方法对应的操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1