什么是DNS缓存污染 – 工作原理和预防措施?

DNS缓存污染是将虚假或伪造的条目注入DNS缓存以将用户重定向到恶意网站。

DNS缓存污染是由允许犯罪分子提交伪造的DNS响应的漏洞引起的,而域名服务器(DNS)将这些响应存储在其缓存中。

通常,受到攻击的条目将用户重定向到攻击者用于执行犯罪活动的伪造网站,例如传播恶意软件或窃取信用卡详细信息、密码、财务数据和其他敏感信息。private information

当发生DNS缓存污染时,DNS缓存服务器存储攻击者提供的非法地址,并将其提供给请求真实网站的用户。在大多数情况下,这可能与真实网站相似,因此使访问者更难怀疑有任何问题。

DNS缓存污染的影响

域名劫持,也称为DNS欺骗,通常很难被检测到,并且可能会产生重大的负面影响,尤其是对于访问量较大的受欢迎网站或Web应用程序。这对一些敏感行业(如银行业、医疗、在线零售、电子商务等)构成了很大的风险。

例如,假设攻击者成功更改了亚马逊的链接和IP地址。然后,他们会将其指向由攻击者控制或拥有的具有伪造IP的不同服务器。任何试图访问真正的亚马逊网站的人都将被重定向到错误的地址,其中可能包含用于窃取敏感信息的恶意程序。

图片:Imperva

除了网站,攻击者还可以为电子邮件服务器或其他Web应用程序(如银行应用程序)插入虚假地址。这将导致所有业务电子邮件通信或交易都被重定向到攻击者的服务器。

由于DNS中的更改通常从一个服务器传播到另一个服务器,因此毒化的缓存可能会传播到其他DNS服务器和系统,从而造成很大的损害。例如,伪造的条目可以迅速传播到其他计算机(如ISP DNS服务器),然后将其存储在其缓存中。从这里,它进一步传播到靠近用户的设备,如计算机浏览器、手机和路由器,这些设备也会将该错误记录存储在其缓存中。

DNS缓存污染是如何工作的?

犯罪分子可以使用不同的技术来污染DNS缓存。

在正常操作期间,DNS请求通常存储或缓存在一个数据库中,用户可以实时查询该数据库。通常,DNS数据库具有Internet名称和相应IP地址的列表。这使得使用名称而不是IP地址来查找和访问网站变得更加简单。

例如,如果没有DNS系统,用户将需要记住组成所要访问或重新访问的所有网站的IP地址的一系列数字。

不幸的是,DNS存在几个安全漏洞,攻击者可以利用这些漏洞并向系统中插入虚假的互联网域名地址记录。通常,犯罪分子向DNS服务器发送伪造的响应。服务器然后响应向其发出请求的用户,同时合法服务器将缓存虚假记录。一旦DNS缓存服务器存储了虚假记录,所有后续对现在被入侵的条目的请求将接收到由攻击者控制的服务器的地址。

DNS缓存污染涉及将损坏的条目插入DNS名称服务器缓存数据库,攻击者使用了不同的方法。这些方法包括:

  • 当一个网站或网络应用用户通过浏览器或在线应用程序提交对某个域的请求时,DNS服务器首先会检查缓存中是否存在该条目。如果没有存储,它将请求权威DNS服务器的信息,然后等待响应。在一段时间内,攻击者可以利用这个狭窄的等待期,在权威服务器发送真实地址之前暂时接管原始DNS的角色并发出虚假响应。然而,由于等待时间通常很短,成功率非常低。
  • 另一种方法涉及发送伪造响应来冒充合法的DNS服务器。由于通常没有对DNS信息进行验证,攻击者可以伪造响应来自DNS解析器,因为它查询名称服务器。这也得益于DNS服务器使用用户数据报协议(UDP)而不是TCP的事实。通常,由于UDP数据包中的未加密信息和缺乏身份验证,DNS通信是不安全的。这使得攻击者很容易破坏响应并插入他们的虚假地址。

攻击者利用的DNS漏洞

某些网络应用程序的安全漏洞,以及DNS记录的适当身份验证缺失,使得网络犯罪分子能够轻松地篡改DNS响应而不被发现。其中一些漏洞包括:

缺乏验证和验证

DNS具有信任优先设计,不需要验证IP地址以确认其在发送响应之前是否是真实的。由于DNS解析器不验证缓存中的数据,不正确的记录将保留在那里,直到被手动删除或TTL过期。

递归DNS服务器漏洞

当递归查询处于活动状态时,DNS服务器接收查询并进行查找正确的地址并将响应发送给用户的所有工作。如果它在缓存中没有该记录,它将代表客户端查询其他DNS服务器,直到获得地址并将其返回给用户。启用递归查询会产生安全漏洞,攻击者可以利用该漏洞执行DNS缓存污染。

DNS递归查询图像:Stackoverflow

当服务器正在查找地址时,它为攻击者提供了拦截流量并提供虚假响应的机会。递归DNS服务器然后将响应发送给用户,同时在缓存中保存虚假IP。

缺乏加密

通常,DNS协议是未加密的,这使得攻击者可以拦截其流量。此外,服务器无法验证它们将流量定向到的IP地址是否真实。

如何预防DNS缓存污染?

实时的monitoring of the DNS数据可以帮助确定是否存在异常模式、用户活动或访问恶意网站等行为。尽管检测DNS缓存污染是困难的,但企业和服务提供商可以采取一些安全措施和做法来防止其发生。预防DNS缓存污染的措施包括使用DNSSEC、禁用递归查询等。

限制信任关系级别

DNS事务的一个漏洞是不同DNS服务器之间的高度信任关系。这意味着服务器不检查它们接收到的记录的真实性,因此允许攻击者甚至从他们的非法服务器发送虚假响应。

为了防止攻击者利用这个漏洞,安全团队应该限制他们DNS服务器与其他服务器之间的信任关系的级别。配置DNS服务器不依赖其他DNS服务器的信任关系,使得黑客更难利用他们的DNS服务器来篡改合法服务器上的记录。

有很多工具可以检查DNS security risk

使用DNSSEC协议。

域名系统安全扩展(DNSSEC)使用公钥加密为DNS记录签名,从而添加了验证功能,并允许系统确定一个地址是否合法。这有助于验证和认证请求和响应,从而防止伪造。

在典型的操作中,DNSSEC协议将一个唯一的加密签名与其他DNS信息(如CNAME和A记录)关联起来。然后DNS解析器在将其发送给用户之前使用此签名对DNS响应进行验证。

图像:Nic

安全签名确保用户收到的查询响应经过合法来源服务器的验证。尽管DNSSEC可以防止DNS缓存污染,但它有一些缺点,如部署复杂、暴露数据和早期版本中的区域枚举漏洞。

不确定您的域名是否启用了DNSSEC?立即使用DNSSEC Test tool检查。

使用最新版本的DNS和BIND(Berkeley Internet Name Domain)软件。

BIND 9.5.0或更高版本通常具有增强的安全功能,如加密安全事务ID和端口随机化,有助于最小化DNS缓存污染。此外,IT团队必须及时更新DNS软件,并确保其是最新和最安全的版本。

除上述方法外,以下是其他有效的防止DNS缓存污染的手段或实践。

  • 配置DNS服务器仅响应与请求的域名相关的信息
  • 确保缓存服务器仅存储与请求的域名相关的数据
  • 强制使用HTTPS进行所有流量
  • 禁用DNS迭代查询功能

结论

DNS缓存污染会导致将域名用户重定向到malicious地址,使其偏离预期目标。一些受攻击者控制的服务器可能会欺骗毫无戒备的用户下载恶意软件或提供密码、信用卡信息和其他敏感的私人数据。为了防止这种情况发生,采用最佳的安全实践非常重要。

类似文章