土行孙

DNS缓存污染,是一种计算机安全黑客攻击的形式,其中将破坏的域名系统数据引入到DNS解析器的缓存中,导致名称服务器返回不正确的IP地址。这导致流量被转移到攻击者的计算机(或任何其他计算机)。

域名系统概述

甲域名系统服务器转换的人类可读的域名(例如example.com)为数值的IP地址,用于路线之间的通信节点。通常如果服务器不知道所请求的翻译,它会询问另一个服务器,并且该过程继续递归。为了提高性能,服务器通常会记住(缓存)这些翻译一段时间。这意味着如果它接收到相同翻译的另一个请求,它可以回复,而不需要询问任何其他服务器,直到该缓存过期。当DNS服务器收到错误的翻译并缓存进行性能优化时,会被认为是中毒的,并向客户端提供虚假数据。如果DNS服务器中毒,可能会返回不正确的IP地址,将流量转移到另一台计算机(通常是攻击者)。

缓存中毒攻击

通常,联网计算机使用由Internet服务提供商(ISP)或计算机用户组织提供的DNS服务器。DNS服务器在组织的网络中使用,通过缓存先前获得的查询结果来提高解决方案的响应性能。对单个DNS服务器的中毒攻击可能会影响受到破坏的服务器直接服务的用户或其下游服务器(如果适用)间接服务的用户。为了执行缓存中毒攻击,攻击者利用 DNS软件中的漏洞。服务器应正确验证DNS响应,以确保它们来自权威来源(例如使用DNSSEC); 否则服务器可能会在本地缓存不正确的条目,并将其提供给发出相同请求的其他用户。

这种攻击可用于将用户从网站重定向到攻击者选择的另一个站点。例如,攻击者会 欺骗给定DNS服务器上目标网站的IP地址DNS条目,并将其替换为其控制下的服务器的IP地址。攻击者然后在其控制下的服务器上创建名称与目标服务器上的文件相匹配的文件。这些文件通常包含恶意内容,如计算机蠕虫或病毒。计算机引用中毒的DNS服务器的用户被诱骗接受来自非真实服务器的内容,并且不知不觉地下载恶意内容。这种技术也可以用于网络钓鱼攻击,

变种

在以下变体中,服务器ns.target .example的条目将被中毒并重定向到IP地址为wxyz的攻击者名称服务器。这些攻击假定target.example的名称服务器是ns.target.example。为了完成攻击,攻击者必须强制目标DNS服务器请求由其中一个攻击者的名称服务器控制的域。

重定向目标域的名称服务器

DNS缓存中毒的第一个变体涉及将攻击者域的名称服务器重定向到目标域的名称服务器,然后将该名称服务器分配给攻击者指定的IP地址。

将NS记录重定向到另一个目标域

DNS缓存中毒的第二个变体涉及将与原始请求无关的另一个域的名称服务器重定向到攻击者指定的IP地址。

 

预防和缓解

通过对其他DNS服务器传递给它们的信息的信任度较低,并且忽略与查询无直接关系的任何返回的DNS记录,可以防止对DNS服务器的多个缓存中毒攻击。例如,BIND 9.5.0-P1 [2]及以上版本执行这些检查。DNS请求的源端口随机化,结合使用加密安全随机数来选择源端口和16位加密随机数,可以大大降低DNS竞争攻击成功的可能性。然而,当路由器,防火墙,代理和其他网关设备执行网络地址转换(NAT),或更具体地,端口地址转换(PAT)时,它们可以重写源端口以跟踪连接状态。修改源端口时,PAT设备可能会删除由名称服务器和存根解析器实现的源端口随机性。安全DNS(DNSSEC)使用用可信公钥证书签名的加密数字签名来确定数据的真实性。DNSSEC可以对抗缓存中毒攻击,但截至2008年尚未广泛部署。2010年DNSSEC在互联网根域服务器上实现。

一旦连接建立,可以通过执行端到端验证,在传输层或应用层缓解这种攻击。一个常见的例子是使用传输层安全性和数字签名。例如,通过使用HTTPS(安全版本的HTTP),用户可以检查服务器的数字证书是否有效,并且属于网站的预期所有者。类似地,安全Shell远程登录程序在进行会话之前在端点(如果已知)检查数字证书。对于自动下载更新的应用程序,应用程序可以在本地嵌入签名证书的副本,并根据嵌入式证书验证存储在软件更新中的签名。

2017年6月27日

什么是DNS缓存污染

DNS缓存污染,是一种计算机安全黑客攻击的形式,其中 […]
2017年5月28日

如何保护好你的比特币

随着比特币价格的上涨和新兴投资者的涌入,现在是审查如 […]
2017年4月17日

关于DNS劫持的解释

DNS劫持也称为DNS中毒或DNS欺骗,是专制政体通 […]
2017年4月17日

如何阻止广告商跟踪您的浏览习惯

在互联网上匿名用户的主要方式是使用Cookie和个人 […]