DNS是现代攻击面的中心——你保护了所有层级吗?
如果你是一家成熟的企业,可能会管理一个包含6.5万个IP地址的外部IP块(相当于一个/16网络)。相比之下,像苹果这样的大型企业可能处理惊人的1670万个或更多IP地址(约一个/8网络)。然而,这对我们大多数人来说并非如此。IP地址是固定资产且成本高昂,因此大多数现代企业不会为每个暴露在互联网上的服务分配大量直接指定的IP地址。
相反,通常通过域名系统(DNS)配置暴露。一个企业拥有超过10万个DNS记录并不罕见。虽然防火墙规则的更改通常通过信息安全管理体系(ISMS)流程严格监管,但对DNS记录的修改通常监管较少。例如,开发团队可能直接使用Terraform等基础设施即代码工具更新DNS记录。仔细管理DNS至关重要,因为控制不足会带来诸多风险。
即使你认为完全控制了DNS,从DNS根服务器到实际软件查询的路径上仍可能出现许多风险。
DNS层级
基本的DNS查询涉及几个关键组件,它们协同工作完成最终查询:
- 根服务器:全球有13台根服务器,是DNS信息的权威来源。(有趣的事实:这些服务器大多位于北约国家。)
- 顶级域名(TLD):管理不同的域名扩展,如.com、.io等。
- 注册商:购买域名的地方。
- DNS提供商:通常与托管服务、内容分发网络(CDN)或注册商相关联,这些提供商促进DNS管理。
- 区域:指已购买域的配置设置。
- 软件发送DNS查询:这是DNS的实现,使希望相互连接的机器之间能够通信。
DNS可能在多个层级中断——且难以检测
DNS最初是为另一个时代构建的,当时只有少量计算机在基于信任的网络中连接。这同样适用于许多其他仍在使用的协议,包括SMTP和BGP。
自其原始实现以来,已有若干增强功能,如DNSSEC,有助于提高技术安全性。DNSSEC向现有DNS记录添加加密签名以确保其真实性。
然而,DNS管理通常仍然是手动过程,导致简单拼写错误可能引发问题。更复杂的是,许多类型的DNS相关漏洞无法从网络内部检测或在暂存环境中测试。
DNS查询
建立通信从DNS查询开始。虽然信息可能在本地缓存,但如果没有,将涉及以下步骤。
- 步骤1:检查本地DNS缓存/存根解析器。如果信息存在,继续步骤9。否则,继续步骤2。
- 步骤2:解析器向根服务器查询顶级域名(TLD)信息。
- 步骤3:检索TLD信息,然后继续步骤4。
- 步骤4:解析器向TLD服务器请求特定域的信息。
- 步骤5:获取域信息,继续步骤6。
- 步骤6:解析器查询域以获取detectify.com的信息。
- 步骤7:检索detectify.com信息,然后继续步骤8。
- 步骤8:DNS解析器响应与域相关的记录信息。
- 步骤9:连接到运行detectify.com应用程序的服务器。
- 步骤10:享受最先进的安全测试!
每个层级的DNS问题
根服务器
影响: 在根服务器级别,对应用程序的安全影响有限——13台根服务器公开报告的安全事件非常少。 然而,上述查询过程可能容易通过边界网关协议(BGP)操纵被劫持,一些国家试图以这种方式控制信息访问。
实际案例:Facebook曾发布错误的BGP信息,导致他们实际上将自己锁在自己的服务之外。 行动:虽然这些问题对Facebook、谷歌或微软等大型科技巨头以外的企业似乎不太相关,但运营关键基础设施的企业必须考虑如何操纵或中断对该基础设施的访问,如Facebook事件所示。
顶级域名(TLD)
影响:顶级域名(TLD)的安全性差异很大,较大的TLD通常具有强大且自动化的安全流程,而较小的TLD通常依赖手动流程和纸质表格。 实际案例:刚果民主共和国在其名称服务器上犯了一个关键错误,可能影响50%指向.cd域的互联网流量,这是Detectify研究员兼联合创始人Fredrik Almroth发现的。另一起事件中,马来西亚的一家注册商被黑客攻击,导致谷歌和联想等大公司的本地网站被重定向。
行动:为降低风险,持续监控所有拥有的域非常重要,因为即使仅用于重定向的TLD也可能被入侵。
注册商
影响:在管理应用程序的注册商时,存在重大安全影响,特别是因为一些顶级域名(TLD)只有一个注册商,而.com有数千个。评估与注册商的信任和关系至关重要,因为域过期或未续费、域名拼写错误或员工注册恶意域都可能引发问题。
一个实际例子是瑞典交通管理局,因未向注册商支付发票而面临停机。 行动: 为降低风险, diligently监控域过期日期并确保支付信息保持最新至关重要。 实施严格的域管理流程以避免潜在威胁和中断。
DNS提供商
影响:DNS提供商在应用程序安全性中扮演关键角色,拼写错误的名称服务器(NS)指针可能产生重大影响。 实际案例:例如,万事达卡多年来一直有一个拼写错误的指向Akamai域的指针。 行动:考虑到错误配置的DNS设置带来的潜在风险,自动化可能是防止这类错误和保护应用程序的宝贵工具。
区域和子域
影响:理解区域和子域的影响对应用程序安全性至关重要。
拼写错误的区域和过期的底层云资源(可能导致子域接管)构成重大风险。 电子邮件安全机制如MX、DKIM、DMARC和SPF在区域信息内控制,证明了适当区域管理的重要性。
行动: 鉴于受损区域可能导致未经授权的证书颁发,由于DNS和云资源状态的快速变化,强烈建议对较大区域实施自动化控制。 采用四眼原则进行更改,帮助确保所有上线配置经过彻底评估且准确,减少潜在漏洞。 密切关注SSL透明度日志中与自有域相关的证书问题,即使它们不是直接颁发给你的。
软件DNS查询
影响:不仅自有域的配置重要。在大多数情况下,现代应用程序加载大量外部资源。此过程的安全性 then 取决于加载资源的域。这显著增加了应用程序的实际攻击面。 行动:监控底层资源的状态域。利用SRI功能验证正在加载的内容。
回顾总结
DNS链中的许多组件可能中断且难以检测。当处理超过几百个DNS条目时,自动化成为必需。DNS相关漏洞的严重性差异很大,从仅信息性到高度关键。传统漏洞管理系统经常忽视这些类型的错误配置漏洞。
子域接管高度情境化;如果无法通过接管危害其他系统或直接访问用户数据(如cookie),通常不被视为严重。然而,如果控制根(顶点)区域的多个名称服务器(NS)委托中的一个,情况 arguably 比最严重的SQL注入形式更糟。随着时间的推移,这可能让你访问所有指向易受攻击域的流量,包括其子域。
随着攻击面扩大,自动化对管理这些风险至关重要。了解Detectify如何提供帮助。开始2周免费试用或与我们的专家交谈。
如果你已经是Detectify客户,不要错过“最新动态”页面以获取最新产品更新、改进和新漏洞测试。