DNS缓存中毒攻击

时间:2022-06-01 19:17:27

什么是DNS缓存中毒

DNS缓存中毒是一种网络攻击,它使您的计算机误以为它会到达正确的地址,但事实并非如此。攻击者使用DNS缓存中毒来劫持互联网流量并窃取用户凭据或个人数据。DNS缓存中毒攻击也称为DNS欺骗,它试图诱骗用户将其私人数据输入不安全的网站。

什么是DNS缓存

在讨论攻击之前,我们需要重新了解DNS和DNS缓存。DNS是IP地址和域名的全球目录。DNS缓存是将这些地址存储在世界各地的DNS服务器中的系统。

为了保持您的DNS请求快速,原始开发人员创建了一个分布式DNS系统。每个服务器都存储一个它知道的DNS记录列表–这称为缓存。如果离您最近的DNS服务器不知道您需要的IP地址,它将询问其他DNS服务器,直到找到您要访问的网站的IP地址。然后,您的DNS服务器将该新条目保存到缓存中。

DNS缓存中毒攻击

DNS缓存中毒攻击如何工作

DNS缓存中毒通过欺骗DNS服务器保存伪造的DNS条目来起作用。伪造的DNS条目的流量流向选择窃取数据的攻击者的服务器。

攻击者植入假的地址到DNS;

服务器缓存假地址;

流量被牵引到攻击者服务器。

常用技术手段如下:

(1) Birthday Attack

DNS不会验证对递归查询的响应,因此第一个响应存储在缓存中。攻击者使用“Birthday Attack”来尝试预测伪造的响应并将其发送给请求者。BirthdayAttack使用数学和概率论进行猜测。在这种情况下,攻击者试图猜测您的DNS请求的事务ID,因此带有伪造的DNS条目的伪造响应会在真正响应之前到达您。

Birthday Attack不一定能成功,但最终,攻击者会将伪造的响应偷偷溜进缓存。一旦攻击确实成功,攻击者将看到来自伪造的DNS条目的流量,直到生存时间(TTL)到期为止。

(2) Kaminsky漏洞

Kaminsky漏洞利用是BlackHat 2008上提出的Birthday Attack的一种变体。首先,攻击者向目标解析器发送不存在域的DNS查询,例如“fake.dingxinsec.com.cn”。然后,解析程序将查询转发到权威名称服务器,以获取错误子域的IP地址。此时,攻击者向解析器注入了大量伪造的响应,希望这些伪造之一与原始查询的事务ID相匹配。

如果攻击成功,则攻击者已使用dingxinsec.com.cn的伪造IP地址毒害了目标解析器的DNS缓存。直到TTL为止,请求dingxinsec.com.cn的人都将获得伪造的IP地址。

(3) 窃听

攻击者如果有足够的网络访问权限,就可以监视本地DNS流量并使用多种技术手段破坏缓存。

如何检测DNS缓存中毒

那么,如何检测DNS缓存中毒攻击?监视DNS服务器以获取可能的攻击指示,将数据安全分析应用于您的DNS监视,以识别正常的DNS行为免受攻击。

来自单个来源的有关单个域的DNS活动突然增加表示潜在的Birthday Attack。

从单一来源查询DNS服务器以获取多个域名而不进行递归的DNS活动的增加表示尝试查找用于中毒的条目。

除了监视DNS之外,还监视Active Directory事件和文件系统行为是否存在异常活动。甚至更好的是,使用分析来关联所有三个媒介之间的活动,从而为您的网络安全策略添加有价值的环境。

如何防止

除了监视和分析之外,您还可以在DNS服务器上进行配置更改。

限制递归查询以防止潜在的有针对性的中毒攻击

仅存储与请求域相关的数据

限制响应以仅提供有关请求域的响应

强制客户端使用HTTPS

请确保您使用的是BIND和DNS软件的最新版本,以便您具有最新的安全修复程序。

最后,DNSSEC是一种新的DNS协议,可对DNS请求进行加密以防止伪造。该协议尚未得到广泛采用,因为它确实会减慢DNS进程。HTTPS上的DNS(DoH)是下一版本DNS的竞争规范,可以在不牺牲DNSSEC之类的速度的情况下确保DNS请求的安全。