基于DNS响应数据报文的递归日志提取方法及装置与流程

文档序号:24784525发布日期:2021-04-23 09:41阅读:67来源:国知局
基于DNS响应数据报文的递归日志提取方法及装置与流程
基于dns响应数据报文的递归日志提取方法及装置
技术领域
1.本发明涉及网络通信技术领域,尤其涉及一种基于dns响应数据报文的递归日志提取方法及装置。


背景技术:

2.现有技术中,有dns关注需求时,大多依赖手工使用第三方工具进行抓包,这样不仅耗时耗力,而且也无法重现历史数据,且dns数据报文信息未得到有效的挖掘与利用。


技术实现要素:

3.本发明实施例提供一种基于dns响应数据报文的递归日志提取方法,用以简便快捷地对dns数据报文进行有效的挖掘与利用,重现历史数据,该方法包括:
4.获取dns响应数据报文;
5.分析提取所述dns响应数据报文中字段的取值;
6.按照各个字段以第一分隔符间隔的形式,将所述字段的取值记录成一条递归记录;
7.将各条递归记录以第二分隔符间隔,聚合形成dns递归日志。
8.本发明实施例还提供一种基于dns响应数据报文的递归日志提取装置,用以简便快捷地对dns数据报文进行有效的挖掘与利用,重现历史数据,该装置包括:
9.报文获取模块,用于获取dns响应数据报文;
10.分析提取模块,用于分析提取所述dns响应数据报文中字段的取值;
11.递归记录形成模块,用于按照各个字段以第一分隔符间隔的形式,将所述字段的取值记录成一条递归记录;
12.递归日志形成模块,用于将各条递归记录以第二分隔符间隔,聚合形成dns递归日志。
13.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于dns响应数据报文的递归日志提取方法。
14.本发明实施例也提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于dns响应数据报文的递归日志提取方法的计算机程序。
15.本发明实施例中,通过分析提取获取到的dns响应数据报文中的字段的取值,按照各个字段以第一分隔符间隔的形式,将字段的取值记录成一条递归记录;将各条递归记录以第二分隔符间隔,聚合形成dns递归日志;得到格式统一、清晰的dns递归日志,与现有技术中手工使用第三方工具进行抓包相比,本申请上述方法对dns数据报文进行了字段的取值提取、第一分隔符间隔形成递归记录、第二分隔符间隔形成dns递归日志等操作,实现了dns递归日志的实时生成,实现了简便快捷地对dns数据报文进行有效的挖掘与利用,重现了历史数据。
附图说明
16.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1为本发明实施例中基于dns响应数据报文的递归日志提取方法示意图。
18.图2为本发明具体实施例中基于dns响应数据报文的递归日志提取方法示意图。
19.图3为本发明一具体实施例中获取的dns响应数据报文示意图。
20.图4为本发明一具体实施例中dns递归日志存储的过程示意图。
21.图5为本发明实施例中基于dns响应数据报文的递归日志提取装置示意图。
22.图6为本发明具体实施例中基于dns响应数据报文的递归日志提取装置示意图。
具体实施方式
23.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.为了解决现有技术中有dns关注需求时,大多依赖手工使用第三方工具进行抓包分析带来的耗时耗力且无法重现历史数据的问题,本发明实施例提供了一种基于dns响应数据报文的递归日志提取方法,用以简便快捷地对dns数据报文进行有效的挖掘与利用,重现历史数据,如图1所示,该方法包括:
25.步骤101:获取dns响应数据报文;
26.步骤102:分析提取dns响应数据报文中字段的取值;
27.步骤103:按照各个字段以第一分隔符间隔的形式,将字段的取值记录成一条递归记录;
28.步骤104:将各条递归记录以第二分隔符间隔,聚合形成dns递归日志。
29.从图1可以看出,本发明实施例通过分析提取获取到的dns响应数据报文中的字段的取值,按照各个字段以第一分隔符间隔的形式,将字段的取值记录成一条递归记录;将各条递归记录以第二分隔符间隔,聚合形成dns递归日志;得到格式统一、清晰的dns递归日志,与现有技术中手工使用第三方工具进行抓包相比,本申请上述方法对dns数据报文进行了字段的取值提取、第一分隔符间隔形成递归记录、第二分隔符间隔形成dns递归日志等操作,实现了dns递归日志的实时生成,实现了简便快捷地对dns数据报文进行有效的挖掘与利用,重现了历史数据。
30.具体实施时,首先获取dns响应数据报文。域名系统(domain name system,dns)响应数据报文结构例如为:
[0031][0032]
分为报文头(header)、查询(question,the question for the name server)、应答(answer,rrs answering the question)、授权应答(authority,rrs pointing toward an authority)、附加信息(additional,rrs holding additional information)共5个区域(section),其中header为固定格式,其余4个区段可能出现包括0在内的任意个数。
[0033]
其中,header区域的报文结构如下:
[0034][0035]
其中,各个字段所占的字节以及对应的含义如表1所示:
[0036]
表1 header区域各字段含义表
[0037][0038][0039]
question区域的报文结构如下:
[0040][0041]
其中,各个字段所占的字节以及对应的含义如表2所示:
[0042]
表2 question区域各字段含义表
[0043][0044]
answer区域、authority区域以及additional区域报文一同构成了资源记录区,共享相同的报文结构如下:
[0045][0046][0047]
其中,各个字段所占的字节以及对应的含义如表3所示:
[0048]
表3资源记录区各字段含义表
[0049][0050]
获取dns响应数据报文后,分析提取dns响应数据报文中字段的取值。本发明实施例中,字段例如包括:时间(time)、版本(version)、源地址(src)、目的地址(dst)、传输层协议(protocol)、生存时间(ttl)、源端口(src_port)、目的端口(dst_port)、事务标识(transactionid)、查询/响应标志(qr)、操作码(opcode)、授权回答(aa)、可截断标记(tc)、期望递归(rd)、可用递归(ra)、预留字段(z)、返回码(rcode)、查询区域的记录数(qdcount)、应答区域的记录数(avcount)、授权区域的记录数(nscount)、附加区域的记录数(arcount)、查询的域名名称(qname)、查询类型(qtype)、查询类别(qclass)以及资源记录组信息项等。其中,资源记录组信息项例如可以包括:answer区域、authority区域以及additional区域的所有字段,即多条资源记录数据。本领域技术人员可以理解,上述字段包括内容仅为举例,可根据实际需要进行增加或删减,例如根据后续查询分析确定所需要的字段,根据所需的字段进行字段取值的提取,不以此限定本发明的保护范围。
[0051]
分析提取dns响应数据报文中字段的取值后,按照各个字段以第一分隔符间隔的形式,将字段的取值记录成一条递归记录。例如,可以利用分号“;”(ascii值为59)作为第一分隔符,将一条dns响应数据报文中的各个字段的取值间隔,记录形成一条递归记录。
[0052]
接着,将各条递归记录以第二分隔符间隔,聚合形成dns递归日志。举例说明,一条dns响应数据报文能够形成一条递归记录,多条dns响应数据报文就能够形成多条递归记录,将将各条递归记录以第二分隔符间隔,例如第二分隔符可以为换行符“\n”(ascii值为10),多条递归记录聚合形成dns递归日志。
[0053]
由于资源记录组信息项中包含字段较多,包括多条资源记录数据,可对多条资源记录数据进行预先处理,本发明具体实施例的基于dns响应数据报文的递归日志提取方法如图2所示,在图1的基础上还包括:
[0054]
步骤201:将每条资源记录数据中的字段以第三分隔符为间隔,记录为一条资源记录信息项;
[0055]
步骤202:将各条资源记录信息项以第四分隔符为间隔,聚合成资源记录组信息项。
[0056]
具体实施时,一条资源记录数据例如包括一个answer区域、一个authority区域以及一个additional区域对应的所有字段,例如包括name、type、class、ttl、rdlength、rdata等。将每条资源记录数据中的字段以第三分隔符为间隔,例如第三分隔符可取竖线“|”(ascii值为124),记录为一条资源记录信息项。一条dns响应数据报文中可能出现多个answer区域、authority区域以及additional区域,因此会有多条资源记录数据,能够记录
出多条资源记录信息项,将各条资源记录信息项以第四分隔符为间隔,例如可取逗号“,”(ascii值为44)作为第四分隔符,聚合成资源记录组信息项,与其余字段共同构成递归记录。
[0057]
本领域技术人员可以理解,上述第一分隔符、第二分隔符、第三分隔符、第四分隔符的取值都仅为举例,只要未在字段中出现的符号均可以作为分隔符使用,也无固定的顺序要求,本发明实施例不再进行赘述。
[0058]
本发明实施例中,上述基于dns响应数据报文的递归日志提取方法运行在服务端上。
[0059]
为了便于查询以用于后续分析,本发明实施例中的基于dns响应数据报文的递归日志提取方法还包括:定时扫描dns递归日志,将dns递归日志存入搜索引擎,供查询使用。例如,通过配置filebeat软件监控结构化的dns递归日志文件,将dns递归日志实时存入elasticsearch搜索引擎,供查询分析使用。
[0060]
下面结合一具体实施例,具体说明如何基于本发明实施例提供的基于dns响应数据报文的递归日志提取方法,提取dns递归日志并进行存储。本例应用于百度(www.baidu.com)的dns响应数据报文解析。
[0061]
选用114dns做域名解析服务,配置网卡的主dns服务器ip为114.114.114.114,备dns服务器ip为115.115.115.115,通过浏览器访问http://www.baidu.com/,使用wireshark抓包分析工具,获取到的dns响应数据报文如图3所示。
[0062]
分析提取图3所示的某一dns响应数据报文中的字段的取值,如表4所示:
[0063]
表4某一dns响应书报文的字段取值表
[0064]
[0065][0066][0067]
对多条资源记录数据进行预处理,本例中,共有三条包含answers区域字段的资源
记录数据,将单条资源记录数据中的字段以“|”(ascii值为124)为分隔符,记录为以下格式的资源记录信息项:name|type|class|ttl|rdlength|rdata,以answers区域编号为2的资源记录数据为例,记录为:www.a.shifen.com|a|in|159|4|180.101.49.12。
[0068]
为了简便,将资源记录信息项记作resourcegroup1、resourcegroup2、resourcegroup3
……
,将各条资源记录信息项以“,”(ascii值为44)为间隔,聚合成资源记录组信息项:resourcegroup1,resourcegroup2,resourcegroup3。本实例中具体为:
[0069]
www.baidu.com|cname|in|169|15|www.a.shifen.com,www.a.shifen.com|a|in|159|4|180.101.49.12,www.a.shifen.com|a|in|159|4|180.101.49.11
[0070]
预处理结束后,按照各个字段以“;”(ascii值为59)间隔的形式,将字段的取值记录成一条递归记录:
[0071]
time;version;src;dst;protocol;ttl;src_port;dst_port;transactionid;qr;opcode;aa;tc;rd;ra;z;rcode;qdcount;ancount;nscount;arcount;qname;qtype;qclass;answers;authorities;additions
[0072]
其中,“answers;authorities;additions”为预处理后的资源记录组信息项,本例中,仅有answers,而无authorities和additions,根据实际dns响应数据报文具体确定。若存在如本例中authorities和additions字段无取值的情况,按照递归记录中的对应字段处取值为空处理即可。
[0073]
表4记录的某一dns响应数据报文可被记录成一条递归记录如下:sep6,2019;14:14:35.455236000;4;114.114.114.114;192.168.3.105;udp;149;53;53196;0x284d;1;0;0;0;1;1;0;0;1;3;0;0;www.baidu.com;a;in;www.baidu.com|cname|in|169|15|www.a.shifen.com,www.a.shifen.com|a|in|159|4|180.101.49.12,www.a.shifen.com|a|in|159|4|180.101.49.11;;
[0074]
简便起见,将多条递归记录用recursiverecord1、recursiverecord2、recursiverecord3、
……
表示,将各条递归记录以换行符“\n”为分隔符间隔,聚合形成dns递归日志:
[0075]
recursiverecord1
[0076]
recursiverecord2
[0077]
recursiverecord3
[0078]
……
[0079]
例如,图3所示的dns响应数据报文形成的递归日志如下:
[0080]
sep6,2019;14:14:35.455236000;4;114.114.114.114;192.168.3.105;udp;149;53;53196;0x284d;1;0;0;0;1;1;0;0;1;3;0;0;www.baidu.com;a;in;www.baidu.com|cname|in|169|15|www.a.shifen.com,www.a.shifen.com|a|in|159|4|180.101.49.12,www.a.shifen.com|a|in|159|4|180.101.49.11;;
[0081]
sep6,2019;14:14:35.827960000;4;114.114.114.114;192.168.3.105;udp;150;53;58073;0xe93a;1;0;0;0;1;1;0;0;1;2;0;0;t1.baidu.com;a;in;t1.baidu.com|cname|in|102|17|simage.jomodns.com,simage.jomodns.com|a|in|34|4|180.163.198.48;;
[0082]
将时间字段标准化为yyyymmddhh24miss后,规整得到:
[0083]
20190906141435;4;114.114.114.114;192.168.3.105;udp;149;53;53196;
0x284d;1;0;0;0;1;1;0;0;1;3;0;0;www.baidu.com;a;in;www.baidu.com|cname|in|169|15|www.a.shifen.com,www.a.shifen.com|a|in|159|4|180.101.49.12,www.a.shifen.com|a|in|159|4|180.101.49.11;;
[0084]
20190906141435;4;114.114.114.114;192.168.3.105;udp;150;53;58073;0xe93a;1;0;0;0;1;1;0;0;1;2;0;0;t1.baidu.com;a;in;t1.baidu.com|cname|in|102|17|simage.jomodns.com,simage.jomodns.com|a|in|34|4|180.163.198.48;;
[0085]
该具体实例定时扫描生成的dns递归日志,将dns递归日志存入搜索引擎,供查询使用,具体流程示意图如图4所示,通过配置filebeat软件监控结构化的dns递归日志文件,将dns递归日志实时存入elasticsearch搜索引擎,供查询分析使用。其中,filebeat是一个日志文件托运软件工具,filebeat会监控服务端日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的实时读取),并且转发这些信息到elasticsearch或者logstarsh中存放,而elasticsearch是一个基于lucene的搜索服务器,是用java语言开发的,并作为apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎,能够提供一个分布式多用户能力的全文搜索引擎。elasticsearch搜索引擎能够适用于多种编程语言,并实现实时搜索,稳定,可靠,快速,安装使用方便。
[0086]
基于同一发明构思,本发明实施例还提供一种基于dns响应数据报文的递归日志提取装置,由于基于dns响应数据报文的递归日志提取装置所解决问题的原理与基于dns响应数据报文的递归日志提取方法相似,因此基于dns响应数据报文的递归日志提取装置的实施可以参见基于dns响应数据报文的递归日志提取方法的实施,重复之处不再赘述,具体结构如图5所示:
[0087]
报文获取模块501,用于获取dns响应数据报文;
[0088]
分析提取模块502,用于分析提取dns响应数据报文中字段的取值;
[0089]
递归记录形成模块503,用于按照各个字段以第一分隔符间隔的形式,将字段的取值记录成一条递归记录;
[0090]
递归日志形成模块504,用于将各条递归记录以第二分隔符间隔,聚合形成dns递归日志。
[0091]
具体实施时,本发明具体实施例提供的基于dns响应数据报文的递归日志提取装置如图6所示,在图5所示的基础上还包括:预处理模块601,用于:
[0092]
字段包括多条资源记录数据,资源记录数据包括dns响应数据报文资源记录区对应的字段,按照各个字段以第一分隔符间隔的形式,将字段的取值记录成一条递归记录前,对多条资源记录数据进行预处理,包括:
[0093]
将每条资源记录数据中的字段以第三分隔符为间隔,记录为一条资源记录信息项;
[0094]
将各条资源记录信息项以第四分隔符为间隔,聚合成资源记录组信息项。
[0095]
为了便于后续的调用分析,具体实施例中的基于dns响应数据报文的递归日志提取装置还包括:存储模块,用于定时扫描dns递归日志,将dns递归日志存入搜索引擎,供查询使用。
[0096]
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于dns响
应数据报文的递归日志提取方法。
[0097]
本发明实施例还提供一种计算机可读存储介质,存储有执行上述基于dns响应数据报文的递归日志提取方法的计算机程序。
[0098]
综上所述,本发明实施例提供的基于dns响应数据报文的递归日志提取方法及装置具有以下优点:
[0099]
通过分析提取获取到的dns响应数据报文中的字段的取值,按照各个字段以第一分隔符间隔的形式,将字段的取值记录成一条递归记录;将各条递归记录以第二分隔符间隔,聚合形成dns递归日志;得到格式统一、清晰的dns递归日志,实现了服务端实时监控并分析dns响应数据报文,提取关键字段,实时生成格式化的dns递归日志,并进行持久化存储,与现有技术中手工使用第三方工具进行抓包相比,本申请上述方法对dns数据报文进行了字段的取值提取、第一分隔符间隔形成递归记录、第二分隔符间隔形成dns递归日志等操作,实现了简便快捷地对dns数据报文进行有效的挖掘与利用,重现了历史数据,以格式统一的文件形式将海量的dns解析记录存入搜索引擎中,便于后续运维人员快速高效地查询dns解析记录。
[0100]
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0101]
本发明是参照根据本发明实施例的方法、装置和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0102]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0103]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0104]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1