专家解读 | 全球DNS巨大安全漏洞曝光,DNSSEC缺陷应如何弥补?186
发表时间:2024-02-20 11:20 近日,来自德国国家应用网络安全研究中心ATHENE的研究人员联合歌德大学法兰克福特分校、弗劳恩霍夫安全信息技术研究所和达姆施塔特工业大学的专家,共同发现了一个可导致全球互联网瘫痪的名为KeyTrap的严重漏洞。 该漏洞隐藏在DNSSEC即域名系统安全扩展功能中,可被攻击者利用发动DoS攻击,长时间阻断应用程序访问互联网。 ![]() 为何KeyTrap会造成全球性网安危机? DNSSEC是域名系统(DNS)的一个安全扩展功能,通过加密签名为DNS记录提供身份验证。ZDNS技术专家指出,在DNSSEC出现之前,基于UDP的DNS存在缓存投毒等安全风险(比较出名的如卡明斯基漏洞)。DNSSEC借助PKI体系,使用数字签名来保证DNS数据的正确性和完整性,从而解决了DNS数据恶意篡改的问题。 “DNSSEC在全球的部署,让互联网上一切面向域名的安全认证“应用”有了信任锚点”,国际互联网社群专家表示,为了提供一种针对DNS资源记录数据完整性的保护机制,互联网国际标准组织IETF利用数字签名技术,规范了DNS安全功能扩展技术标准(RFC4034,Resource Records for the DNS Security Extensions),也即DNSSEC。DNSSEC的加持让DNS发生了“气质性变异”,使其从一个分布式数据库进化成为一个轻量级PKI系统。 也正是因其重要作用及广泛应用,DNSSEC漏洞并不是单纯一款DNS服务器软件的程序设计问题,它涉及到几乎所有的主流DNS服务器软件(BIND / Unbound / KNOT / PowerDNS等)以及公共DNS服务器提供商(Akamai / Google / Cloudflare / Quad9等)。据APNIC数据显示,全球30.57%的DNS服务器开启了DNSSEC验证功能,因此,该漏洞的影响范围仍将十分广泛。 ![]() DNSSEC的设计缺陷 ![]() ZDNS技术专家指出,DNSSEC设计时遵循了Postel法则,要求DNS服务器发送所有可用的加密材料以确保即使在某些密钥配置错误或过期等情况下也能成功验证记录集,从而保障服务的高可用性。 然而,研究者发现这一设计中存在漏洞,攻击者可以利用这些漏洞通过精心构造一个单一的DNSSEC签名响应来对DNS解析器实施DoS攻击,导致其CPU指令计数暴增200万倍,部分解析器最长会停滞16小时之久。 DNSSEC中的漏洞主要包括以下几个方面: 01 DNS区域允许存在多个密钥,尤其是在密钥轮转或多算法支持期间。DNSSEC使用键标识符(key-tag)区分不同密钥,但该标识符并非唯一,可能导致同一区域、同一种算法的不同密钥拥有相同的键标识符三元组(zone name, algorithm, key-tag)。由于键标识符空间有限且计算方法随机性不足,尽管碰撞罕见,但在实际中可能发生,使得解析器无法高效识别合适的密钥,而必须尝试验证所有可能的密钥,造成显著的计算负担。 02 标准规定解析器必须尝试验证所有可能冲突的密钥直至找到有效密钥或尝试完毕,以确保即便存在密钥冲突,服务仍能保持可用。这种“积极验证”的策略在遭遇恶意构造的多密钥冲突记录时会导致验证过程所需的计算量急剧增长。 03 同样,DNS标准建议对于同一记录上的多个签名也要尝试全部验证,例如在密钥轮换过程中可能会出现这种情况。因此,在存在多个签名的情况下,解析器需要尝试验证接收到的所有签名。 ![]() 如何弥补漏洞危机? ZDNS专家表示,此漏洞存在于DNSSEC标准中超过25年,实际部署中也存在约24年,但由于DNSSEC验证规则本身的复杂性,社区一直未能察觉到这个问题。 据报道,作为对KeyTrap威胁的回应,Akamai在2023年12月至2024年2月期间开发并部署了针对其DNSi递归解析器(包括CacheServe和AnswerX)以及其云和托管解决方案的缓解措施。此外,Google和Cloudflare也已着手修复其DNS服务。 作为国内领先的互联网关键基础资源服务商,ZDNS持续加强自主研发能力,解决互联网发展过程中伴随的技术及安全问题,通过下一代DNS技术突破,筑牢网络根基。 针对此次DNSSEC漏洞问题,ZDNS已制定出具有针对性的解决方案,并正在推出相应的补丁版本产品,全方位保障客户网络安全。 声明:此篇为ZDNS-国家工程研究中心原创文章,转载请标明出处链接:https://www.zdns.cn/h-nd-429.html
|