一种从IP地址反向获取域名的方法及系统

文档序号:29852909发布日期:2022-04-30 08:25阅读:406来源:国知局
一种从IP地址反向获取域名的方法及系统
一种从ip地址反向获取域名的方法及系统
技术领域
1.本发明属于互联网技术领域,具体涉及一种从ip地址反向获取域名的方法及系统。


背景技术:

2.域名系统(domain name system,以下简称dns)是互联网的一项基础服务,它作为将域名和ip地址相互映射的一个分布式数据库,主要作用是将人类易读的域名,转换成机器易识别的ip地址。互联网的正常运转离不开dns。
3.域名系统起到导航系统,ip、域名的映射关系对于网络安全起到重要作用。获取ip、域名的映射关系首先可以通过主动的域名解析,即通过发送dns请求,利用dns系统将域名解析为ip地址。其次可以通过被动流量分析,即在网络出口处收集dns流量,然后解析被动dns流量,从其中获取ip-域名的对应关系。
4.dns系统也是攻击者发起攻击的重要目标或者攻击凭借。dns劫持是一种常见的攻击方式,主要是通过不同的方式,包括缓存投毒、抢先应答、dns拦截等不同方式,针对受害者发起的dns请求,返回虚假响应,本质在于受害者收到了错误的ip-域名对应关系。前述两种方法,主动的域名解析和被动流量分析,都依赖于dns系统,并且都难以抵御dns劫持。例如,在主动域名解析的方法中,如果处理请求的服务器受到了缓存投毒攻击,请求的域名的缓存记录被投毒,则主动请求的方法获取的ip-域名对应关系也是错误的。而在被动流量分析中,如果收集到的被动流量包含了恶意的dns抢先应答记录,那么通过被动流量分析获取的ip-域名对应关系也是错误的。因此希望能够有一种高准确性的ip-域名对应关系的获取方法,能够抵御dns劫持的攻击。


技术实现要素:

5.本发明的目的是提供一种独立于dns系统的从ip地址反向抽取域名的方法及系统,能够抵御dns劫持攻击,提取出具有高准确性的ip-域名对应关系。
6.为实现上述目的,本发明采用的技术方案是:
7.一种从ip地址反向获取域名的方法,包括以下步骤:
8.对于输入的ip地址,从该ip地址中获取数字证书、html页面和连接过程中的http响应头;
9.从数字证书的主题字段的公用名称字段和主题别名字段的域名列表中获取包含的域名,使用正则匹配的方法获取html页面中的域名,从http响应头的cookie字段中或内容安全策略所包含的信任数据来源域列表中获取包含的域名,将上述获取的域名作为备选域名;
10.对于上述备选域名,使用投票算法选择出所述ip地址上托管的域名,步骤包括:首先对备选域名进行去重,然后对去重的备选域名按照来源进行打分,最后将得分最高的且域名优先级最高的域名作为ip地址上托管的域名;
11.选择一个递归服务器列表,向列表中的每个递归服务器请求解析所述ip地址上托管的域名,如果超过半数的递归服务器返回了所述ip地址,则确定获取了最终域名。
12.进一步地,所述ip地址的443端口处于开放状态。
13.进一步地,利用网络爬虫从所述ip地址中获取数字证书、html页面和连接过程中的http响应头。
14.进一步地,对于从数字证书的主题字段的公用名称字段抽取的域名,如果该域名是完全限定域名,则将该域名作为所述ip上托管的域名;如果该域名是一个包含了通配符域名,则将通配符替换成字符串www。
15.进一步地,获取html页面中的域名时,统计在html页面中出现次数最多的域名,以及选择位于html页面最上方的域名。
16.进一步地,所述去重的备选域名包括domain
cookie
、domain
cn
、domain
top
、domain
max
四个域名和domainlist
san
、domainlist
csp
两个域名列表,其中,domain
cookie
表示从http响应头的cookie字段中获取的域名,domain
cn
表示从数字证书的主题字段的公用名称字段中获取的域名,domain
top
表示html页面最上方的域名,domain
max
表示在html页面中出现次数最多的域名,domainlist
san
表示数字证书的主题别名字段的域名列表,domainlist
csp
表示http响应头的内容安全策略所包含的信任数据来源域列表。
17.进一步地,对所述去重的备选域名按照来源进行打分的规则如下:
18.对于每一个去重的备选域名d,其初始得分为0,即score(d)=0;
19.i.如果d==domain
cookie
,score(d)+=0.2;
20.ii.如果d==domain
cn
,score(d)+=0.2;
21.iii.如果d==domain
top
,score(d)+=0.2;
22.iv.如果d==domain
max
,score(d)+=0.2;
23.v.如果d位于列表domainlist
san
中,score(d)+=0.1;
24.vi.如果d位于列表domainlist
csp
中,score(d)+=0.1。
25.进一步地,域名优先级排序为domain
cookie
》domain
cn
》domain
max
》domain
top

26.一种从ip地址反向获取域名的系统,包括:
27.数据收集模块,用于从ip地址中获取数字证书、html页面和连接过程中的http响应头;
28.备选域名提取模块,用于从数字证书的主题字段的公用名称字段和主题别名字段的域名列表中获取包含的域名,使用正则匹配的方法获取html页面中的域名,从http响应头的cookie字段中或内容安全策略所包含的信任数据来源域列表中获取包含的域名,将上述获取的域名作为备选域名;
29.域名选择模块,用于对上述备选域名,使用投票算法选择出所述ip地址上托管的域名,步骤包括:首先对备选域名进行去重,然后对去重的备选域名按照来源进行打分,最后将得分最高的且优先级最高的域名作为ip地址上托管的域名;
30.正向验证模块,用于选择一个递归服务器列表,向列表中的每个递归服务器请求解析所述ip地址上托管的域名,如果超过半数的递归服务器返回了所述ip地址,则确定获取了最终域名。
31.本发明取得的有益效果为:
32.本发明主要通过从输入的ip地址上获取不同类型的数据,然后分别从不同数据中抽取候选域名列表,再根据不同数据的特征从候选域名列表中选择出该ip上托管的域名,即ip-域名对应关系。最后利用dns系统,对获取的ip-域名对应关系进行正向的验证。本发明方法通过端口扫描,以及三种非域名系统来源的数据收集以及数据分析,能够在脱离域名体系的情况下,获取ip和域名的对应关系。这样,即使攻击者通过在注册商处修改ip和域名的对应关系进行域名劫持,本方法在能够获取所需的数据的情况下,仍能获取正确的ip和域名的对应关系。具体来说,域名劫持可以在多个层面进行,在递归服务器层面,攻击者通过域名缓存投毒等方式进行域名劫持,此时,通过向域名的权威服务器发送请求仍旧能够获取正确的ip-域名对应关系。但是,当攻击者通过在注册商处修改ip和域名的对应关系进行域名劫持时,也即域名的权威记录被篡改,那么在域名的权威服务器中存储的ip-域名对应关系也是错误的。此时,仅通过域名体系无法获取此域名的正确的ip-域名对应关系。而本发明,通过收集数字证书、html页面和连接过程中http响应头数据,利用数字证书体系、web服务体系的数据抽取ip和域名的对应关系。由于本发明提出的域名获取方法独立于域名体系,所以能够免受域名劫持攻击的影响,获取正确的ip和域名的对应关系。本发明提出的方法中,域名体系不影响结果的生成,仅用于最后结果的验证,也即通过域名体系对非域名体系获得的结果进行交叉验证,进一步保证了结果的正确性。
附图说明
33.图1为从ip反向抽取域名方案的四个模块之间的关系和数据流向图。
具体实施方式
34.为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
35.本实施例公开一种从ip地址反向获取域名的系统,包括四个模块,分别是数据收集模块、备选域名提取模块、域名选择模块、正向验证模块。四个模块之间的关系以及数据流向如图1所示。该系统的输入为ip地址。
36.1、数据收集模块
37.对于输入的ip地址ip,首先扫描该ip的443端口,如果该ip的443端口都是关闭的,则说明该ip上没有托管web服务,则退出整个流程;否则,利用网络爬虫,从输入ip的开放的443端口请求数字证书,爬取html页面,以及连接过程中的http响应头(http header)。
38.2、备选域名提取模块
39.对于收集到的http响应头数据,首先其中有可能包含http连接中的cookie字段,其中一个域名字段domain
cookie
表示可以访问该cookie的域名。该域名字段一般与输入ip地址ip上托管的域名相同或者具有密切关系。另外,一些网站使用内容安全策略(content-security-policy),允许站点控制用户代理为指定页面加载哪些资源。除了特殊情况,设置的策略主要涉及指定服务器的源和脚本结束点。这将帮助阻止跨站点脚本攻击(cross-site script)。在使用内容安全策略的情况下,http响应头包含的内容安全策略相关的字段包含该网站信任的数据来源域列表domainlist
csp
,该列表中的域名与输入ip地址ip上托管的域名具有一定的关联关系。
40.对于收集到的数字证书数据,首先数字证书的中的公用名称(common name)字段,表示受数字证书保护的服务器名称。仅当请求主机名与证书公用名匹配时,证书才有效。当希望用一个数字证书保护同一个基本域下的多个子域名时,网站可以选择使用通配符数字证书,即证书在公用名称字段中使用通配符(*)来保护链接到同一基本域的多个子域(主机)。因此,对于收集到的数字证书,从其主题(“subject”)字段中的公用名称(common name)字段中抽取包含的域名domain
cn
。如果该域名是完全限定域名(fully qualified domain name,fqdn),则域名为该ip上托管的域名。如果该域名是一个包含了通配符域名,则将通配符替换成字符串“www”。另外,数字证书的主题别名(subject alternative name)字段允许为单个ssl证书指定其他主机名。它可以包含以下内容:电子邮件地址、域名、ip地址、uri(uniform resource identifier)。也就是说,主题别名字段中的域名列表domainlist
san
中的域名也是与该ip上托管域名有密切关系的域名。
41.对于收集到的html页面数据,使用正则匹配的方法获取页面中的域名。网页中会存在一些本页面内的跳转链接。首先统计在页面中出现次数最多的域名domain
max
。此外网页中一般位于页面上部的题目或者图片是指向网站主页面或者本页面的链接,因此选择位于html页面最上方的域名domain
top

42.3、域名选择模块
43.对于备选域名提取模块中获得的不同来源的备选域名,使用投票算法选择出该输入ip地址ip上托管的域名。备选域名提取模块获取的域名包括domain
cookie
、domain
cn
、domain
top
、domain
max
四个域名以及domainlist
san
、domainlist
csp
两个域名列表。首先,根据domain
cookie
和domain
cn
的来源以及对应数据字段的定义,domain
cookie
和domain
cn
有很大概率是该ip上托管的域名;其次,根据在alexa top 10k域名列表上网站网页的统计实验,有78%的网站,从网页中抽取的domain
top
或domain
max
即为该网站的域名。因此domainlist
san
和domainlist
csp
两个域名有较大的概率为该ip上托管的(网站的)域名。综上,将domain
cookie
、domain
cn
、domain
top
、domain
max
四个域名作为投票的备选域名,在投票过程中具有更高的投票权重。domainlist
san
、domainlist
csp
两个域名列表中的域名则是与该ip上托管的实际域名具有信任或者保护等较弱的关联关系,因此它们不是备选域名,仅在投票过程中具有较低的投票权重。
44.具体投票算法如下:
45.1)根据抽取的备选域名与输入ip地址ip上托管的域名的关系,domain
cookie
、domain
cn
、domain
top
、domain
max
这四个域名作为参与投票的备选域名,对这四个域名组成的列表去重后得到集合domainset
can

46.2)对于domainset
can
中的每一个域名d,其初始得分为0,即score(d)=0。如上所述,domain
cookie
、domain
cn
、domain
top
、domain
max
四个域名具有更高的命中概率,令其投票权重为0.2;domainlist
san
、domainlist
csp
两个域名列表中的域名和该ip上托管域名的关联相对较弱,令其投票权重为0.1。具体规则如下:
47.i.如果d==domain
cookie
,score(d)+=0.2;
48.ii.如果d==domain
cn
,score(d)+=0.2;
49.iii.如果d==domain
top
,score(d)+=0.2;
50.iv.如果d==domain
max
,score(d)+=0.2;
51.v.如果d位于列表domainlist
san
中,score(d)+=0.1;
52.vi.如果d位于列表domainlist
csp
中,score(d)+=0.1。
53.3)集合domainset
can
中得分最高的域名即为抽取出的输入ip地址ip上托管的域名domainv。考虑到在某些特殊情况下(例如使用自签名证书)domain
cn
有可能不是域名而是其他字段,domain
cookie
的命中概率略高于domain
cn
;根据在alexa top 10k域名列表上网站网页的统计实验,domain
max
比domain
top
有更高的命中概率。因此,如果domainset
can
中存在最高得分相同的情况,按照domain
cookie
》domain
cn
》domain
max
》domain
top
的优先级,从相同最高得分中选出domainv。
54.4、正向验证模块
55.选择一个递归服务器列表,分别向列表中的每个递归服务器请求解析域名domainv。如果超过半数的递归服务器返回了输入ip地址ip,则输出元组(ip,domainv),否则,反向获取域名失败(说明抽取的ip-域名对应关系是错误的),结束流程。
56.本发明列举一如下具体实例:
57.本实例抽取ip地址211.53.214.11上托管的域名。
58.1、数据收集
59.扫描ip地址211.53.214.11的443端口,发现其443端口开放。然后向211.53.214.11的443端口发起https连接,获取数字证书、http header和html文件。
60.2、备选域名提取
61.从http header中,包含cookie字段和内容安全策略(content-security-policy)相关的字段,所以domain
cookie
=null,domainlist
csp
=null。
62.从数字证书数据中,公用名称(common name)字段为*.hankyung.com。数字证书的主题别名(subject alternative name)字段为"subjectaltname":["*.hankyung.com","hankyung.com"]。将通配符替换为www,因此抽取的domain
cn
=www.hankyung.com,domainlist
san
=[www.hankyung.com,hankyung.com]。
[0063]
从html页面中,domain
max
=www.hankyung.com,domain
top
=static.hankyung.com。
[0064]
3、域名选择
[0065]
1)domainset
can
={www.hankyung.com,hankyung.com}。
[0066]
2)对于域名www.hankyung.com,score(www.hankyung.com)=0;
[0067]
i.www.hankyung.com!=domain
cookie
,score(www.hankyung.com)=0;
[0068]
ii.www.hankyung.com==domain
cn
,score(www.hankyung.com)=0.2;
[0069]
iii.www.hankyung.com==domain
top
,score(www.hankyung.com)=0.2;
[0070]
iv.www.hankyung.com==domain
max
,score(www.hankyung.com)=0.4;
[0071]
v.www.hankyung.com位于列表domainlist
san
中,score(www.hankyung.com)=0.5;
[0072]
vi.www.hankyung.com没有位于列表domainlist
csp
中,score(www.hankyung.com)=0.5。
[0073]
对于域名hankyung.com,score(hankyung.com)=0;
[0074]
i.hankyung.com!=domain
cookie
,score(hankyung.com)=0;
[0075]
ii.hankyung.com!=domain
cn
,score(hankyung.com)=0;
[0076]
iii.hankyung.com!=domain
top
,score(hankyung.com)=0;
[0077]
iv.hankyung.com!=domain
max
,score(hankyung.com)=0;
[0078]
v.hankyung.com位于列表domainlist
san
中,score(hankyung.com)=0.1;
[0079]
vi.hankyung.com没有位于列表domainlist
csp
中,score(hankyung.com)=0.1。
[0080]
3)集合domainsetcan中两个域名www.hankyung.com和hankyung.com,score(www.hankyung.com)》score(hankyung.com),domainv=www.hankyung.com。
[0081]
4、正向验证
[0082]
向本地默认递归服务器,以及公共递归服务器8.8.8.8和1.1.1.1请求解析域名www.hankyung.com,三个服务器给出的结果都是211.53.214.11,都包含了输入系统的ip,因此输出元组(211.53.214.11,www.hankyung.com)。
[0083]
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域的普通技术人员对本发明的技术方案进行的适当修改或者等同替换,均应涵盖于本发明的保护范围内,本发明的保护范围以权利要求所限定者为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1