佐治亚理工学院|发现和测量容易出现域名前置的CDN
2024-6-5 23:9:22 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

原文标题:Discovering and Measuring CDNs Prone to Domain Fronting
原文作者:Karthika Subramani, Roberto Perdisci, Pierros-Christos Skafidas, Manos Antonakakis
原文链接:https://dl.acm.org/doi/pdf/10.1145/3589334.3645656
发表会议:WWW'24
笔记作者:Squidward
主编:黄诚@安全学术圈

域前置是一种掩盖网络通信中真实端点的技术,其利用内容交付网络(CDN)来隐藏真实的通信,如应用程序可能看起来是访问由CDN提供服务的域名A,但实际流量流向了由CDN服务的域名B。下图展示了域前置的基本流程,其通过设置SNI为合法的域名骗过CDN审查设施,再修改Host请求头改变流量至实际目的地,可用于绕过网络审查以及隐藏C2等用途。目前域前置已证实被某些APT组织使用来隐藏C2通信,对此某些CDN也采取CDN流量组织策略来规避域前置,但目前尚未有研究表明域前置的流行程度与阻止情况。这篇论文中作者构建了一个自动测试CDN是否具有域前置威胁的系统,并统计分析了30个CDN,结果表明有22个CDN目前仍容易受到域前置攻击,包括Fastly和Akamain等流行CDN

如图所示,系统分为三大模块,首先根据CDN的二级域名列别与DNS数据做匹配得到CDN提供服务的域名,再构建爬虫获得这些域名下的URL,最后将域名分组域前置测试,并给出了实验结果

2.1 发现CDN提供的域名

  1. 收集CDN二级域名:作者通过手工收集验证了CDN服务商的二级域名,如Akamai可能使用edgekey.net等二级域名
  2. DNS数据分析:使用了来自两个大型学术网络的DNS数据以及来自公开的ActiveDNS项目的数据进行分析
  3. 提取CNAME记录:对于之前收集的每个CDN的二级域名,在DNS数据中搜索与之匹配的CNAME记录。提取这些CNAME记录的资源名称和资源数据。例如,www.microsoft.com 可能会有一个CNAME记录www.microsoft.com-c-3.edgekey.net
  4. 发现关联域名:对于每个找到的CNAME记录,提取对应的查询名称 q,建立映射

2.2 发现域名对应URLs

  1. 确定有效的二级域名(SLDs):从先前收集的FQDNs(全限定域名)中提取有效的二级域名。这些SLDs用于下一步爬虫操作
  2. 网络爬虫:开发了一种基于Chromium的定制网络爬虫,爬虫会访问并抓取每个SLD对应的网站,记录浏览过程中所有的网络请求和响应,保留响应为200的有效URLs

2.3 测试域前置

  1. 选择测试组合:随机选取N个测试组合,每个组合由前置域名df、目标域名dt和目标URL ut 组成。即(df, dt ,ut

  2. 域前置测试,分为三步:

    • 请求目标URL:对于组合(dt, dt ,ut ),发起请求,其中SNI和Host请求头都设置目标域名,得到相应结果rt
    • 域前置测试:对于组合(df, dt ,ut ),发起请求,其中SNI设置前置域名而Host请求头设置为目标域名,得到相应结果rv
    • 请求前置域名:对于组合(df, df ,ut ),发起请求,其中SNI设置前置域名而Host请求头设置为目标域名,得到相应结果rv
  3. 测试结果:rt与rv相同并无错误,rf为空,则域前置成功

3.1 系统检测数据

在进行域前置之前,作者利用DNS数据通过其提出的系统系统获得了CDN所提供服务的域名数据与URL数据,如下:

  • DNS数据:作者使用了2023年3月20日至2023年3月30日期间从两个大型学术网络和通过ActiveDNS项目收集的10天的DNS流量
  • 域名数据:共使用了38个CDN服务器,发现了38567个CDN二级域名,并通过域名检测方法识别出来124,585个被服务的域名
  • URL数据:通过URL爬虫发现了52998个URLs,这些URLs直接关联到了1310个域名,并且是由30个CDN所提供,剩下的8个没有找到完整的URL

3.2 域名分析结果

论文对上述获得的域名数据做了统计,包括流行度统计与恶意域名统计:

  • 域名排名统计:使用Tranco流行度列表为每个域名计算两个不同的排名,一个基于其完全限定域名 (FQDN),另一个基于其有效二级域名 (SLD) 后缀
  • 恶意域名:使用VirusTotal检查每个域名,判断其是否被安全厂商标记为恶意域名

结果表明很多热门域名也会使用较为冷门的CDN来提供服务,而这些CDN更有可能没有域前置防御措施。而恶意域名的统计结果表明很多CDN为做到较好的过滤,仍在为被标记为恶意域名的域名提供服务

3.3 域名前置分析

结果如图所示,为了防止给CDN带来过大的负载,作者为每个 CDN 随机选择最多 25 个域名,每个域名最多选择 10 个 URL

结果表明,仍有22和CDN存在域前置问题,其中至少50%的域可被用于实现域前置,而部分CDN虽测试结果为0,但是实验的域名数量少,不足以说明问题

作者成功开发了一个测试系统,可以自动测试CDN是否存在域前置问题,与前文不同的是,作者提出的方法不需要手动注册域名,节约了人力与财力,并且作者通过实验发现很多热门CDN存在域前置问题,为解决域前置提供了数据支撑,具体如下:

  • 设计了一个系统,该系统利用 DNS 分析来查找与通过 CDN 提供的 Web 内容相关的域名,并可以自动测试 CDN 是否容易出现域名前置问题
  • 系统可以自动测试域前置漏洞,无需注册新域名或通过CDN订阅新的We 服务,从而消除了手动工作
  • 用该系统,作者测试了 30 个不同的 CDN,发现其中 22 个目前仍然容易受到域名前置攻击,包括 Fastly 和 Akamai 等流行的 CDN

亮点:该篇论文和以往关于域前置的论文不同,其侧重统计测试结果,而不是针对域前置探讨技术问题,其实验结果可以作为后来论文的数据支撑,通过实际测试和数据验证,确认了22个CDN仍然容易受到域前置攻击,这为CDN安全研究提供了重要的实证数据。并且论文提供了部分CDN防范域前置的方法,为网络安全从业者提供思路与研究点

不足:个人认为论文还有以下不足:

  • 多CDN问题:很多域名可能在不同时间使用多个CDN,干扰了实验
  • DNS的数据问题:DNS数据可能不是实时的并且数据量可能不够,导致有些CDN识别的域名很少
  • 防御:域前置攻击防御方法可以进一步研究
安全学术圈招募队友-ing 
有兴趣加入学术圈的请联系 secdr#qq.com

文章来源: https://mp.weixin.qq.com/s?__biz=MzU5MTM5MTQ2MA==&mid=2247490845&idx=1&sn=138c1b66d5703d14c20c201da0b4af5e&chksm=fe2ee296c9596b8022f8fcbb81b696218c64ee980f87e22d9548171f61c1d7591c95349216d7&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh