加州大学河滨分校研究揭示Linux内核中的DNS服务器攻击侧信道
加州大学河滨分校的研究团队最近发表了一篇论文,揭示了Linux内核中此前被忽视的侧信道漏洞,这些漏洞可被利用来攻击DNS服务器。研究表明,DNS的设计从未将安全性作为关键考虑因素,这使得在现有设计中引入强大的安全特性变得极为困难。
DNS的安全脆弱性
尽管DNS在网络安全链中扮演着关键角色,但其设计初衷是追求效率,导致其采用基于UDP的单次查询和响应机制,这种机制至今仍是主要工作方式。虽然DNSSEC和DNS cookies等安全特性已经存在,但由于向后兼容性问题,这些特性并未被广泛部署。目前,唯一提高DNS安全性的方法是随机化UDP端口(即临时端口),以增加攻击者发现这些端口的难度。
历史攻击与最新发现
过去已发现多种针对DNS的攻击,例如最近的SAD DNS攻击,这是一种DNS缓存投毒攻击的变种,允许攻击者向DNS缓存注入恶意记录,从而将流量重定向到攻击者的服务器,实现中间人攻击(MITM)。最新研究中,部分首次披露SAD DNS的研究人员发现了Linux内核中存在十多年的侧信道漏洞。这些漏洞允许使用ICMP探测扫描UDP临时端口,并为研究人员开发新的DNS缓存投毒攻击提供了可能。
侧信道漏洞的具体机制
研究聚焦于两种ICMP错误消息:ICMP分片需求(IPv6中为ICMP包过大)和ICMP重定向。Linux内核在处理这些消息时使用了共享资源,这些资源形成了侧信道。攻击者可以针对特定端口发送ICMP探测,如果目标端口正确,共享资源状态的变化可以被间接观察到,从而确认猜测正确。例如,攻击者可以降低服务器的MTU,导致后续响应被分片。
受影响的范围与攻击效果
这些新发现的侧信道漏洞影响了运行在Linux上的最流行的DNS软件,包括BIND、Unbound和dnsmasq。据估计,13.85%的开放解析器受到影响。研究人员还展示了针对最新BIND解析器和家庭路由器的端到端攻击,仅需几分钟即可成功。
防御措施
为防止此类攻击,可以通过设置适当的套接字选项(如指示操作系统不接受ICMP分片需求消息)来消除侧信道;随机化内核共享缓存结构;以及拒绝ICMP重定向。
补丁与更新
鉴于这一新漏洞的披露,Linux内核已针对IPv4和IPv6进行了补丁更新,以随机化共享内核结构。此外,BIND 9.16.20在IPv6套接字上设置了IP_PMTUDISC_OMIT
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。