一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种DNS缓存投毒的检测方法及装置与流程

2022-02-22 18:59:07 来源:中国专利 TAG:

一种dns缓存投毒的检测方法及装置
技术领域
1.本技术涉及信息安全领域,具体而言,涉及一种dns缓存投毒的检测方法及装置。


背景技术:

2.dns缓存投毒是dns攻击中危害较大的一种,也是当前dns攻击领域重点的研究对象。它通过使用虚假ip地址信息替换缓存服务器缓存中主机记录的真实ip地址信息来制造破坏。目前,针对dns缓存投毒攻击最行之有效的防御方法是基于会话检查的方式,即首先记录请求报文的时间和状态,当接收到响应报文时,通过检查相应的会话状态以及比较查询id来确定是否发生了投毒攻击。然而,大多数时候抗ddos设备的部署方式是旁路部署的,所以迫切需要一种新的检测机制可以在旁路部署的模式下也能准确检测出dns缓存投毒攻击。


技术实现要素:

3.本技术实施例的目的在于提供一种dns缓存投毒的检测方法及装置,能够在旁路部署的模式下准确检测出dns缓存投毒攻击,节约系统资源,保障准确率。
4.本技术实施例第一方面提供了一种dns缓存投毒的检测方法,所述方法包括:
5.当接收到响应报文时,对所述所述响应报文包括的五元组和域名进行哈希计算,得到哈希值;
6.判断预设数据库中是否包括所述哈希值;
7.当所述预设数据库包括所述哈希值时,在所述预设数据库中获取与所述哈希值相对应的事务id集合;
8.判断所述事务id集合中事务id变化频率是否大于预设频率阈值;
9.当所述事务id变化频率大于所述预设频率阈值时,输出投毒疑似警报。
10.可见,实施这种实施方式,能够基于哈希值寻找已有的事务id集合,并实时判断该事务id集合中的事务id是否具有较高的变化频率。由于dns缓存投毒会导致事务id变化频率大幅增加,所以当判断出事务id集合中的事务id具有较高的变化频率时,则认为出现了dns缓存投毒,从而能够通过这种方式解决旁路部署模式下的缓存投毒检测问题。
11.进一步地,所述接收到响应报文的步骤之前,所述方法还包括:
12.当接收到请求报文时,判断定时器是否到期;
13.当所述定时器未到期时,将所述请求报文包括的域名插入域名信息集合。
14.进一步地,所述输出投毒疑似警报的步骤之后,所述方法还包括:
15.判断所述域名信息集合中是否包括所述响应报文包括的域名;
16.当所述域名信息集合中包括所述响应报文包括的域名时,输出投毒攻击警报。
17.进一步地,所述输出投毒攻击警报的步骤之后,所述方法还包括:
18.当所述事务id集合中包括所述响应报文对应的事务id时,获取现有报文;所述事务id与所述现有报文和所述响应报文两者相对应;
19.获取所述现有报文的第一ttl值、所述响应报文的第二ttl值以及所述事务id结合中其他事务id的其他ttl值;
20.判断所述第一ttl值是否比所述第二ttl值更接近所述其他ttl值;
21.当所述第一ttl值比所述第二ttl值更接近所述其他ttl值时,输出投毒成功警报。
22.进一步地,所述预设数据库为map结构,所述事务id集合为set结构。
23.可见,实施这种实施方式,能够使用map结构和set结构这种高效率的数据结构,提升检测效率,同时避免记录会话信息,从而节约了内存空间。
24.本技术实施例第二方面提供了一种dns缓存投毒的检测装置,所述检测装置包括:
25.计算单元,用于当接收到响应报文时,对所述所述响应报文包括的五元组和域名进行哈希计算,得到哈希值;
26.第一判断单元,用于判断预设数据库中是否包括所述哈希值;
27.获取单元,用于当所述预设数据库包括所述哈希值时,在所述预设数据库中获取与所述哈希值相对应的事务id集合;
28.第二判断单元,用于判断所述事务id集合中事务id变化频率是否大于预设频率阈值;
29.输出单元,用于当所述事务id变化频率大于所述预设频率阈值时,输出投毒疑似警报。
30.可见,实施这种实施方式,该装置能够通过事务id的变化频率确定投毒攻击的发生与否,从而实现在旁路部署模式下检测缓存投毒的效果。
31.进一步地,所述检测装置还包括:
32.第三判断单元,用于当接收到请求报文时,判断定时器是否到期;
33.插入单元,用于当所述定时器未到期时,将所述请求报文包括的域名插入域名信息集合。
34.进一步地,所述检测装置还包括:
35.第四判断单元,用于判断所述域名信息集合中是否包括所述响应报文包括的域名;
36.所述输出单元,还用于当所述域名信息集合中包括所述响应报文包括的域名时,输出投毒攻击警报。
37.本技术实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例第一方面中任一项所述的dns缓存投毒的检测方法。
38.本技术实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例第一方面中任一项所述的dns缓存投毒的检测方法。
附图说明
39.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他相关的附图。
40.图1为本技术实施例提供的一种dns缓存投毒的检测方法的流程示意图;
41.图2为本技术实施例提供的另一种dns缓存投毒的检测方法的流程示意图;
42.图3为本技术实施例提供的一种dns缓存投毒的检测装置的结构示意图;
43.图4为本技术实施例提供的另一种dns缓存投毒的检测装置的结构示意图。
具体实施方式
44.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
45.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
46.实施例1
47.请参看图1,图1为本技术实施例提供了一种dns缓存投毒的检测方法的流程示意图。其中,该dns缓存投毒的检测方法包括:
48.s101、当接收到响应报文时,对响应报文包括的五元组和域名进行哈希计算,得到哈希值。
49.作为一种可选的实施方式,该方法在接收到响应报文的步骤之前,方法还包括:
50.当收到报文时,判断报文是dns的请求报文还是dns的响应报文。
51.s102、判断预设数据库中是否包括哈希值,若是,则执行步骤s103~s104;否则,则结束本流程。
52.本实施例中,预设数据库的数据结构为map结构(字典结构),预设数据库用于存储不重复key的hash结构。其中,该结构使用键值对的形式来存储数据。
53.s103、在预设数据库中获取与哈希值相对应的事务id集合。
54.本实施例中,事务id集合的数据结构为set结构。该set(集合)是一个常用的数据结构,它与列表(list)的行为类似,区别在于set不能包含重复的值。
55.s104、判断事务id集合中事务id变化频率是否大于预设频率阈值,若是,则执行步骤s105;否则,结束本流程。
56.本实施例中,事务id变化频率高则表示可能存在dns缓存投毒的请款个,因为缓存投毒会输入事务id不断变化的伪造应答报文。
57.s105、输出投毒疑似警报。
58.本实施例中,优先描述一种dns缓存投毒的攻击流程。首先,攻击者向被攻击的目标服务器发送一个dns查询请求,该查询请求中的域名主机使用随机序列和目标域名的组合,例如使用12345678.xxxxx.com作为目标查询域名。显然这个查询的域名主机是不存在的,正常返回的应答数据包中回答资源记录部分应该为nxdomain。此时,dns缓存服务器收到查询请求会向授权服务器发起迭代查询,此时攻击者乘着授权服务器还没有应答之前发送大量原目的ip地址固定,原目端口固定,查询域名固定,但事务id不断变化的伪造应答报文,总会有一个报文恰好能匹配到缓存服务器发出的请求包,从而让缓存服务器认为是授权服务器返回的应答,并将其解析并更新缓存。最后,当其他正常用户再此访问xxxxx.com域名时就会被指向黑客恶意修改的ip地址,从而达到攻击目的。
59.相对应的,本实施例提供的这种基于统计的检测方法,能够以高效的数据结构和算法辅助,从而实现可以高效地投毒检测。
60.本技术实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
61.在本技术实施例中,该方法的执行主体还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
62.可见,实施本实施例所描述的dns缓存投毒的检测方法,能够基于哈希值寻找已有的事务id集合,并实时判断该事务id集合中的事务id是否具有较高的变化频率。由于dns缓存投毒会导致事务id变化频率大幅增加,所以当判断出事务id集合中的事务id具有较高的变化频率时,则认为出现了dns缓存投毒,从而能够通过这种方式解决旁路部署模式下的缓存投毒检测问题。
63.实施例2
64.请参看图2,图2为本技术实施例提供的一种dns缓存投毒的检测方法的流程示意图。如图2所示,其中,该dns缓存投毒的检测方法包括:
65.s201、当接收到请求报文时,判断定时器是否到期。
66.本实施例中,定时器可以为预设的timer。
67.在本实施例中,定时器可以是是1秒定时器,即每秒更新一次的定时器。因为dns投毒攻击一般需要在一秒内完成攻击,否则攻击失败。
68.在本实施例中,1秒可以调整为其他时长。
69.s202、当定时器未到期时,将请求报文包括的域名插入域名信息集合。
70.本实施例中,域名信息集合的数据结构为set结构。
71.本实施例中,域名信息集合用于记录请求报文的域名信息。
72.作为一种可选的实施方式,该方法还包括:
73.当定时器已到期时,清空域名信息集合中存储的数据;
74.将请求报文包括的域名插入域名信息集合。
75.本实施例中,因为在一秒内为发生攻击时,则认为这些记录的信息已经无用,所以可以删除以清空缓存。
76.s203、当接收到响应报文时,对响应报文包括的五元组和域名进行哈希计算,得到哈希值。
77.本实施例中,当接收到响应报文时,该方法可以对响应报文中的源ip、目的ip、源端口、目的端口、协议号、域名使用定制hash算法进行hash运算得到一个哈希值key。
78.s204、判断预设数据库中是否包括哈希值,若是,则执行步骤s205~s206;否则,则结束本流程。
79.本实施例中,预设数据库的数据结构为map结构。
80.s205、在预设数据库中获取与哈希值相对应的事务id集合。
81.本实施例中,该方法使用上述的哈希值key去预设数据库中获取对应的value,value是一个set结构,set结构里面存放的是响应报文的事务id号。其中,事务id集合为上述的value,其数据结构为set结构。
82.在本实施例中,如果map结构的预设数据库中不存在该哈希值key,则将该哈希值
key和该哈希值key对应的事务id号作为新的数据插入到map结构的预设数据库中。
83.s206、判断事务id集合中事务id变化频率是否大于预设频率阈值,若是,则执行步骤s207~s208;否则,结束本流程。
84.s207、输出投毒疑似警报。
85.本实施例中,如果map结构的预设数据库中存在上述的哈希值key,则获取其对应的set结构的事务id集合。由于,对于投毒来说事务id是不断变化的;所以,统计set中事务id号变化的频率是否超过阈值,如果超过,则进行告警。
86.s208、判断域名信息集合中是否包括响应报文包括的域名,若是,则执行步骤s209~s212;否则,结束本流程。
87.s209、输出投毒攻击警报。
88.本实施例中,在输出投毒疑似警报之后,在请求报文对应的set结构的域名信息集合中,查找是否有当前响应报文的域名记录,有的话则可以判断发生投毒攻击。
89.s210、当事务id集合中包括响应报文对应的事务id时,获取现有报文;事务id与现有报文和响应报文两者相对应。
90.s211、获取现有报文的第一ttl值、响应报文的第二ttl值以及事务id结合中其他事务id的其他ttl值。
91.s212、判断第一ttl值是否比第二ttl值更接近其他ttl值,若是,则执行步骤s212~s213;否则,结束本流程。
92.s213、输出投毒成功警报。
93.本实施例中,当事务id集合中已经存在响应报文包括的事务id时,则可以认为这两个事务id中有一个是真实报文的,一个是投毒攻击者伪造的。此时,则两个报文的ttl值与set结构的事务id集合中的其他报文的ttl值比较,ttl值最接近的那个就是伪造的。其中,如果伪造的报文先到,则判断投毒成功,否则投毒失败。
94.可见,实施本实施例所描述的dns缓存投毒的检测方法,能够提高dns缓存投毒的检测通用性,同时通过该种较为通用dns缓存投毒检测方法,还可以有效解决旁路部署模式下的缓存投毒检测问题,并精确地检测出投毒攻击是否成功,进一步加强了对系统的保护。另外,实施本实施例描述的该种方法,还能够通过使用了一些如set结构和map结构的高效率数据结构,同时结合hash等算法,实现提升检测效率的效果,并且避免了对所有的会话信息进行记录的过程,从而节约内存空间。
95.实施例3
96.请参看图3,图3为本技术实施例提供的一种dns缓存投毒的检测装置的结构示意图。如图3所示,该dns缓存投毒的检测装置包括:
97.计算单元310,用于当接收到响应报文时,对响应报文包括的五元组和域名进行哈希计算,得到哈希值;
98.第一判断单元320,用于判断预设数据库中是否包括哈希值;
99.获取单元330,用于当预设数据库包括哈希值时,在预设数据库中获取与哈希值相对应的事务id集合;
100.第二判断单元340,用于判断事务id集合中事务id变化频率是否大于预设频率阈值;
101.输出单元350,用于当事务id变化频率大于预设频率阈值时,输出投毒疑似警报
102.本技术实施例中,对于dns缓存投毒的检测装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
103.可见,实施本实施例所描述的dns缓存投毒的检测装置,该装置能够通过事务id的变化频率确定投毒攻击的发生与否,从而实现在旁路部署模式下检测缓存投毒的效果。
104.实施例4
105.请一并参阅图4,图4是本技术实施例提供的一种dns缓存投毒的检测装置的结构示意图。其中,图4所示的dns缓存投毒的检测装置是由图3所示的dns缓存投毒的检测装置进行优化得到的。如图4所示,检测装置还包括:
106.第三判断单元360,用于当接收到请求报文时,判断定时器是否到期;
107.插入单元370,用于当定时器未到期时,将请求报文包括的域名插入域名信息集合。
108.作为一种可选的实施方式,检测装置还包括:
109.第四判断单元380,用于判断域名信息集合中是否包括响应报文包括的域名;
110.输出单元350,还用于当域名信息集合中包括响应报文包括的域名时,输出投毒攻击警报。
111.作为一种可选的实施方式,检测装置还包括:
112.获取单元330,还用于当事务id集合中包括响应报文对应的事务id时,获取现有报文;事务id与现有报文和响应报文两者相对应;
113.获取单元330,还用于获取现有报文的第一ttl值、响应报文的第二ttl值以及事务id结合中其他事务id的其他ttl值;
114.第五判断单元390,用于判断第一ttl值是否比第二ttl值更接近其他ttl值;
115.输出单元350,还用于当第一ttl值比第二ttl值更接近其他ttl值时,输出投毒成功警报。
116.作为一种可选的实施方式,预设数据库为map结构,事务id集合为set结构。
117.本技术实施例中,对于dns缓存投毒的检测装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
118.可见,实施本实施例所描述的dns缓存投毒的检测装置,该装置能够通过事务id的变化频率确定投毒攻击的发生与否,从而实现在旁路部署模式下检测缓存投毒的效果。
119.本技术实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例1或实施例2中任一项dns缓存投毒的检测方法。
120.本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例1或实施例2中任一项dns缓存投毒的检测方法。
121.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一
部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
122.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
123.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
124.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
125.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
126.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献