Dns缓存投毒的防护方法及装置的制造方法

文档序号:10578138阅读:266来源:国知局
Dns缓存投毒的防护方法及装置的制造方法
【专利摘要】本申请提供一种DNS缓存投毒的防护方法及装置,所述方法包括:将DNS服务器发送的第一DNS查询请求报文转发至权威DNS服务器;当根据所接收到的第一DNS回复报文的信息特征,确定发生DNS缓存投毒攻击时,构造携带所述目标域名的第二DNS查询请求报文,向预设的其他权威DNS服务器发送所述第二DNS查询请求报文;并根据所接收到的第二DNS回复报文的信息特征,选择未发生DNS缓存投毒攻击的第二DNS回复报文;根据所述第二DNS回复报文,向所述DNS服务器反馈DNS回复报文。从而实现了安全可靠的预防DNS缓存投毒,且提高了DNS缓存投毒的防护方法的适用性,降低了对DNS服务器配置的依赖。
【专利说明】
DNS缓存投毒的防护方法及装置
技术领域
[0001] 本申请设及网络通信技术领域,尤其设及DNS缓存投毒的防护方法及装置。
【背景技术】
[0002] DNS(Domain化mes System,域名系统)服务器的基本功能是完成域名解析,即提 供IP地址与域名之间的映射关系。一台DNS服务器上可W只记录本地终端或服务器的IP地 址与域名之间的映射关系,若通过该DNS服务器向权威DNS服务器请求获取非本地终端或服 务器的IP地址与域名之间的映射关系时,该DNS服务器可W将权威DNS服务器返回的内容进 行保存,从而构成了 DNS缓存。然而,该DNS缓存易于受到DNS缓存投毒攻击,所述DNS缓存投 毒的原理是攻击服务器通过使用虚假IP地址替换权威DNS服务器返回的真实IP地址,从而 使DNS缓存中的信息为虚假信息。
[0003] 为了预防DNS缓存投毒,现有技术中可W采用多种方式,比如,DNS服务器可W随机 生成DNS请求报文的源端口和DNS请求ID,使得攻击者需要多次尝试匹配运些参数,从而增 大了攻击者投毒成功的难度,但是,采用运种方式时,如果攻击者多次尝试,仍有很大的成 功几率,因此,该种方式的可靠性低。又比如,还可W通过使用DNSSEC(Domain Name System Security Extensions,域名系统安全扩展)技术对DNS缓存进行加密,或者在DNS服务器上 开启TCP(化ansmission Control Protocol传输控制协议)功能,但是运些方式都需要调整 DNS服务器的配置,依赖DNS服务器本身的功能和协议,而现有的大多数DNS服务器并不支持 DNSSEC协议或者关闭了 TCP功能,使得运些方式的局限性太强。

【发明内容】

[0004] 有鉴于此,本申请提供一种DNS缓存投毒的防护方法及装置,目的是实现安全可靠 的预防DNS缓存投毒,且提高DNS缓存投毒的防护方法的适用性,降低对DNS服务器配置的依 赖。
[0005] 具体地,本申请是通过如下技术方案实现的:
[0006] 根据本申请实施例的第一方面,提供一种DNS缓存投毒的防护方法,所述方法包 括:
[0007] 将DNS服务器发送的第一 DNS查询请求报文转发至权威DNS服务器,所述第一 DNS查 询请求报文包括请求进行域名解析的目标域名;
[000引当根据所接收到的第一 DNS回复报文的信息特征,确定发生DNS缓存投毒攻击时, 构造携带所述目标域名的第二DNS查询请求报文,向预设的其他权威DNS服务器发送所述第 二DNS查询请求报文;并根据所接收到的第二DNS回复报文的信息特征,选择未发生DNS缓存 投毒攻击的第二DNS回复报文,所述第二DNS回复报文包括所述目标域名对应的IP地址;
[0009] 根据所述第二DNS回复报文,向所述DNS服务器反馈DNS回复报文,所述DNS回复报 文携带所述IP地址。
[0010] 在一实施例中,所述根据所接收到的所述第一DNS回复报文的信息特征,确定发生 DNS缓存投毒攻击,包括:
[0011]在预设时间内,接收到的所述第一DNS回复报文的数量超过1,且所述第一DNS回复 报文中的目的端口与DNS请求ID不相同,则确定发生DNS缓存投毒攻击。
[0012]在另一实施例中,所述向预设的其他权威DNS服务器发送所述第二DNS查询请求报 文;并根据所接收到的第二DNS回复报文的信息特征,选择未发生DNS缓存投毒攻击的第二 DNS回复报文,包括:
[001引向另一权威DNS服务器发送所述第二DNS查询请求报文;
[0014] 若根据所接收到的第二DNS回复报文的信息特征,确定仍发生DNS缓存投毒攻击 时,则再次构造携带所述目标域名的第二DNS查询请求报文,向又一权威DNS服务器发送所 述第二DNS查询请求报文,直至只接收到一个第二DNS回复报文。
[0015] 在另一实施例中,所述方法还包括:在接收到所述第一DNS查询请求报文时记录报 文信息,所述报文信息包括:权威DNS服务器的IP地址、源端口、DNS请求ID;
[0016] 所述根据所述第二DNS回复报文,向所述DNS服务器反馈DNS回复报文,包括:
[0017] 将所述第二DNS回复报文的源IP地址修改为所述报文信息中的权威服务器的IP地 址,目的IP地址修改为所述DNS服务器的IP地址,且将所述第二DNS回复报文的目的端口修 改为所述报文信息中的源端口,将所述第二DNS回复报文的DNS请求ID修改为所述报文信息 中的DNS请求ID;
[001引将所述修改后的第二DNS回复报文作为DNS回复报文发送至DNS服务器。
[0019] 在另一实施例中,所述方法还包括:
[0020] 保存所接收到的第一个第一 DNS回复报文;
[0021] 若已向所有的其他权威DNS服务器发送过第二DNS查询请求报文后,仍确定发生 DNS缓存投毒攻击,则将所述第一个第一DNS回复报文发送至DNS服务器,W使所述DNS服务 器接收到所述目标域名对应的IP地址;并发送用于提示存在DNS缓存投毒风险的告警信息。
[0022] 根据本申请实施例的第二方面,提供一种DNS缓存投毒的防护装置,其特征在于, 所述装置包括:
[0023] 转发单元,用于将DNS服务器发送的第一 DNS查询请求报文转发至权威DNS服务器, 所述第一 DNS查询请求报文包括请求进行域名解析的目标域名;
[0024] 处理单元,用于当根据所接收到的第一DNS回复报文的信息特征,确定发生DNS缓 存投毒攻击时,构造携带所述目标域名的第二DNS查询请求报文,向预设的其他权威DNS服 务器发送所述第二DNS查询请求报文;并根据所接收到的第二DNS回复报文的信息特征,选 择未发生DNS缓存投毒攻击的第二DNS回复报文,所述第二DNS回复报文包括所述目标域名 对应的IP地址;
[0025] 第一回复单元,用于根据所述第二DNS回复报文,向所述DNS服务器反馈DNS回复报 文,所述DNS回复报文携带所述IP地址。
[00%] 在一实施例中,所述处理单元包括:
[0027] 确定子单元,用于在预设时间内,若接收到的所述第一DNS回复报文的数量超过1, 且所述第一DNS回复报文中的目的端口与DNS请求ID不相同,则确定发生DNS缓存投毒攻击。
[0028] 在另一实施例中,所述处理单元包括:
[0029] 发送子单元,用于向另一权威DNS服务器发送所述第二DNS查询请求报文;
[0030] 处理子单元,用于若根据所接收到的第二DNS回复报文的信息特征,确定仍发生 DNS缓存投毒攻击时,则再次构造携带所述目标域名的第二DNS查询请求报文,向又一权威 DNS服务器发送所述第二DNS查询请求报文,直至只接收到一个第二DNS回复报文。
[0031] 在另一实施例中,所述装置还包括:
[0032] 记录单元,用于在接收到所述第一DNS查询请求报文时记录报文信息,所述报文信 息包括:权威DNS服务器的IP地址、源端口、DNS请求ID;
[0033] 所述第一回复单元包括:
[0034] 修改子单元,用于将所述第二DNS回复报文的源IP地址修改为所述报文信息中的 权威服务器的IP地址,目的IP地址修改为所述DNS服务器的IP地址,且将所述第二DNS回复 报文的目的端口修改为所述报文信息中的源端口,将所述第二DNS回复报文的DNS请求ID修 改为所述报文信息中的DNS请求ID;
[0035] 回复子单元,用于将所述修改后的第二DNS回复报文作为DNS回复报文发送至DNS 服务器。
[0036] 在另一实施例中,所述装置还包括:
[0037] 保存单元,用于保存所接收到的第一个第一 DNS回复报文;
[0038] 第二回复单元,用于若已向所有的其他权威DNS服务器发送过第二DNS查询请求报 文后,仍确定发生DNS缓存投毒攻击,则将所述第一个第一 DNS回复报文发送至DNS服务器, W使所述DNS服务器接收到所述目标域名对应的IP地址;并发送用于提示存在DNS缓存投毒 风险的告警信息。
[0039] 应用本实施例DNS缓存投毒的防护的方法,通过在确定发生DNS缓存投毒攻击时, 向其他权威DNS服务器继续发送DNS查询请求报文,由于攻击服务器不会轻易获知防护设备 会向哪个其他权威DNS服务器发送DNS查询请求报文,则攻击服务器不会轻易构造出可W通 过匹配检查的DNS回复报文,从而使得攻击服务器实现DNS缓存投毒的概率大大降低;并且, 该方法不需要对DNS服务器进行配置,因此适用性好,部署简单。
【附图说明】
[0040] 图1为本申请实施例实现DNS缓存投毒的防护方法的应用场景示意图。
[0041] 图2示例了本申请DNS缓存投毒的防护方法的一个实施例流程图。
[0042] 图3示例了本申请DNS缓存投毒的防护方法的另一个实施例流程图。
[0043] 图4为本申请DNS缓存投毒的防护装置所在设备的一种硬件结构图。
[0044] 图5示例了本申请DNS缓存投毒的防护装置的一个实施例框图。
[0045] 图6示例了本申请DNS缓存投毒的防护装置的另一个实施例框图。
【具体实施方式】
[0046] 运里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述设及 附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。W下示例性实施例 中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附 权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0047] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。 在本申请和所附权利要求书中所使用的单数形式的"一种"、"所述"和"该"也旨在包括多数 形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语"和/或"是指并包 含一个或多个相关联的列出项目的任何或所有可能组合。
[004引应当理解,尽管在本申请可能采用术语第一、第二、第=等来描述各种信息,但运 些信息不应限于运些术语。运些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离 本申请范围的情况下,第一信息也可W被称为第二信息,类似地,第二信息也可W被称为第 一信息。取决于语境,如在此所使用的词语"如果"可W被解释成为"在……时"或"当…… 时"或"响应于确定"。
[0049] DNS是一套分布式的域名服务系统,每个DNS服务器上都可W存放大量的域名与IP 地址的映射关系,并且是可W动态更新的,例如,在DNS服务器中新增某个域名与IP地址的 映射关系。但一台DNS服务器上,通常只记录本地所有终端或服务器的IP地址与域名的映射 关系,当终端所请求进行域名解析的目标域名,与IP地址的映射关系未存在于DNS服务器中 时,该DNS服务器可W向权威DNS服务器发送DNS查询请求报文,该DNS查询请求报文中可W 携带该目标域名,该权威DNS服务上可W存放着所有域名与IP地址的映射关系。
[0化0] 该DNS查询请求报文的源IP地址为DNS服务器的IP地址,目的IP地址即为权威DNS 服务器的IP地址,目的端口可W为固定端口,例如53端口,那么,该DNS查询请求报文的源IP 地址、目的IP地址、目的端口运S项数据,通常可W是固定不变的,即DNS服务器向权威DNS 服务器所发送的所有DNS查询请求报文中所携带的该S项数据都相同。另外,该DNS查询请 求报文的源端口是可W随机选择的,例如,源端口为端口 1234(当然,有些DNS服务器不支持 随机选择源端口功能,那么,在该情况下,不同DNS查询请求报文的源IP地址、目的IP地址、 源端口、目的端口是相同的);此外,该DNS查询请求报文中还包括DNS请求ID,该DNS请求ID 则可W是随机生成的,例如为4321。
[0051 ]当权威DNS服务器接收到该DNS查询请求报文后,向DNS服务器发送携带该目标域 名对应的IP地址的DNS回复报文。此时,DNS服务器可W采用简单信任机制,即仅对该DNS回 复报文的源IP地址、目的端口、DNS请求ID进行匹配检查,例如,匹配检查该DNS回复报文的 源IP地址、目的端口、DNS请求ID是否分别与之前发送的DNS查询请求报文的目的IP地址、源 端口、DNS请求ID相同。若均相同,则可W认为检查通过,从而,DNS服务器可W通过该DNS回 复报文获取目标域名对应的IP地址,并可W将该目标域名与IP地址的对应关系保存在本地 缓存中,W形成DNS缓存,方便之后的查询。
[0052] 然而,攻击者可W通过技术手段,实施DNS缓存投毒,即实现在权威服务器所发送 的正常的DNS回复报文到达DNS服务器之前,使得虚假DNS回复报文到达DNS服务器,并通过 匹配检查,W使DNS服务器保存错误的域名与IP地址的映射关系。例如将某个域名对应的IP 地址替换为恶意网址,当用户访问该域名时,将被引导至该恶意网址,对用户体验造成影 响,甚至影响用户的安全。
[0053] 为了防护DNS缓存投毒,本申请提供了 DNS缓存投毒的防护方法及装置。如下的图1 所示,为本申请实施例实现DNS缓存投毒的防护方法的应用场景示意图。
[0054] 图1中,包括DNS服务器11、防护设备12、权威DNS服务器13、攻击服务器14和其他权 威DNS服务器(如图1中所示的权威DNS服务器15至权威DNS服务器In)。其中防护设备12位于 权威DNS服务器13, W及权威DNS服务器15至权威DNS服务器In与DNS服务器11的连接之间, 即每个权威DNS服务器向DNS服务器11发送的DNS回复报文,都将先传输至防护设备12;并 且,攻击服务器14所发送的虚假DNS回复报文,也将先传输至防护设备12。此外,在本申请 中,权威DNS服务器15至权威DNS服务器In所保存的域名与IP地址的映射关系均与权威DNS 服务器13所保存的域名与IP地址的映射关系相同。
[0055] 防护设备12可W执行本申请DNS缓存投毒的防护方法,对接收到的DNS回复报文进 行检查,识别到未发生DNS缓存投毒攻击的DNS回复报文后,才将该DNS回复报文发送至DNS 服务器11,从而实现安全可靠的预防DNS缓存投毒,且提高DNS缓存投毒的防护方法的适用 性,降低对DNS服务器配置的依赖。
[0056] 为了详细的说明本申请是如何实现DNS缓存投毒的防护方法的,结合图1所示的应 用场景示意图,如下图2,示例了本申请DNS缓存投毒的防护方法的一个实施例流程图,W防 护设备12,执行该方法为例,包括W下步骤:
[0057] 步骤S201:将DNS服务器发送的第一 DNS查询请求报文转发至权威DNS服务器,所述 第一 DNS查询请求报文包括请求进行域名解析的目标域名。
[0058] 本申请实施例中,当DNS服务器11中不存在客户端所请求进行域名解析的目标域 名所对应的IP地址时,DNS服务器11可W向权威DNS服务器13发送携带该目标域名的第一 DNS查询请求报文,W向权威DNS服务器13请求查询该目标域名对应的IP地址。如图1所示, 该第一 DNS查询请求报文先传输至防护设备12,再由防护设备12将该第一 DNS查询请求报文 转发至权威DNS服务器13。
[0化9] 该第一DNS查询请求报文所包括的源IP地址、目的IP地址、源端口、目的端口、DNS 请求ID的相关介绍可W参见上述相关描述,在此不再详细寶述。
[0060]步骤S202:当根据所接收到的第一DNS回复报文的信息特征,确定发生DNS缓存投 毒攻击时,构造携带所述目标域名的第二DNS查询请求报文,向预设的其他权威DNS服务器 发送所述第二DNS查询请求报文,并根据所接收到的第二DNS回复报文的参数特征,选择未 发生DNS缓存投毒攻击的第二DNS回复报文,所述第二DNS回复报文包括所述目标域名对应 的IP地址。
[0061 ]由图1所示,权威DNS服务器13和攻击服务器14所反馈的DNS回复报文和虚假DNS回 复报文都可W先传输至防护设备12,由防护设备12对所接收到的DNS回复报文进行检查。为 了描述方便,本申请实施例中,将防护设备在向权威DNS服务器13发送第一 DNS查询请求报 文后,所接收到的所有DNS回复报文,统一描述为第一 DNS回复报文。
[0062] 攻击服务器14若想实现DNS缓存投毒攻击,可W发送大量的虚假DNS回复报文,W 携带不同的目的端口与DNS请求ID,试图尝试使得虚假DNS回复报文可W通过匹配检查。本 实施例中,防护设备12可W根据所接收到的第一DNS回复报文的信息特征进行检查,例如, 该信息特征可W包括所接收到的第一DNS回复报文的数量,W及第一DNS回复报文的目的端 口和DNS请求ID。例如,防护设备12在预设的时间内,例如3秒内,接收到多个第一DNS回复报 文,且运些第一 DNS回复报文的目的端口、DNS请求ID不相同时,则防护设备12可W确定发生 DNS缓存投毒。
[0063] 为了实现防护DNS缓存投毒,本实施例中,防护设备12可W构造携带所述目标域名 的第二DNS查询请求报文,并向其他权威DNS服务器(如图1中所示的权威DNS服务器15至权 威DNS服务器1 n中的一台权威DNS服务器),例如权威DNS服务器15,发送该第二DNS查询请求 报文,W获取目标域名对应的IP地址。
[0064] 之后,防护设备12可W接收到权威DNS服务器15反馈的DNS回复报文,当然,攻击服 务器14仍可W继续发送虚假DNS回复报文,为了描述方便,本申请实施例中,将防护设备12 在向其他权威DNS服务器发送第二DNS查询请求报文后,所接收到的DNS回复报文称为第二 DNS回复报文。防护设备12可W继续根据所接收到的第二DNS回复报文的信息特征进行检 查,最终选择未发生DNS缓存投毒攻击的第二DNS回复报文,例如,选择所接收到的唯一的一 个第二DNS回复报文。
[0065] 步骤S203:根据所述第二DNS回复报文,向所述DNS服务器反馈DNS回复报文,所述 DNS回复报文携带所述IP地址。
[0066] 当执行完步骤S202,防护设备12选择出未发生DNS缓存投毒攻击的第二DNS回复报 文后,可W根据该第二DNS回复报文,向DNS服务器11反馈DNS回复报文,W告知DNS服务器11 所请求进行域名解析的目标域名所对应的IP地址。
[0067] 应用本实施例DNS缓存投毒的防护的方法,通过在确定发生DNS缓存投毒攻击时, 向其他权威DNS服务器继续发送DNS查询请求报文,由于攻击服务器不会轻易获知防护设备 会向哪个其他权威DNS服务器发送DNS查询请求报文,则攻击服务器不会轻易构造出可W通 过匹配检查的DNS回复报文,从而使得攻击服务器实现DNS缓存投毒的概率大大降低;并且, 该方法不需要对DNS服务器进行配置,因此适用性好,部署简单。
[0068] 为了更详细的说明本申请是如何实现DNS缓存投毒的防护方法的,在上述图2所示 的实施例的基础上,做进一步的详细说明。如下的图3,示例了本申请DNS缓存投毒的防护方 法的另一个实施例流程图,仍W防护设备12,执行该方法为例,包括W下步骤:
[0069] 步骤S301:将DNS服务器发送的第一 DNS查询请求报文转发至权威DNS服务器,所述 第一 DNS查询请求报文包括请求进行域名解析的目标域名。
[0070] 本步骤的相关描述可W参见上述实施例中步骤S201中的描述,在此不再详细寶 述。
[0071] 此外,在本实施例中,防护设备12在接收到DNS服务器11所发送的第一DNS查询请 求报文时,可W记录下该第一DNS查询请求报文的报文信息,例如,该报文信息可W包括目 的IP地址,例如权威DNS服务器13的IP地址,源端口,例如1234,W及DNS请求ID,例如4321, W方便之后的操作。记录该报文信息的具体用途参见下述描述,在此先不做详述。
[0072] 步骤S302:在预设时间内,若接收到的第一DNS回复报文的数量超过1,且所述第一 DNS回复报文中的目的端口与DNS请求ID不相同,则确定发生DNS缓存投毒。
[0073] 本步骤的相关描述可W参见上述实施例中步骤S202中的描述,在此不再详细寶 述。
[0074] 步骤S303:构造携带所述目标域名的第二DNS查询请求报文,向另一权威DNS服务 器发送所述第二DNS查询请求报文。
[0075] 在本实施例中,当执行完步骤S302,确定发生DNS缓存投毒后,防护设备12可W构 造一个第二DNS查询请求报文,且该第二DNS查询请求报文携带所述目标域名,防护设备12 可W选择一个其他权威DNS服务器,即未向其发送过第二DNS查询请求报文的权威DNS服务 器,并向该其他权威DNS服务器发送该第二DNS查询请求报文。
[0076] 该第二DNS查询请求报文的目的地址即为所选择的其他权威DNS服务器的IP地址, 该第二DNS查询请求报文的源端口与DNS请求ID,则可W是随机选择的,例如,该第二DNS查 询请求报文的源端口为2222,DNS请求ID为4444。
[0077]在一个例子中,如图1所示,权威DNS服务器15至权威DNS服务器In均保存有与权威 DNS服务器13相同的域名与IP地址的映射关系。可W预先设置一个权威DNS服务器的顺序 表,该顺序表中保存有权威DNS服务器的名称与对应的标识,该标识用W表示是否已向该权 威DNS服务器发送过第二DNS查询请求报文,例如,当标识为"0"时,表示未向该权威DNS服务 器发送过第二DNS查询请求报文,当标识为"r时,表示已向该权威DNS服务器发送过第二 DNS查询请求报文。
[007引如下表1所示,为该顺序表的一种示例:
[0079]表 1 「nnonl
[0081] 防护设备12选择其他权威DNS服务器时,可W遍历上述表1所示的顺序表,当所遍 历到的标识为"0"时,则选择该标识所对应的权威DNS服务器,例如,所选择的为权威DNS月良 务器15,则向权威DNS服务器15发送该第二DNS查询请求报文,W查询该目标域名对应的IP 地址。之后,防护设备12还可W在上表1所示的顺序表中,将权威DNS服务器15所对应的标识 设置为"1",W表示已向权威DNS服务器15发送过第二DNS查询请求报文。
[0082] 在另一个例子中,防护设备12选择其他权威DNS服务器时,可W随机选择一个权威 DNS服务器,并确定未向该权威DNS服务器发送过第二DNS查询请求报文时,例如,可W根据 上述顺序表确定该权威DNS服务器对应的标识为"0",向该权威DNS服务器发送该第二DNS查 询请求报文,W查询该目标域名对应的IP地址。之后,防护设备12还可W标识该权威DNS服 务器已被选择过,例如,在上述表1所示的顺序表中,将该权威DNS服务器所对应的标识设置 为。1"。
[0083] 步骤S304:若根据所接收到的第二DNS回复报文的信息特征,确定仍发生DNS缓存 投毒攻击时,则再次构造携带所述目标域名的第二DNS查询请求报文,向又一权威DNS服务 器发送所述第二DNS查询请求报文,直至只接收到一个第二DNS回复报文。
[0084] 在本步骤中,例如,若执行完步骤S303,向权威DNS服务器15发送第二DNS查询请求 报文后,根据所接收到的第二DNS回复报文的信息特征,确定仍发生DNS缓存投毒攻击时,贝U 防护设备12可W如步骤S303中所描述的,再次构造一个第二DNS查询请求报文,该再次构造 的第二DNS查询请求报文仍携带请求进行域名解析的目标域名,且该第二DNS查询请求报文 的源端口与DNS请求ID为重新生成的,例如,源端口为3333,DNS请求ID为6666;防护设备12 可W如步骤S303中所描述的,选择又一个权威DNS服务器,例如,选择权威DNS服务器16,向 权威DNS服务器16发送该再次构造的第二DNS查询请求报文。
[0085] 直至在预设的时间内,例如,3秒内,防护设备12只接收到一个第二DNS回复报文 时,可W认为攻击服务器14未发送大量虚假DNS回复报文,即可W认为未发生DNS缓存投毒 攻击。
[0086] 步骤S305:根据所述第二DNS回复报文,向所述DNS服务器反馈DNS回复报文。
[0087] 由于该第二DNS回复报文是由其他权威DNS服务器所反馈的,虽然可W认为其不存 在DNS缓存投毒攻击,但该第二DNS回复报文的源IP地址、目的端口 W及DNS请求ID仍不能通 过DNS服务器的匹配检查,且该第二DNS回复报文最终应发送至DNS服务器11。因此,防护设 备12在确认正确的第二DNS回复报文后,可W对其进行修改,将修改后的第二DNS回复报文 作为DNS回复报文,反馈至DNS服务器11,W使该DNS回复报文可W被发送至DNS服务器11,且 可W通过DNS服务器11的匹配检查。
[00则例如,假设步骤S304中,在向权威DNS服务器16发送第二DNS查询请求报文后,根据 所接收到的唯一的一个第二DNS回复报文确定未发生DNS缓存投毒攻击后,将该第二DNS回 复报文的源IP地址修改为步骤S301中所记录的第一 DNS查询请求报文的目的IP地址,例如, 将其源IP地址由权威DNS服务器16的IP地址修改为权威DNS服务器13的IP地址;将其目的IP 地址由防护设备12的IP地址修改该DNS服务器11的IP地址;将其所包括的目的端口修改为 步骤S301中所记录的第一DNS查询请求报文的源端口,例如,将其目的端口由端口3333修改 为端口 1234;将其所包括的DNS请求ID修改为步骤S301中所记录的第一 DNS查询请求报文的 DNS请求ID,例如,将其DNS请求ID由6666修改为4321。将修改后的第二DNS回复报文作为DNS 回复报文,并将该DNS回复报文反馈至DNS服务器,W使DNS服务器获取请求查询的目标域名 所对应的IP地址。
[0089] 此外,在本实施例中,当防护设备12接收到第一个第一DNS回复报文时,可W保存 该第一 DNS回复报文。之后,当防护设备12已向所有的其他权威服务器发送过第二DNS查询 请求报文后,仍确定发生DNS缓存投毒攻击,则可W将该第一 DNS回复报文反馈至DNS服务器 11,W使DNS服务器11能够获得一个IP地址。当然,该第一DNS回复报文有可能为攻击服务器 14所发送的虚假DNS回复报文,此时,防护设备还可W向网络管理者发送告警信息,W提示 网络管理者存在发生DNS缓存投毒攻击的风险。
[0090] 在一个例子中,该告警信息中,可W携带目标域名,W及第一DNS回复报文中所携 带的该目标域名对应的IP地址,W使网络管理者可W根据该告警信息进行分析,得出存在 DNS缓存投毒攻击风险的域名W及IP地址,避免用户访问该域名时,被引导至恶意网址,对 用户体验造成影响,甚至影响用户的安全。
[0091] 此外,在本实施例中,由上述描述可知,防护设备12可W根据第二DNS回复报文或 者第一 DNS回复报文,向DNS服务器11回复DNS回复报文。当防护设备12根据第二DNS回复报 文向DNS服务器11回复DNS回复报文时,也可W向网络管理者发送提示信息,用于提示网络 管理者DNS缓存投毒防护成功,而当防护设备12根据第一 DNS回复报文向DNS服务器11回复 DNS回复报文时,可W向网络管理者发送另一提示信息,即告警信息,用于提示网络管理者 存在发生DNS缓存投毒的风险。例如,防护设备12上具有信息提示灯,该信息提示灯显示红 色时,表示存在发生DNS缓存投毒的风险,该信息提示灯显示绿色时,表示DNS缓存投毒防护 成功。
[0092] 应用本实施例DNS缓存投毒的防护方法,通过在接收到DNS回复报文时,根据其数 量超过1个,W及其目的端口和DNS请求ID不相同,可W确定发生DNS缓存投毒攻击,并选择 一个其他权威DNS服务器,向该其他权威DNS服务器继续发送DNS查询请求报文,直至只接收 到 一个DNS回复报文时,确认该唯一的DNS回复报文不存在DNS缓存投毒攻击。由于攻击服务 器不会轻易获知防护设备会向哪个其他权威DNS服务器发送DNS查询请求报文,则攻击服务 器不会轻易构造出可W通过匹配检查的DNS回复报文,从而使得攻击服务器实现DNS缓存投 毒的概率大大降低;并且,该方法不需要对DNS服务器进行配置,因此适用性好,部署简单。
[0093] 与前述DNS缓存投毒的防护方法的实施例相对应,本申请还提供了 DNS缓存投毒的 防护装置的实施例。
[0094] 本申请DNS缓存投毒的防护装置的实施例可W应用在防护设备上,可W理解的是, 本申请DNS缓存投毒的防护装置的实施例也可W应用在其他网络设备上,本申请对此不做 限制。装置实施例可W通过软件实现,也可W通过硬件或者软硬件结合的方式实现。W软件 实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中 对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请 DNS缓存投毒的防护装置所在设备的一种硬件结构图,除了图4所示的处理器41、内存42、网 络接口43、W及非易失性存储器44之外,实施例中装置所在的设备通常根据该设备的实际 功能,还可W包括其他硬件,对此不再寶述。
[0095] 请参考图5,示例了本申请DNS缓存投毒的防护装置的一个实施例框图,所述装置 可W包括:转发单元51、处理单元52、第一回复单元53。
[0096] 其中,所述转发单元51,可W用于将DNS服务器发送的第一 DNS查询请求报文转发 至权威DNS服务器,所述第一 DNS查询请求报文包括请求进行域名解析的目标域名;
[0097] 所述处理单元52,可W用于当根据所接收到的第一 DNS回复报文的信息特征,确定 发生DNS缓存投毒攻击时,构造携带所述目标域名的第二DNS查询请求报文,向预设的其他 权威DNS服务器发送所述第二DNS查询请求报文;并根据所接收到的第二DNS回复报文的信 息特征,选择未发生DNS缓存投毒攻击的第二DNS回复报文,所述第二DNS回复报文包括所述 目标域名对应的IP地址;
[0098] 所述第一回复单元53,可W用于根据所述第二DNS回复报文,向所述DNS服务器反 馈DNS回复报文,所述DNS回复报文携带所述IP地址。
[0099] 请参考图6,示例了本申请DNS缓存投毒的防护装置的另一个实施例框图,该实施 例在上述图5所示装置的基础上,其中所述装置可W包括:处理单元52,可W包括:确定子单 元521、发送子单元522、处理子单元523。
[0100] 所述确定子单元521,可W用于在预设时间内,若接收到的所述第一 DNS回复报文 的数量超过1,且所述第一DNS回复报文中的目的端口与DNS请求ID不相同,则确定发生DNS 缓存投毒攻击。
[0101] 所述发送子单元522,可W用于向另一权威DNS服务器发送所述第二DNS查询请求 报文;
[0102] 所述处理子单元523,可W用于若根据所接收到的第二DNS回复报文的信息特征, 确定仍发生DNS缓存投毒攻击时,则再次构造携带所述目标域名的第二DNS查询请求报文, 向又一权威DNS服务器发送所述第二DNS查询请求报文,直至只接收到一个第二DNS回复报 文。
[0103] 所述装置还可W包括:记录单元54。
[0104] 所述记录单元54,可W用于在接收到所述第一 DNS查询请求报文时记录报文信息, 所述报文信息包括:权威DNS服务器的IP地址、源端口、DNS请求ID;
[01化]所述第一回复单元53,可W包括:修改子单元531、回复子单元532。
[0106] 其中,所述修改子单元531,可W用于将所述第二DNS回复报文的源IP地址修改为 所述报文信息中的权威服务器的IP地址,目的IP地址修改为所述DNS服务器的IP地址,且将 所述第二DNS回复报文的目的端口修改为所述报文信息中的源端口,将所述第二DNS回复报 文的DNS请求ID修改为所述报文信息中的DNS请求ID;
[0107] 所述回复子单元532,可W用于将所述修改后的第二DNS回复报文作为DNS回复报 文发送至DNS服务器。
[0108] 所述装置还可W包括:保存单元55、第二回复单元56。
[0109] 其中,所述保存单元55,可W用于保存所接收到的第一个第一 DNS回复报文;
[0110] 所述第二回复单元56,可W用于若已向所有的其他权威DNS服务器发送过第二DNS 查询请求报文后,仍确定发生DNS缓存投毒攻击,则将所述第一个第一 DNS回复报文发送至 DNS服务器,W使所述DNS服务器接收到所述目标域名对应的IP地址;并发送用于提示存在 DNS缓存投毒风险的告警信息。
[0111] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的 实现过程,在此不再寶述。
[0112] 对于装置实施例而言,由于其基本对应于方法实施例,所W相关之处参见方法实 施例的部分说明即可。W上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件 说明的单元可W是或者也可W不是物理上分开的,作为单元显示的部件可W是或者也可W 不是物理单元,即可W位于一个地方,或者也可W分布到多个网络单元上。可W根据实际的 需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付 出创造性劳动的情况下,即可W理解并实施。
[0113] W上所述仅为本申请的较佳实施例而已,并不用W限制本申请,凡在本申请的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【主权项】
1. 一种DNS缓存投毒的防护方法,其特征在于,所述方法包括: 将域名系统DNS服务器发送的第一 DNS查询请求报文转发至权威DNS服务器,所述第一 DNS查询请求报文包括请求进行域名解析的目标域名; 当根据所接收到的第一DNS回复报文的信息特征,确定发生DNS缓存投毒攻击时,构造 携带所述目标域名的第二DNS查询请求报文,向预设的其他权威DNS服务器发送所述第二 DNS查询请求报文;并根据所接收到的第二DNS回复报文的信息特征,选择未发生DNS缓存投 毒攻击的第二DNS回复报文,所述第二DNS回复报文包括所述目标域名对应的IP地址; 根据所述第二DNS回复报文,向所述DNS服务器反馈DNS回复报文,所述DNS回复报文携 带所述IP地址。2. 根据权利要求1所述的方法,其特征在于,所述根据所接收到的所述第一 DNS回复报 文的信息特征,确定发生DNS缓存投毒攻击,包括: 在预设时间内,接收到的所述第一DNS回复报文的数量超过1,且所述第一DNS回复报文 中的目的端口与DNS请求ID不相同,则确定发生DNS缓存投毒攻击。3. 根据权利要求1所述的方法,其特征在于,所述向预设的其他权威DNS服务器发送所 述第二DNS查询请求报文;并根据所接收到的第二DNS回复报文的信息特征,选择未发生DNS 缓存投毒攻击的第二DNS回复报文,包括: 向另一权威DNS服务器发送所述第二DNS查询请求报文; 若根据所接收到的第二DNS回复报文的信息特征,确定仍发生DNS缓存投毒攻击时,则 再次构造携带所述目标域名的第二DNS查询请求报文,向又一权威DNS服务器发送所述第二 DNS查询请求报文,直至只接收到一个第二DNS回复报文。4. 根据权利要求1所述的方法,其特征在于,所述方法还包括:在接收到所述第一 DNS查 询请求报文时记录报文信息,所述报文信息包括:权威DNS服务器的IP地址、源端口、DNS请 求ID; 所述根据所述第二DNS回复报文,向所述DNS服务器反馈DNS回复报文,包括: 将所述第二DNS回复报文的源IP地址修改为所述报文信息中的权威服务器的IP地址, 目的IP地址修改为所述DNS服务器的IP地址,且将所述第二DNS回复报文的目的端口修改为 所述报文信息中的源端口,将所述第二DNS回复报文的DNS请求ID修改为所述报文信息中的 DNS请求ID; 将所述修改后的第二DNS回复报文作为DNS回复报文发送至DNS服务器。5. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 保存所接收到的第一个第一 DNS回复报文; 若已向所有的其他权威DNS服务器发送过第二DNS查询请求报文后,仍确定发生DNS缓 存投毒攻击,则将所述第一个第一 DNS回复报文发送至DNS服务器,以使所述DNS服务器接收 到所述目标域名对应的IP地址;并发送用于提示存在DNS缓存投毒风险的告警信息。6. -种DNS缓存投毒的防护装置,其特征在于,所述装置包括: 转发单元,用于将DNS服务器发送的第一 DNS查询请求报文转发至权威DNS服务器,所述 第一 DNS查询请求报文包括请求进行域名解析的目标域名; 处理单元,用于当根据所接收到的第一DNS回复报文的信息特征,确定发生DNS缓存投 毒攻击时,构造携带所述目标域名的第二DNS查询请求报文,向预设的其他权威DNS服务器 发送所述第二DNS查询请求报文;并根据所接收到的第二DNS回复报文的信息特征,选择未 发生DNS缓存投毒攻击的第二DNS回复报文,所述第二DNS回复报文包括所述目标域名对应 的IP地址; 第一回复单元,用于根据所述第二DNS回复报文,向所述DNS服务器反馈DNS回复报文, 所述DNS回复报文携带所述IP地址。7. 根据权利要求6所述的装置,其特征在于,所述处理单元包括: 确定子单元,用于在预设时间内,若接收到的所述第一DNS回复报文的数量超过1,且所 述第一DNS回复报文中的目的端口与DNS请求ID不相同,则确定发生DNS缓存投毒攻击。8. 根据权利要求6所述的装置,其特征在于,所述处理单元包括: 发送子单元,用于向另一权威DNS服务器发送所述第二DNS查询请求报文; 处理子单元,用于若根据所接收到的第二DNS回复报文的信息特征,确定仍发生DNS缓 存投毒攻击时,则再次构造携带所述目标域名的第二DNS查询请求报文,向又一权威DNS服 务器发送所述第二DNS查询请求报文,直至只接收到一个第二DNS回复报文。9. 根据权利要求6所述的装置,其特征在于,所述装置还包括: 记录单元,用于在接收到所述第一DNS查询请求报文时记录报文信息,所述报文信息包 括:权威DNS服务器的IP地址、源端口、DNS请求ID; 所述第一回复单元包括: 修改子单元,用于将所述第二DNS回复报文的源IP地址修改为所述报文信息中的权威 服务器的IP地址,目的IP地址修改为所述DNS服务器的IP地址,且将所述第二DNS回复报文 的目的端口修改为所述报文信息中的源端口,将所述第二DNS回复报文的DNS请求ID修改为 所述报文信息中的DNS请求ID; 回复子单元,用于将所述修改后的第二DNS回复报文作为DNS回复报文发送至DNS服务 器。10. 根据权利要求6所述的装置,其特征在于,所述装置还包括: 保存单元,用于保存所接收到的第一个第一 DNS回复报文; 第二回复单元,用于若已向所有的其他权威DNS服务器发送过第二DNS查询请求报文 后,仍确定发生DNS缓存投毒攻击,则将所述第一个第一DNS回复报文发送至DNS服务器,以 使所述DNS服务器接收到所述目标域名对应的IP地址;并发送用于提示存在DNS缓存投毒风 险的告警信息。
【文档编号】H04L29/06GK105939337SQ201610134542
【公开日】2016年9月14日
【申请日】2016年3月9日
【发明人】邢涛
【申请人】杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1