发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种检查和修复恶意DNS设置的方法和装置。
依据本发明的一个方面,提供了一种检查和修复恶意DNS设置的方法,其中,包括:
获取客户端的DNS IP地址;
将所获取的客户端的DNS IP地址与预先收集的恶意DNS IP地址列表进行匹配,如果匹配成功,则将所述客户端的DNS IP地址修改为合法的DNS IP地址。
可选地,所述获取客户端的DNS IP地址的步骤具体包括:
通过读取所述客户端的注册表中的网络接口ID,获取所述客户端的DNSIP地址。
可选地,在所述将所述DNS IP地址修改为合法的DNS IP地址的步骤之后还包括:
重新启动DNS CACHE服务,以将所述合法的DNS IP地址存入DNSCACHE。
可选地,所述方法还包括:
判断所述客户端是否使用了DHCP服务获取网络配置,
如果是,则获取此客户端连接的具有DHCP功能的网络连接设备的DNSIP地址,将所述具有DHCP功能的网络连接设备的DNS IP地址与所述预先收集的恶意DNS IP地址列表进行匹配,如果匹配成功,则将所述具有DHCP功能的网络连接设备的DNS IP地址修改为合法的DNS IP地址。
可选地,所述预先收集的恶意DNS IP地址列表为所述客户端数据库中预先收集的恶意DNS IP地址列表,或者为从服务器端下载至客户端数据库中的恶意DNS IP地址列表。
可选地,所述判断所述客户端是否使用了DHCP服务包括:
通过获取所述客户端注册表中的网络接口ID,来判断所述客户端是否使用了DHCP服务;
或者,
通过获取具有DHCP功能的网络连接设备的DNS IP地址,来判断所述客户端是否使用了DHCP服务;
或者,
通过获取所述客户端的网关所指向的IP地址,来判断所述客户端是否使用了DHCP服务。
可选地,所述获取具有DHCP功能的网络连接设备的DNS IP地址的步骤具体包括:
从所述客户端注册表中获取具有DHCP功能的网络连接设备的IP地址,并通过所述具有DHCP功能的网络连接设备的IP地址建立与所述客户端的网络连接,通过该连接返回的数据包中的HTTP头部数据,获取所述具有DHCP功能的网络连接设备的型号;
根据所述具有DHCP功能的网络连接设备的IP地址和所述具有DHCP功能的网络连接设备的型号,访问所述具有DHCP功能的网络连接设备的DHCP配置页面,从该页面中获取所述具有DHCP功能的网络连接设备的DNS IP地址。
可选地,所述将所述具有DHCP功能的网络连接设备的DNS IP地址修改为合法的DNS IP地址的步骤具体包括:将所述合法的具有DHCP功能的网络连接设备的DNS IP地址发送给所述具有DHCP功能的网络连接设备,所述具有DHCP功能的网络连接设备将自身的DNS IP地址修改为所述合法的DNS IP地址。
依据本发明的另一个方面,提供了一种检查和修复恶意DNS设置的装置,该装置包括:
获取单元,适于获取客户端的DNS IP地址;
存储单元,适于存储预先收集的恶意DNS IP地址列表;
匹配单元,适于将所获取的客户端的DNS IP地址与所述预先收集的恶意DNS IP地址列表进行匹配;
修改单元,适于在所获取的客户端的DNS IP地址与所述预先收集的恶意DNS IP地址列表相匹配时,将所述客户端的DNS IP地址修改为合法的DNS IP地址。
可选地,所述获取单元,适于通过读取所述客户端的注册表中的网络接口ID,获取所述客户端的DNS IP地址。
可选地,所述装置还包括:
启动单元,适于在所述修改单元将所述客户端的DNS IP地址修改为合法的DNS IP地址之后,重新启动DNS CACHE服务,以将所述合法的DNSIP地址存入DNS CACHE。
可选地,所述装置还包括:判断单元,适于判断所述客户端是否使用了DHCP服务;
所述获取单元,进一步适于在所述客户端使用了DHCP服务的情况下,获取具有DHCP功能的网络连接设备的DNS IP地址;
所述匹配单元,进一步适于将所述具有DHCP功能的网络连接设备的DNS IP地址与所述预先收集的恶意DNS IP地址列表进行匹配;
所述修改单元,进一步适于在所述具有DHCP功能的网络连接设备的DNS IP地址与所述预先收集的恶意DNS IP地址列表相匹配时,将所述具有DHCP功能的网络连接设备的DNS IP地址修改为合法的具有DHCP功能的网络连接设备DNS IP地址。
可选地,所述预先收集的恶意DNS IP地址列表为所述客户端数据库中预先收集的恶意DNS IP地址列表,或者为从服务器端下载至客户端数据库中的恶意DNS IP地址列表。
可选地,所述判断单元至少包括以下之一:
第一判断子单元,适于通过获取所述客户端注册表中的网络接口ID,来判断所述客户端是否使用了DHCP服务;
第二判断子单元,适于通过获取由网络设备厂商提供的具有DHCP功能的网络连接设备的DNS IP地址,来判断所述客户端是否使用了DHCP服务;
第三判断子单元,适于通过获取所述客户端的网关所指向的IP地址,来判断所述客户端是否使用了DHCP服务。
可选地,所述获取单元,适于从所述客户端注册表中获取具有DHCP功能的网络连接设备的IP地址,并通过所述具有DHCP功能的网络连接设备IP地址建立与所述客户端的网络连接,通过该连接返回的数据包中的HTTP头部数据,获取所述具有DHCP功能的网络连接设备的型号,根据所述具有DHCP功能的网络连接设备IP地址和所述具有DHCP功能的网络连接设备的型号访问所述具有DHCP功能的网络连接设备的DHCP配置页面,从该页面中获取所述具有DHCP功能的网络连接设备的DNS IP地址。
可选地,所述修改单元,适于将所述合法的DNS IP地址发送给所述具有DHCP功能的网络连接设备,使得所述具有DHCP功能的网络连接设备将自身的DNS IP地址修改为合法的DNS IP地址。
根据本发明的这种通过获取客户端的DNS IP地址;将所获取的客户端的DNS IP地址与预先收集的恶意DNS IP地址列表进行匹配,如果匹配成功,则将所述客户端的DNS IP地址修改为合法的DNS IP地址的技术方案,可以有效地遏制客户端的DNS IP地址被篡改,取得了降低黑客通过篡改DNS IP地址而给用户带来诸如网络钓鱼、隐私窃取等网络访问风险的有益效果。
上述说明仅仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整地传达给本领域的技术人员。
DNS包括解析器和域名服务器,并采用客户端/服务器的方式进行工作。应用程序首先要与所配置的域名服务器进行通信,请求域名服务器进行域名解析;域名服务器之间进行协作,最后返回所要访问的主机的IP地址;应用程序获得该IP地址后,开始与要访问的主机进行通信。这里,客户端通过DNS IP地址去访问域名服务器。然而,黑客常常把客户端或者路由器上设置的DNS IP地址篡改为恶意DNS IP地址,恶意DNS把正常的网址解析到钓鱼网站或者受黑客控制的主机上,以此来骗取用户钱财或窃取用户隐私。
为此,本发明实施例提供了一种检查和修复恶意DNS设置的方法。图1示出了根据本发明一个实施例的检查和修复恶意DNS设置的方法流程图。如图1所示,该方法包括:
步骤S110:获取客户端的DNS IP地址。
步骤S120:将所获取的客户端的DNS IP地址与预先收集的恶意DNS IP地址列表进行匹配。
在本步骤中,预先收集的恶意DNS IP地址列表例如可以是由安全厂商预先收集的一组非法DNS IP地址,该预先收集的恶意DNS IP地址列表可以为客户端数据库中预先收集的恶意DNS IP地址列表,或者也可以为从网站上下载至客户端数据库中的恶意DNS IP地址列表。
步骤S130:如果匹配成功,则将客户端的DNS IP地址修改为合法的DNSIP地址。
在本步骤中,可以预先设置合法的DNS IP地址白名单列表,其中存储有合法的DNS IP地址,合法的DNS IP地址例如可以是360DNS IP地址、114DNS IP地址、google DNS IP地址或者open DNS IP地址等。该预先设置的合法的DNS IP地址白名单列表可以预先存储在客户端数据库中,也可以从网站的服务器(例如:云安全服务器)上下载;如果匹配成功,则说明客户端的DNS IP地址是恶意的,则将恶意DNS IP地址修改为合法的DNS IP地址,例如:通过修改注册表键值,令其指向合法的DNS IP地址,从而达到修改注册表中键值的目的;如果匹配不成功,则放行该DNS IP地址,说明可以访问与之对应的网站。
在本实施例中,通过将所获取的客户端的DNS IP地址与预先收集的恶意DNS IP地址列表进行匹配,如果匹配不成功,则说明预先收集的恶意DNSIP地址列表中不存在与客户端的DNS IP地址相匹配的DNS IP地址,从而证明所获取的客户端的DNS IP地址没有被篡改;如果匹配成功,则说明预先收集的恶意DNS IP地址列表中存在与客户端的DNS IP地址相匹配的DNSIP地址,从而证明所获取的客户端的DNS IP地址已经被篡改了;由此,有效地遏制黑客通过篡改DNS IP地址而给网民带来的诸如网络钓鱼、隐私窃取等安全风险。
目前,具有DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)功能的网络连接设备越来越普及。需要说明的是,本文中涉及到的具有DHCP功能的网络连接设备包括但不限于:路由器(包括但不限于无线网络路由器、智能流控路由器、动态限速路由器、虚拟路由器或者宽带路由器等)、网关等。其中,路由器可以实现寻址、路由选择、分段/合段、存储-转发、分组过滤等功能。越来越多的家庭和企业使用路由器来实现网络互联。然而,在路由器的配置上,大量的用户还都使用厂商提供的默认用户名和密码,因此而存在漏洞。黑客轻易地就可以篡改路由器上的任意设置,其中包括DNS设置。这样,所有连接到被黑客篡改了设置的路由器上的客户端都将面临风险。在实际中,黑客常常将路由器上设置的DNS IP地址篡改为恶意DNS IP地址,从而恶意DNS就会把正常的网址解析到钓鱼网站或者受黑客控制的主机上,以达到骗取用户钱财或窃取用户隐私的目的。
为此,本发明实施例提供了另一种检查和修复恶意DNS设置的方法。图2示出了根据本发明另一个实施例的阻止恶意域名系统DNS的方法的流程图。如图2所示,该方法包括:
步骤S210:通过读取客户端的注册表中的网络接口ID,获取客户端的DNS IP地址。
在本步骤中,客户端可以是接受网络服务的一方,其包括但不限于移动客户端,例如,可以是计算机、移动终端等。假设{GUID}为网络接口ID(该假设仅仅是为了便于描述本发明,不构成对本发明的不当限定),可以通过读取注册表中的诸如:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\NameServer或
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\Dhcp NameServer中的数值数据(也称键值)(例如:192.168.1.1)来获取客户端的DNS IP地址。其中,NameServer指客户端设置的静态DNS,DhcpNameServer指的是从通过DHCP服务获取的动态DNS设置;先读取HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\NameServer中的数值数据,如果其中没有数值数据,则读取HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\Dhcp NameServer中的数值数据。
步骤S212:将所获取的客户端的DNS IP地址与预先收集的恶意DNS IP地址列表进行匹配。
在本步骤中,该预先收集的恶意DNS IP地址列表可以为客户端数据库中预先收集的恶意DNS IP地址列表,或者也可以为从网站上下载至客户端数据库中的恶意DNS IP地址列表。
步骤S214:判断所获取的客户端的DNS IP地址与预先收集的恶意DNSIP地址列表是否匹配,是则执行步骤S216,否则执行步骤S220。
步骤S216:如果匹配成功,则将客户端的DNS IP地址修改为合法的DNSIP地址。
在本步骤中,匹配成功之后,可以将客户端注册表中表示DNSIP地址的数值修改为表示合法的DNS IP地址的数值,其中,修改的方式可以通过修改注册表值的方式实现。
步骤S218:重启DNS CACHE服务,以将合法的DNS IP地址存入DNSCACHE。进一步执行步骤220。
在本步骤中,重启DNS CACHE服务相当于对DNS CACHE进行更新。如果DNS CACHE中存储有恶意DNS IP地址,则通过本步骤就可以将其更新为合法的DNS IP地址。DNS CACHE用于暂存第一次解析后的IP地址,当用户再次请求时,DNS可以直接从DNS CACHE中获得IP地址,从而提高了域名查询效率。
具体的,当下一次DNS查询请求到达时,可以根据关键字,调用对应的函数查询该DNS查询请求对应的解析是否在缓存中,若查询到,则对经过加密保存的解析数据进行解密,并返回给请求者,若未查询到,则向DNS服务器提出查询请求。因为恶意程序对内存的攻击难度会大于对文件的攻击难度,所以通过将缓存设置在内存中,可以满足缓存解析的DNS应答需求,同时可以避免恶意程序对缓存的攻击。
步骤S220:进一步判断客户端是否使用了DHCP服务。
在本发明的一个实施例中,可以通过获取客户端注册表中的网络接口ID来判断客户端是否使用了DHCP服务。因为注册表中记录的是精确的DHCP服务器IP地址,所以通过这种方式可以准确地判断客户端是否使用了DHCP服务。例如,可以通过读取注册表中HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\EnableDHCP中的数值,来检查网络接口上是否使用了DHCP服务。其中,通常情况下,如果EnableDHCP中的数值为1,则表示网络接口上使用了DHCP服务,说明客户端是从DHCP服务中获取的DNS配置。
在本发明的又一个实施例中,还可以通过获取由网络设备厂商提供的具有DHCP功能的网络连接设备的DNS IP地址,来判断客户端是否使用了DHCP服务。以路由器作为具有DHCP功能的网络连接设备为例,一些厂家提供的路由器的默认DNS IP地址为192.168.0.1或者192.168.1.1等。故,通过检查路由器的默认DNS IP地址也可以判断客户端是否使用了DHCP服务。
在本发明的再一个实施例中,也可以通过获取客户端的网关所指向的IP地址,来判断客户端是否使用了DHCP服务。
步骤S222:如果客户端使用了DHCP服务,则从客户端注册表中获取具有DHCP功能的网络连接设备的IP地址。
在本步骤中,例如,可以通过从注册表中的HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\DhcpServer读取具有DHCP功能的网络连接设备的IP地址。
步骤S224:通过具有DHCP功能的网络连接设备的IP地址建立与客户端的网络连接,通过该连接返回的数据包中的HTTP头部数据,获取具有DHCP功能的网络连接设备的型号。
在本步骤中,例如,可以通过连接至该具有DHCP功能的网络连接设备IP地址(例如:http://RouterIP),从而与具有DHCP功能的网络连接设备的IP地址取得连接,并从该地址接收返回数据包,该返回数据包包括HTTP头部数据,HTTP头部数据中包括有具有DHCP功能的网络连接设备的型号。以TP-LINK R860路由器为例,返回数据包的HTTP头部数据中包含:WWW-Authenticate:Basic realm="TP-LINK Router R860",根据这个信息即可获取路由器的型号。
步骤S226:根据具有DHCP功能的网络连接设备的IP地址和具有DHCP功能的网络连接设备的型号,访问具有DHCP功能的网络连接设备的DHCP配置页面,从该页面中获取具有DHCP功能的网络连接设备的DNS IP地址。
在本步骤中,根据所获取的具有DHCP功能的网络连接设备的IP地址和具有DHCP功能的网络连接设备的型号,使用用户名和密码,即可访问具有DHCP功能的网络连接设备的DHCP配置页面。例如:以TP-LINK路由器为例,用户名和密码均为admin,访问的DHCP配置页面为:http://192.168.1.1/userRpm/LanDhcpServerRpm.htm,通过该页面即可获取路由器的DNS IP地址。
步骤S228:将具有DHCP功能的网络连接设备的DNS IP地址与预先收集的恶意DNS IP地址列表进行匹配。
步骤S230:如果匹配成功,则将合法的DNS IP地址发送给具有DHCP功能的网络连接设备,使得具有DHCP功能的网络连接设备将自身的DNS IP地址修改为合法的DNS IP地址。
其中,该步骤具体地可以包括:将所述合法的具有DHCP功能的网络连接设备的DNS IP地址发送给所述具有DHCP功能的网络连接设备,该设备响应于所述合法的DNS IP地址,以将所述具有DHCP功能的网络连接设备的DNS IP地址修改为合法的具有DHCP功能的网络连接设备的DNS IP地址。其中,在发送之前可以将合法的具有DHCP功能的网络连接设备的DNSIP地址构建成特定的数据。进一步具体地,因为不同厂家生产的具有DHCP功能的网络连接设备的DNS IP地址的配置页面是不同的,所以需要将合法的具有DHCP功能的网络连接设备的DNS IP地址构建成与之相符的数据(例如:配置页面),然后将该数据发送至具有DHCP功能的网络连接设备,该具有DHCP功能的网络连接设备接收到该数据之后,自动地将恶意的DNS IP地址修改为合法的DNS IP地址。以路由器为例,在实际中,这一修改过程可以表现为通过网页进行修改。具体地,在客户端通过浏览器,提交配置页面,路由器接收到该配置页面之后,路由器中的处理器会运行对路由器进行配置和管理的软件,自动地将恶意DNS IP地址修改为合法的DNS IP地址。以TP-LINK路由器为例,将合法的路由器DNS IP地址发送至:http://192.168.1.1/userRpm/LanDhcpServerRpm.htm?dhcpserver=1&ip1=192.16 8.1.100&ip2=192.168.1.199&Lease=120&gateway=0.0.0.0&domain=&dnsserver =101.226.4.6&dnsserver2=8.8.8.8&Submit=%B1%A3+%B4%E6,从而通过上述实施例描述的方式可以把路由器的DNS IP地址修复正常。
下面通过一个具体的实施例对上述方法进行详细说明。该实施例仅仅是为了更好地说明文中提到的方法,不构成对本发明的不当限制。
以下假设仅仅是为了更清楚地描述本发明,不构成对本发明保护范围的不当限制。
假设:客户端为Windows客户端,所使用的具有DHCP功能的网络连接设备为TP-LINK路由器,TP-LINK路由器使用了DHCP服务,TP-LINK路由器使用的是默认的用户名和密码,即用户名和密码均为admin,黑客把该路由器的DNS IP地址篡改为恶意DNS IP地址(184.105.175.69,66.102.253.29)。
当一台Windows客户端接入上述路由器之后,自动得到的IP地址为:192.168.1.100,DNS服务器地址也自动地被设置成了(184.105.175.69,66.102.253.29)。黑客通过上述篡改行为,就可以将网民引导至非法网站,从而窃取网民的隐私信息,利用这些网民的隐私信息,黑客就可以进行非法行为。
然而,采用上述本发明实施例提供的方法实施例(具体步骤在此不作赘述),就可以修复被篡改了的DNS IP地址,从而解除客户端和所有接入上述路由器的终端与恶意网站之间的连接,进而有效地遏制黑客通过篡改DNSIP地址而给网民带来的诸如网络钓鱼、隐私窃取等安全风险。
为了阻止DNS被恶意篡改,本发明实施例还提供了一种检查和修复恶意DNS设置的装置。图3示出了根据本发明一个实施例的检查和修复恶意DNS设置的装置300的结构示意图。如图3所示,该检查和修复恶意DNS设置的装置300包括:获取单元310、存储单元330、匹配单元320和修改单元340。其中:
获取单元310适于获取客户端的DNS IP地址;
存储单元330适于存储预先收集的恶意DNS IP地址列表;
匹配单元320适于将所获取的客户端的DNS IP地址与预先收集的恶意DNS IP地址列表进行匹配;
修改单元340适于在所获取的客户端的DNS IP地址与所述预先收集的恶意DNS IP地址列表相匹配时,将客户端的DNS IP地址修改为合法的DNSIP地址。
其中,预先收集的恶意DNS IP地址列表例如可以是由安全厂商预先收集的一组非法DNS IP地址,该预先收集的恶意DNS IP地址列表可以为客户端数据库中预先收集的恶意DNS IP地址列表,或者也可以为从网站上下载至客户端数据库中的恶意DNS IP地址列表。
上述装置可以预先设置合法的DNS IP地址白名单列表,其中存储有合法的DNS IP地址,合法的DNS IP地址例如可以是360DNS IP地址、114DNSIP地址、google DNS IP地址或者open DNS IP地址等。该预先设置的合法的DNS IP地址白名单列表可以预先存储在存储单元中,也可以从服务器端(例如:云安全服务器)下载;如果匹配成功,则说明客户端的DNS IP地址是恶意的,则将恶意DNS IP地址修改为合法的DNS IP地址,例如:通过修改注册表键值,令其指向合法的DNS IP地址,从而达到修改注册表中键值的目的;如果匹配不成功,则放行该DNS IP地址,说明可以访问与之对应的网站。
通过采用上述本发明实施例提供的技术方案,匹配单元320将所获取的客户端的DNS IP地址与预先收集的恶意DNS IP地址列表进行匹配;如果匹配成功,则修改单元340将客户端的DNS IP地址修改为合法的DNS IP地址。由此,解决了如何阻止黑客恶意篡改DNS的技术问题,有效地遏制黑客通过篡改DNS IP地址而给网民带来的诸如网络钓鱼、隐私窃取等安全风险。
需要说明的是,本文中涉及到的具有DHCP功能的网络连接设备包括但不限于:路由器(包括但不限于无线网络路由器、智能流控路由器、动态限速路由器、虚拟路由器或者宽带路由器等)、网关等。其中,路由器可以实现寻址、路由选择、分段/合段、存储-转发、分组过滤等功能。越来越多的家庭和企业使用路由器来实现网络互联。然而,在路由器的配置上,大量的用户还都使用厂商提供的默认用户名和密码,因此而存在漏洞。黑客轻易地就可以篡改路由器上的任意设置,其中包括DNS设置。这样,所有连接到被黑客篡改了设置的路由器上的客户端都将面临风险。在实际中,黑客常常将路由器上设置的DNS IP地址篡改为恶意DNS IP地址,从而恶意DNS就会把正常的网址解析到钓鱼网站或者受黑客控制的主机上,以达到骗取用户钱财或窃取用户隐私的目的。
为此,本发明实施例还提供了一种检查和修复恶意DNS设置的装置。图4示出了根据本发明另一个实施例的检查和修复恶意DNS设置的装置400的结构示意图。如图4所示,该装置400包括:获取单元410、存储单元430、匹配单元420、修改单元440、启动单元460和判断单元450。其中:
获取单元410适于通过读取客户端的注册表中的网络接口ID,获取客户端的DNS IP地址;
存储单元430适于存储预先收集的恶意DNS IP地址列表;
匹配单元420适于将所获取的客户端的DNS IP地址与预先收集的恶意DNS IP地址列表进行匹配;
修改单元440适于在所获取的客户端的DNS IP地址与所述预先收集的恶意DNS IP地址列表相匹配时,将客户端的DNS IP地址修改为合法的DNSIP地址;
启动单元460适于在修改单元将客户端的DNS IP地址修改为合法的DNS IP地址之后,重启DNS CACHE服务,以将合法的DNS IP地址存入DNS CACHE;
判断单元450适于判断客户端是否使用了DHCP服务。
其中,客户端可以是接受网络服务的一方,其包括但不限于移动客户端,例如,可以是计算机、移动终端等。假设{GUID}为网络接口ID(该假设仅仅是为了便于描述本发明,不构成对本发明的不当限定),可以通过读取注册表中的诸如:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\NameServer或
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\Dhcp NameServer中的数值数据(也称键值)(例如:192.168.1.10.0.0.0)
来获取客户端的DNS IP地址。其中,优先读取HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\NameServer中的数值数据,如果其中没有数值数据,则读取HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\Dhcp NameServer中的数值数据。其中,修改的方式可以通过修改注册表键值的方式实现。
其中,启动DNS CACHE服务相当于对DNS CACHE进行更新。如果DNS CACHE中存储有恶意DNS IP地址,则通过本步骤就可以将其更新为合法的DNS IP地址。DNS CACHE用于暂存第一次解析后的IP地址,当用户再次请求时,DNS可以直接从DNS CACHE中获得IP地址,从而提高了域名查询效率。
具体的,当下一次DNS查询请求到达时,可以根据关键字,调用对应的函数查询该DNS查询请求对应的解析是否在缓存中,若查询到,则对经过加密保存的解析数据进行解密,并返回给请求者,若未查询到,则向DNS服务器提出查询请求。因为恶意程序对内存的攻击难度会大于对文件的攻击难度,所以通过将缓存设置在内存中,可以满足缓存解析的DNS应答需求,同时可以避免恶意程序对缓存的攻击。
在本发明的一个实施例中,判断单元450进一步至少包括第一判断子单元452、第二判断子单元456和第三判断子单元458三者中的一个,其中,第一判断子单元452适于通过获取所述客户端注册表中的网络接口ID,来判断所述客户端是否使用了DHCP服务,其中,因为注册表中记录的是精确的DHCP服务器IP地址,所以通过这种方式可以准确地判断客户端是否使用了DHCP服务。例如,可以通过读取注册表中HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\EnableDHCP中的数值,来检查网络接口上是否使用了DHCP服务。其中,通常情况下,如果EnableDHCP中的数值为1,则表示网络接口上使用了DHCP服务,说明客户端是从DHCP服务中获取的DNS配置;第二判断子单元456适于通过获取由网络设备厂商提供的具有DHCP功能的网络连接设备的DNS IP地址,来判断所述客户端是否使用了DHCP服务,以路由器作为具有DHCP功能的网络连接设备为例,一些厂家提供的路由器的默认DNS IP地址为192.168.0.1或者192.168.1.1等。故,通过检查路由器的默认DNS IP地址也可以判断客户端是否使用了DHCP服务;第三判断子单元458适于通过获取所述客户端的网关所指向的IP地址,来判断所述客户端是否使用了DHCP服务。
在本发明的一个实施例中,获取单元410进一步适于在所述客户端使用了DHCP服务的情况下,获取具有DHCP功能的网络连接设备的DNS IP地址。
例如,可以通过从注册表中的HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\DhcpServer读取具有DHCP功能的网络连接设备的IP地址。
在本发明的一个实施例中,匹配单元420进一步适于将具有DHCP功能的网络连接设备的DNS IP地址与预先收集的恶意DNS IP地址列表进行匹配。
在本发明的一个实施例中,修改单元440进一步适于在所述具有DHCP功能的网络连接设备的DNS IP地址与所述预先收集的恶意DNS IP地址列表相匹配时,将所述具有DHCP功能的网络连接设备的DNS IP地址修改为合法的DNS IP地址。
在本发明的一个实施例中,获取单元410进一步适于从客户端注册表中获取具有DHCP功能的网络连接设备的IP地址,并通过具有DHCP功能的网络连接设备的IP地址建立与所述客户端的网络连接,通过该连接返回的数据包中的HTTP头部数据,获取所述具有DHCP功能的网络连接设备的型号,根据具有DHCP功能的网络连接设备的IP地址和具有DHCP功能的网络连接设备的型号,访问具有DHCP功能的网络连接设备的DHCP配置页面,从该页面中获取具有DHCP功能的网络连接设备的DNS IP地址。
其中,例如,可以通过连接至该具有DHCP功能的网络连接设备IP地址(例如:http://RouterIP),从而与具有DHCP功能的网络连接设备的IP地址取得连接,并从该地址接收返回数据包,该返回数据包包括HTTP头部数据,HTTP头部数据中包括有具有DHCP功能的网络连接设备的型号。以TP-LINK R860路由器为例,返回数据包的HTTP头部数据中包含:WWW-Authenticate:Basic realm="TP-LINK Router R860",根据这个信息即可获取路由器的型号。
其中,根据所获取的具有DHCP功能的网络连接设备的IP地址和具有DHCP功能的网络连接设备的型号,使用用户名和密码,即可访问具有DHCP功能的网络连接设备的DHCP配置页面。例如:以TP-LINK路由器为例,用户名和密码均为admin,访问的DHCP配置页面为:http://192.168.1.1/userRpm/LanDhcpServerRpm.htm,通过该页面即可获取路由器的DNS IP地址。
在本发明的一个实施例中,修改单元440进一步适于将合法的DNS IP地址发送给具有DHCP功能的网络连接设备,使得具有DHCP功能的网络连接设备将自身的DNS IP地址修改为合法的DNS IP地址。
其中,将所述合法的具有DHCP功能的网络连接设备的DNS IP地址发送给所述具有DHCP功能的网络连接设备之后,该设备响应于所述合法的DNS IP地址,以将所述具有DHCP功能的网络连接设备的DNS IP地址修改为合法的具有DHCP功能的网络连接设备的DNS IP地址。其中,在发送之前可以将合法的具有DHCP功能的网络连接设备的DNS IP地址构建成特定的数据。进一步具体地,因为不同厂家生产的具有DHCP功能的网络连接设备的DNS IP地址的配置页面是不同的,所以需要将合法的具有DHCP功能的网络连接设备的DNS IP地址构建成与之相符的数据(例如:配置页面),然后将该数据发送至具有DHCP功能的网络连接设备,该具有DHCP功能的网络连接设备接收到该数据之后,自动地将恶意的DNS IP地址修改为合法的DNS IP地址。以路由器为例,在实际中,这一修改过程可以表现为通过网页进行修改。具体地,在客户端通过浏览器,提交配置页面,路由器接收到该配置页面之后,路由器中的处理器会运行对路由器进行配置和管理的软件,自动地将恶意DNS IP地址修改为合法的DNS IP地址。以TP-LINK路由器为例,将合法的路由器DNS IP地址发送至:http://192.168.1.1/userRpm/LanDhcpServerRpm.htm?dhcpserver=1&ip1=192.16 8.1.100&ip2=192.168.1.199&Lease=120&gateway=0.0.0.0&domain=&dnsserver =101.226.4.6&dnsserver2=8.8.8.8&Submit=%B1%A3+%B4%E6,从而通过上述实施例描述的方式可以把路由器的DNS IP地址修复正常。
本发明可以应用于众多安全产品(例如,“360安全卫士”的系统急救箱、木马云查杀引擎、主机防御系统等产品),从而具有防范应用层恶意程序攻击DNS的作用,可以在客户端有效地遏制木马或者恶意程序等通过篡改DNS而给用户带来的风险,取得了降低黑客通过篡改DNS而给用户带来诸如网络钓鱼、隐私窃取等网络访问风险的有益效果。
本发明实施例中所述的装置,其中,所述装置还包括:
启动单元,适于在所述修改单元将所述客户端的DNS IP地址修改为合法的DNS IP地址之后,重新启动DNS CACHE服务,以将所述合法的DNSIP地址存入DNS CACHE。
其中,所述装置还包括:判断单元,适于判断所述客户端是否使用了DHCP服务;
所述获取单元,进一步适于在所述客户端使用了DHCP服务的情况下,获取具有DHCP功能的网络连接设备的DNS IP地址;
所述匹配单元,进一步适于将所述具有DHCP功能的网络连接设备的DNS IP地址与所述预先收集的恶意DNS IP地址列表进行匹配;
所述修改单元,进一步适于在所述具有DHCP功能的网络连接设备的DNS IP地址与所述预先收集的恶意DNS IP地址列表相匹配时,将所述具有DHCP功能的网络连接设备的DNS IP地址修改为合法的具有DHCP功能的网络连接设备DNS IP地址。
根据本发明实施例所述的装置,其中,所述预先收集的恶意DNS IP地址列表为所述客户端数据库中预先收集的恶意DNS IP地址列表,或者为从服务器端下载至客户端数据库中的恶意DNS IP地址列表。
根据本发明实施例所述的装置,其中,所述判断单元至少包括以下之一:
第一判断子单元,适于通过获取所述客户端注册表中的网络接口ID,来判断所述客户端是否使用了DHCP服务;
第二判断子单元,适于通过获取由网络设备厂商提供的具有DHCP功能的网络连接设备的DNS IP地址,来判断所述客户端是否使用了DHCP服务;
第三判断子单元,适于通过获取所述客户端的网关所指向的IP地址,来判断所述客户端是否使用了DHCP服务。
根据本发明实施例所述的装置:
所述获取单元,适于从所述客户端注册表中获取具有DHCP功能的网络连接设备的IP地址,并通过所述具有DHCP功能的网络连接设备IP地址建立与所述客户端的网络连接,通过该连接返回的数据包中的HTTP头部数据,获取所述具有DHCP功能的网络连接设备的型号,根据所述具有DHCP功能的网络连接设备IP地址和所述具有DHCP功能的网络连接设备的型号访问所述具有DHCP功能的网络连接设备的DHCP配置页面,从该页面中获取所述具有DHCP功能的网络连接设备的DNS IP地址。
根据本发明实施例所述的装置,其中,
所述修改单元,适于将所述合法的DNS IP地址发送给所述具有DHCP功能的网络连接设备,使得所述具有DHCP功能的网络连接设备将自身的DNS IP地址修改为合法的DNS IP地址。
需要说明的是:
本文中所描述的步骤可以进行组合,也可以进行拆分;本文中所描述的单元也可以进行组合或者拆分。
本文中所述的“一个实施例”、“实施例”意味着:结合实施例描述的技术特征、结构或者特性包括在本发明的至少一个实施例中。另外,还请注意,文中的“在本发明的一个实施例中”词语表示不一定全指同一个实施例。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的阻止恶意DNS程序的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为适于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。