域名解析系统DNS的安全性识别方法和装置
技术领域
本发明涉及互联网技术领域,特别是一种域名解析系统DNS的安全性识别方法和装置。
背景技术
DNS全称Domain Name System,即域名解析系统,是一种把域名解析成IP(Internet Protocol,网络之间互连的协议)地址的服务。黑客通过把计算机、路由器或其他设备上的DNS设置篡改为恶意DNS,就可以把正常网址解析到钓鱼网站或受黑客控制的主机上,以骗取用户钱财或窃取隐私等。
目前识别一个DNS是否为恶意DNS,主要是判断这个DNS是否存在域名劫持行为。这就需要使用一个或多个域名进行查询,然后把查询结果与预期结果进行比对,判断是否有劫持嫌疑。假设要识别一个DNS(其IP地址为Q)是否劫持了域名D,首先到该DNS上请求域名D的解析信息,这时会返回域名D对应的解析结果,把返回的解析结果与域名D合法解析信息进行比对,判断是否一致。如果不一致的话,那么该DNS上可能存在劫持域名D的情况。这种方法的前提是,必须事先知道域名D的各项信息,比如有哪些合法的A记录(用来指定主机名或域名对应的IP地址记录)或CNAME(别名记录)等。但是,这个条件不容易满足,比如对于那些使用了CDN(Content Delivery Network,内容分发网络)加速的大型网站,针对一个域名返回的合法解析信息经常会有变动,因此目前的这种识别方法不易实施。
综上所述,亟需提供一种有效且易于实施的识别DNS的安全性的方案,从而有效遏制黑客通过篡改DNS给网络带来的安全风险,给用户提供一个安全的网络环境。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的域名解析系统DNS的安全性识别方法和相应的装置。
依据本发明的一个方面,提供了一种域名解析系统DNS的安全性识别方法,包括:获取网络上各终端设备的IP地址与其被配置的DNS之间的映射关系;对于每一个DNS,获取根据所述映射关系确定的该DNS对应的一个或多个IP地址的归属地,并统计出各归属地的终端设备的数量;根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,并根据处理结果识别出该DNS的安全性。
可选地,所述各终端设备的IP地址是指各终端设备的公网出口IP地址。
可选地,所述DNS是指本地Local DNS。
可选地,所述IP地址的归属地是指IP地址所属的地区和运营商。
可选地,根据处理结果识别出该DNS的安全性,进一步包括:将处理结果与所述安全性策略的判断规则进行比较,识别出该DNS的安全性。
可选地,根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,进一步包括:根据统计出的该DNS对应的各归属地的终端设备的数量,计算该DNS对应的归属地的分散度,其中,所述分散度用于衡量该DNS对应的各归属地的终端设备的数量分布情况;
将处理结果与所述安全性策略的判断规则进行比较,识别出该DNS的安全性,进一步包括:判断计算的分散度是否大于第一预设阈值;若是,则确定该DNS不安全;若否,则确定该DNS安全。
可选地,根据统计出的该DNS对应的各归属地的终端设备的数量,计算该DNS对应的归属地的分散度,包括:将该DNS对应的各归属地的终端设备的数量作为一个数据集的数据元素;确定至少从该数据集中取出的数据元素的个数,以使取出的数据元素的总和大于或等于该数据集中所有数据元素的总和与第二预设阈值的乘积,其中,所述第二预设阈值的取值范围为(0,100%);将确定的个数作为该DNS对应的归属地的分散度。
可选地,所述第二预设阈值的取值范围为[80%,90%]。
可选地,若所述第二预设阈值为80%,所述第一预设阈值为2。
可选地,根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,进一步包括:确定该DNS对应的各归属地的终端设备的数量中终端设备的数量最多的归属地;
将处理结果与所述安全性策略的判断规则进行比较,识别出该DNS的安全性,进一步包括:获取该DNS的IP地址的归属地,判断确定的归属地与获取的该DNS的IP地址的归属地是否相同;若相同,则确定该DNS安全;若不相同,则确定该DNS不安全。
依据本发明的另一个方面,还提供了一种域名解析系统DNS的安全性识别装置,包括:
获取模块,适于获取网络上各终端设备的IP地址与其被配置的DNS之间的映射关系;
统计模块,适于对于每一个DNS,获取根据所述映射关系确定的该DNS对应的一个或多个IP地址的归属地,并统计出各归属地的终端设备的数量;
识别模块,适于根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,并根据处理结果识别出该DNS的安全性。
可选地,所述各终端设备的IP地址是指各终端设备的公网出口IP地址。
可选地,所述DNS是指本地Local DNS。
可选地,所述IP地址的归属地是指IP地址所属的地区和运营商。
可选地,所述识别模块还适于:将处理结果与所述安全性策略的判断规则进行比较,识别出该DNS的安全性。
可选地,所述识别模块还适于:根据统计出的该DNS对应的各归属地的终端设备的数量,计算该DNS对应的归属地的分散度,其中,所述分散度用于衡量该DNS对应的各归属地的终端设备的数量分布情况;判断计算的分散度是否大于第一预设阈值;若是,则确定该DNS不安全;若否,则确定该DNS安全。
可选地,所述识别模块还适于:将该DNS对应的各归属地的终端设备的数量作为一个数据集的数据元素;确定至少从该数据集中取出的数据元素的个数,以使取出的数据元素的总和大于或等于该数据集中所有数据元素的总和与第二预设阈值的乘积,其中,所述第二预设阈值的取值范围为(0,100%);将确定的个数作为该DNS对应的归属地的分散度。
可选地,所述第二预设阈值的取值范围为[80%,90%]。
可选地,若所述第二预设阈值为80%,所述第一预设阈值为2。
可选地,所述识别模块还适于:确定该DNS对应的各归属地的终端设备的数量中终端设备的数量最多的归属地;获取该DNS的IP地址的归属地,判断确定的归属地与获取的该DNS的IP地址的归属地是否相同;若相同,则确定该DNS安全;若不相同,则确定该DNS不安全。
依据本发明提供的技术方案,可以通过各种途径方便、快捷地获取网络上各终端设备的IP地址、以及被配置的DNS,进而对于每一个DNS,可以基于该DNS对应的各归属地的终端设备的数量来识别该DNS的安全性,从而解决相关技术中提供的识别方法不易实施的问题。并且,一般而言,一个不安全DNS(即黑DNS,也称恶意DNS或存在劫持行为的DNS)的终端设备的IP地址的归属地分布较分散,而一个安全DNS的终端设备的IP地址的归属地分布较集中,本发明基于DNS对应的各归属地的终端设备的数量来识别该DNS的安全性,能够准确、客观地反映该DNS是否安全。综上,本发明提供了一种有效且易于实施的识别DNS的安全性的方案,且得到的识别结果更加准确、客观。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的DNS的安全性识别方法的流程图;以及
图2示出了根据本发明一个实施例的DNS的安全性识别装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了一种域名解析系统(DNS)的安全性识别方法,图1示出了根据本发明一个实施例的DNS的安全性识别方法的流程图。如图1所示,该方法至少包括以下步骤S102至步骤S106。
步骤S102、获取网络上各终端设备的IP地址与其被配置的DNS之间的映射关系。
步骤S104、对于每一个DNS,获取根据映射关系确定的该DNS对应的一个或多个IP地址的归属地,并统计出各归属地的终端设备的数量。
步骤S106、根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,并根据处理结果识别出该DNS的安全性。
依据本发明提供的技术方案,可以通过各种途径方便、快捷地获取网络上各终端设备的IP地址、以及被配置的DNS,进而对于每一个DNS,可以基于该DNS对应的各归属地的终端设备的数量来识别该DNS的安全性,从而解决相关技术中提供的识别方法不易实施的问题。并且,一般而言,一个不安全DNS(即黑DNS,也称恶意DNS或存在劫持行为的DNS)的终端设备的IP地址的归属地分布较分散,而一个安全DNS的终端设备的IP地址的归属地分布较集中,本发明基于DNS对应的各归属地的终端设备的数量来识别该DNS的安全性,能够准确、客观地反映该DNS是否安全。综上,本发明提供了一种有效且易于实施的识别DNS的安全性的方案,且得到的识别结果更加准确、客观。
上文步骤S102提及的网络上各终端设备可以是网络上的个人计算机、路由器、服务器、移动终端等设备。本发明中,获取网络上各终端设备的IP地址、以及被配置的DNS可以通过多种方式来实现,例如通过客户端、调研等方式,各终端设备被配置的DNS中可能存在相同的DNS。本发明还可以根据DNS的安全性的识别需求,设定一个网络范围进行终端设备的IP地址以及被配置的DNS的获取,该网络范围可以按照地区或运营商来划分。例如,某个地区终端设备上的用户个人信息频繁被窃取,很有可能该地区用户的终端设备被配置的DNS被黑客进行了篡改,此时可以有针对性地获取该地区的多个终端设备的IP地址、以及被配置的DNS,以识别出被篡改的DNS。
进一步地,在本发明的优选方案中,各终端设备的IP地址是指各终端设备的公网出口IP地址,而不是内网IP地址,比如192.168.*.*这样的内网地址。此外,各终端设备被配置的DNS可以是用户手动配置的,也可以是通过DHCP(Dynamic Host ConfigurationProtocol,动态主机配置协议)方式自动获取的,当然还可以通过其他方式来获取,本发明不限于此。需要说明的是,由于公共DNS(常用的如114DNS、DNS派等)比较特殊,用户较分散,因此本发明不能用于对公共DNS的劫持识别上。本发明需要排除终端设备被配置的DNS为常用的公共DNS的情况,比如终端设备被配置的DNS为谷歌公共域名解析服务(Google PublicDNS)的8.8.8.8,那么这条数据是无效的。
在本发明的优选方案中,DNS为Local DNS(本地域名服务器或本地域名解析系统)。Local DNS一般是配置在个人计算机、路由器或其他设备中的DNS,所有的DNS解析请求都是直接发给Local DNS,然后由Local DNS进行处理并返回解析结果。
在国土面积比较大、网络情况比较复杂的国家,比如中国,Local DNS具备一定的地域性。Local DNS一般是由某个地区的某个网络运营商设置,并通过各种方式配置到用户的终端设备中,该DNS服务器通常只服务于特定地区和特定运营商的用户。例如,北京电信设置了DNS(其IP地址为202.96.199.133)服务于北京电信的用户,通过观察该DNS的用户的地区和运营商分布可以发现,该DNS的绝大多数用户都是来自于北京电信的网络,只有极少数用户来自于其他省份地区和运营商的网络,这里DNS的用户是指被配置了该DNS的用户的终端设备。对于一个不安全DNS(即黑DNS,也称恶意DNS或存在劫持行为的DNS,是由一些别有用心的人搭建的、用于篡改域名解析结果的DNS,常用于进行信息窃取、钓鱼、广告弹窗等,并通过各种不正当手段设置到用户的终端设备中,作为终端设备的Local DNS,存在较大的危害性),其设置者为了自己的利益,一般都会想方设法把自己的黑DNS配置到尽可能多的用户的终端设备中,通常不会对用户的地区和运营商施加限制。因此通过观察分析大量黑DNS的用户分布,可以看到这些黑DNS的用户都比较分散,往往分布在较多的地区和运营商,不存在某一个地区或运营商占绝大多数用户的情况。由此可见,本发明基于DNS对应的各归属地的终端设备的数量来识别该DNS的安全性,得到的识别结果更加准确、客观。
在步骤S104中,对于每一个DNS,获取根据映射关系确定的该DNS对应的一个或多个IP地址的归属地,并统计出各归属地的终端设备的数量。这里,IP地址的归属地是指IP地址所属的地区和运营商,例如123.125.83.1这个IP地址所属的地区为“北京市”,运营商为“电信”,那么它的归属地就是“北京电信”。本发明可以通过各种IP查询网站查询某个IP地址的归属地,实现获取某个DNS对应的一个或多个IP地址的归属地的目的。
在步骤S104中对于每一个DNS,获取该DNS对应的一个或多个IP地址的归属地,并统计出各归属地的终端设备的数量之后,步骤S106根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,并根据处理结果识别出该DNS的安全性。本发明提供了多种预设的安全性策略以识别出DNS的安全性,如基于DNS对应的归属地的分散度大小的策略或者基于DNS对应的各归属地的终端设备的数量的策略,下面将详细介绍这两种识别方式。
方式一,基于DNS对应的归属地的分散度大小的策略。
在介绍方式一之前,首先介绍“分散度”的定义。即对于一组数值,表示成集合的形式为{n1,n2,n3,…},其数据总和为Sum,设置一个阈值T(百分比形式,可以介于0和100%之间),至少要从{n1,n2,n3,…}中取出N个数据累加起来得到Sum2才能使Sum2大于或等于Sum与T的乘积(即Sum2≥Sum*T),则这个N为该组数值的“分散度”。实际计算时,可以先对集合{n1,n2,n3,…}中的数据按从大到小进行排序,然后从大到小逐个取数据进行累加,当累加和达到Sum*T的时候,总共取出了N个数,N就是该组数值的分散度。N越小则表示这个集合中的数据越“集中”,N越大则表示这个集合中的数据越“分散”。
为了便于理解,这里通过两个具体的例子来说明如何计算分散度。首先对于数据集{9,8,7,6,5,4,3,2,1},该数据集中数据元素的总和Sum=45,阈值设置为T=80%,那么至少需要取出{9,8,7,6,5,4}这些数值累加起来才能大于或等于45*80%,这时总共取出了6个值,因此分散度就是6。另外一组数据集{99,2,4,1,3,7,1,5},只要取出99就可以满足要求,因此分散度为1。这两个例子进行对比,很明显第二个的分散度比第一个低,从直观上看第二个例子的数据相对比较集中。
以上详细介绍了“分散度”的定义,接下来将介绍基于DNS对应的归属地的分散度大小的策略识别出DNS的安全性的方案,在该方案中可以根据统计出的该DNS对应的各归属地的终端设备的数量,计算该DNS对应的归属地的分散度,其中,分散度用于衡量该DNS对应的各归属地的终端设备的数量分布情况。随后判断计算的分散度是否大于第一预设阈值,若是,则确定该DNS不安全;若否,则确定该DNS安全。进一步地,计算该DNS对应的归属地的分散度,可以将该DNS对应的各归属地的终端设备的数量作为一个数据集的数据元素,随后确定至少从该数据集中取出的数据元素的个数,以使取出的数据元素的总和大于或等于该数据集中所有数据元素的总和与第二预设阈值(即上文中的阈值T)的乘积,其中,第二预设阈值的取值范围为(0,100%),将确定的个数作为该DNS对应的归属地的分散度。
进一步地,根据中国国内的Local DNS情况,阈值T设置为80%-90%比较合理。对正常(即安全)的Local DNS来说,采用80%的阈值计算出的分散度应该不大于2,因此如果某个Local DNS计算出的分散度大于2,那么说明这个DNS的用户归属地分布相对比较分散,存在黑DNS的嫌疑,即该DNS不安全,且分散度越大,嫌疑越大。
方式二,基于DNS对应的各归属地的终端设备的数量的策略。
在方式二中,可以确定该DNS对应的各归属地的终端设备的数量中终端设备的数量最多的归属地,并获取该DNS的IP地址的归属地,进而判断确定的归属地与获取的该DNS的IP地址的归属地是否相同,若相同,则确定该DNS安全,若不相同,则确定该DNS不安全。举例来说,假设确定该DNS对应的各归属地的终端设备的数量中终端设备的数量最多的归属地为A1,继续查出该DNS本身的IP地址的归属地为A2。原则上A1应该和A2是一样的,也就是说一个Local DNS的绝大多数的用户应该是来自于与该DNS相同的地区和运营商。比如该DNS的IP地址的归属地为“北京电信”,那么该DNS用户最多的那个归属地应该就是“北京电信”,如果统计发现用户最多的归属地不是“北京电信”,而是“北京联通”或“辽宁电信”之类的,那么这个DNS就有黑DNS的嫌疑,即该DNS不安全。
需要说明的是,以上方式一和方式二还可以进行结合以识别DNS的安全性,例如首先通过方式一筛选出存在一定嫌疑的DNS,然后结合方式二作进一步的验证,从而找出存在劫持行为的黑DNS。当然还可以采用其他结合的方式,均属于本发明的保护范围。
下面通过一具体实施例来详细介绍本发明提供的DNS的安全性识别方法。
首先是原始数据的获取。通过客户端、调研等各种途径获取网络上各终端设备的IP地址、以及被配置的DNS,例如某用户的个人计算机的IP地址为123.124.125.126,被配置的DNS为1.2.3.4和5.6.7.8,这样就拿到了123.124.125.126—1.2.3.4和123.124.125.126—5.6.7.8这两组数据。假设最终获取的多个终端设备的DNS配置数据为{d1,d2,d3,…},其中di为一对IP-DNS数据。在本发明的优选方案中,各终端设备的IP地址是指各终端设备的公网出口IP地址,而不是内网IP地址,比如192.168.*.*这样的内网地址。此外,各终端设备被配置的DNS可以是用户手动配置的,也可以是通过DHCP方式自动获取的,当然还可以通过其他方式来获取。本发明需要排除终端设备被配置的DNS为常用的公共DNS的情况,比如终端设备被配置的DNS为Google Public DNS的8.8.8.8,那么这条数据是无效的。
其次是数据处理的过程。通过上文的方式获取到多个终端设备的IP-DNS数据之后,开始对这些数据进行处理,处理过程如下(1)至(4)。
(1)从上文的数据列表{d1,d2,d3,…}中单独取出所有的Local DNS,去除重复的,对于每一个DNS,比如对于DNS1,数据列表中取出所有DNS项为DNS1的数据对,组成数据列表{d11,d12,d13,…}。
(2)定义“归属地”的概念为某个IP地址所属的地区和运营商,比如123.125.83.1这个IP地址所属的地区为“北京市”,运营商为“电信”,那么它的归属地就是“北京电信”。可以通过各种IP查询网站查询某个IP地址的归属地。
(3)对于数据列表{d11,d12,d13,…}中每一对数据,查询终端设备的IP地址的归属地。假设对于123.124.125.126—5.6.7.8这一对数据,终端设备的IP地址是123.124.125.126,查出其归属地为“北京联通”。这样对{d11,d12,d13,…}里面的数据逐个进行查询,最终统计出来DNS1的来自于“北京联通”、“北京电信”、“天津移动”、“河北联通”等归属地的终端设备数量,假设DNS1的各归属地的终端设备的数量构成列表{n1,n2,n3,…}。
(4)通过以上步骤,可以知道每个DNS的用户IP地址的归属地分布情况,包括用户总共分布在哪些归属地以及每个归属地有多少用户。前面已经介绍过,一般的Local DNS的用户分布都是比较集中的,比如绝大多数用户都集中在“北京电信”,但是黑DNS的用户会相对比较分散。
接着,根据数据处理的结果计算各DNS对应的归属地的分散度。可以将该DNS对应的各归属地的终端设备的数量作为一个数据集的数据元素,随后确定至少从该数据集中取出的数据元素的个数,以使取出的数据元素的总和大于或等于该数据集中所有数据元素的总和与第二预设阈值(即上文中的阈值T)的乘积,其中,第二预设阈值的取值范围为(0,100%),将确定的个数作为该DNS对应的归属地的分散度。进一步地,根据中国国内的LocalDNS情况,阈值T设置为80%-90%比较合理。对正常(即安全)的Local DNS来说,采用80%的阈值计算出的分散度应该不大于2,因此如果某个Local DNS计算出的分散度大于2,那么说明这个DNS的用户归属地分布相对比较分散,存在黑DNS的嫌疑,即该DNS不安全,且分散度越大,嫌疑越大。
对于每一个DNS,基于DNS对应的归属地的分散度大小的策略筛选出存在一定嫌疑的DNS,最后基于DNS对应的各归属地的终端设备的数量的策略作进一步的验证。可以确定该DNS对应的各归属地的终端设备的数量中终端设备的数量最多的归属地,并获取该DNS的IP地址的归属地,进而判断确定的归属地与获取的该DNS的IP地址的归属地是否相同,若相同,则确定该DNS安全,若不相同,则确定该DNS不安全。比如DNS1的IP地址的归属地为“北京电信”,那么DNS1用户最多的那个归属地应该就是“北京电信”,如果统计发现用户最多的归属地不是“北京电信”,而是“北京联通”或“辽宁电信”之类的,那么DNS1就有黑DNS的嫌疑,即DNS1不安全。
需要说明的是,实际应用中,上述所有可选实施方式可以采用结合的方式任意组合,形成本发明的可选实施例,在此不再一一赘述。
基于同一发明构思,本发明实施例还提供了一种域名解析系统(DNS)的安全性识别装置,以实现上述DNS的安全性识别方法。
图2示出了根据本发明一个实施例的DNS的安全性识别装置的结构示意图。参见图2,该装置至少包括:获取模块210、统计模块220以及识别模块230。
现介绍本发明实施例的DNS的安全性识别装置的各组成或器件的功能以及各部分间的连接关系:
获取模块210,适于获取网络上各终端设备的IP地址与其被配置的DNS之间的映射关系;
统计模块220,与获取模块210相耦合,适于对于每一个DNS,获取根据映射关系确定的该DNS对应的一个或多个IP地址的归属地,并统计出各归属地的终端设备的数量;
识别模块230,与统计模块220相耦合,适于根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,并根据处理结果识别出该DNS的安全性。
在本发明的一个实施例中,各终端设备的IP地址是指各终端设备的公网出口IP地址。
在本发明的一个实施例中,DNS是指Local DNS。
在本发明的一个实施例中,IP地址的归属地是指IP地址所属的地区和运营商。
在本发明的一个实施例中,上述识别模230块还适于:将处理结果与安全性策略的判断规则进行比较,识别出该DNS的安全性。
在本发明的一个实施例中,上述识别模块230还适于:根据统计出的该DNS对应的各归属地的终端设备的数量,计算该DNS对应的归属地的分散度,其中,分散度用于衡量该DNS对应的各归属地的终端设备的数量分布情况;判断计算的分散度是否大于第一预设阈值;若是,则确定该DNS不安全;若否,则确定该DNS安全。
在本发明的一个实施例中,上述识别模块230还适于:将该DNS对应的各归属地的终端设备的数量作为一个数据集的数据元素;确定至少从该数据集中取出的数据元素的个数,以使取出的数据元素的总和大于或等于该数据集中所有数据元素的总和与第二预设阈值的乘积,其中,第二预设阈值的取值范围为(0,100%);将确定的个数作为该DNS对应的归属地的分散度。
在本发明的一个实施例中,第二预设阈值的取值范围为[80%,90%]。
在本发明的一个实施例中,若第二预设阈值为80%,第一预设阈值为2。
在本发明的一个实施例中,上述识别模块230还适于:确定该DNS对应的各归属地的终端设备的数量中终端设备的数量最多的归属地;获取该DNS的IP地址的归属地,判断确定的归属地与获取的该DNS的IP地址的归属地是否相同;若相同,则确定该DNS安全;若不相同,则确定该DNS不安全。
根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
依据本发明提供的技术方案,可以通过各种途径方便、快捷地获取网络上各终端设备的IP地址、以及被配置的DNS,进而对于每一个DNS,可以基于该DNS对应的各归属地的终端设备的数量来识别该DNS的安全性,从而解决相关技术中提供的识别方法不易实施的问题。并且,一般而言,一个不安全DNS(即黑DNS,也称恶意DNS或存在劫持行为的DNS)的终端设备的IP地址的归属地分布较分散,而一个安全DNS的终端设备的IP地址的归属地分布较集中,本发明基于DNS对应的各归属地的终端设备的数量来识别该DNS的安全性,能够准确、客观地反映该DNS是否安全。综上,本发明提供了一种有效且易于实施的识别DNS的安全性的方案,且得到的识别结果更加准确、客观。
本发明还公开了:
A1、一种域名解析系统DNS的安全性识别方法,包括:
获取网络上各终端设备的IP地址与其被配置的DNS之间的映射关系;
对于每一个DNS,获取根据所述映射关系确定的该DNS对应的一个或多个IP地址的归属地,并统计出各归属地的终端设备的数量;
根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,并根据处理结果识别出该DNS的安全性。
A2、根据A1所述的方法,其中,所述各终端设备的IP地址是指各终端设备的公网出口IP地址。
A3、根据A1所述的方法,其中,所述DNS是指本地Local DNS。
A4、根据A1所述的方法,其中,所述IP地址的归属地是指IP地址所属的地区和运营商。
A5、根据A1所述的方法,其中,根据处理结果识别出该DNS的安全性,进一步包括:
将处理结果与所述安全性策略的判断规则进行比较,识别出该DNS的安全性。
A6、根据A5所述的方法,其中,
根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,进一步包括:根据统计出的该DNS对应的各归属地的终端设备的数量,计算该DNS对应的归属地的分散度,其中,所述分散度用于衡量该DNS对应的各归属地的终端设备的数量分布情况;
将处理结果与所述安全性策略的判断规则进行比较,识别出该DNS的安全性,进一步包括:
判断计算的分散度是否大于第一预设阈值;
若是,则确定该DNS不安全;
若否,则确定该DNS安全。
A7、根据A6所述的方法,其中,根据统计出的该DNS对应的各归属地的终端设备的数量,计算该DNS对应的归属地的分散度,包括:
将该DNS对应的各归属地的终端设备的数量作为一个数据集的数据元素;
确定至少从该数据集中取出的数据元素的个数,以使取出的数据元素的总和大于或等于该数据集中所有数据元素的总和与第二预设阈值的乘积,其中,所述第二预设阈值的取值范围为(0,100%);
将确定的个数作为该DNS对应的归属地的分散度。
A8、根据A7所述的方法,其中,所述第二预设阈值的取值范围为[80%,90%]。
A9、根据A8所述的方法,其中,若所述第二预设阈值为80%,所述第一预设阈值为2。
A10、根据A5所述的方法,其中,
根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,进一步包括:确定该DNS对应的各归属地的终端设备的数量中终端设备的数量最多的归属地;
将处理结果与所述安全性策略的判断规则进行比较,识别出该DNS的安全性,进一步包括:
获取该DNS的IP地址的归属地,判断确定的归属地与获取的该DNS的IP地址的归属地是否相同;
若相同,则确定该DNS安全;
若不相同,则确定该DNS不安全。
B11、一种域名解析系统DNS的安全性识别装置,包括:
获取模块,适于获取网络上各终端设备的IP地址与其被配置的DNS之间的映射关系;
统计模块,适于对于每一个DNS,获取根据所述映射关系确定的该DNS对应的一个或多个IP地址的归属地,并统计出各归属地的终端设备的数量;
识别模块,适于根据预设的安全性策略对统计出的该DNS对应的各归属地的终端设备的数量进行处理,并根据处理结果识别出该DNS的安全性。
B12、根据B11所述的装置,其中,所述各终端设备的IP地址是指各终端设备的公网出口IP地址。
B13、根据B11所述的装置,其中,所述DNS是指本地Local DNS。
B14、根据B11所述的装置,其中,所述IP地址的归属地是指IP地址所属的地区和运营商。
B15、根据B11所述的装置,其中,所述识别模块还适于:
将处理结果与所述安全性策略的判断规则进行比较,识别出该DNS的安全性。
B16、根据B15所述的装置,其中,所述识别模块还适于:
根据统计出的该DNS对应的各归属地的终端设备的数量,计算该DNS对应的归属地的分散度,其中,所述分散度用于衡量该DNS对应的各归属地的终端设备的数量分布情况;
判断计算的分散度是否大于第一预设阈值;
若是,则确定该DNS不安全;
若否,则确定该DNS安全。
B17、根据B16所述的装置,其中,所述识别模块还适于:
将该DNS对应的各归属地的终端设备的数量作为一个数据集的数据元素;
确定至少从该数据集中取出的数据元素的个数,以使取出的数据元素的总和大于或等于该数据集中所有数据元素的总和与第二预设阈值的乘积,其中,所述第二预设阈值的取值范围为(0,100%);
将确定的个数作为该DNS对应的归属地的分散度。
B18、根据B17所述的装置,其中,所述第二预设阈值的取值范围为[80%,90%]。
B19、根据B18所述的装置,其中,若所述第二预设阈值为80%,所述第一预设阈值为2。
B20、根据B15所述的装置,其中,所述识别模块还适于:
确定该DNS对应的各归属地的终端设备的数量中终端设备的数量最多的归属地;
获取该DNS的IP地址的归属地,判断确定的归属地与获取的该DNS的IP地址的归属地是否相同;
若相同,则确定该DNS安全;
若不相同,则确定该DNS不安全。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的域名解析系统DNS的安全性识别装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。