原文标题: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,最后将域名分组域前置测试,并给出了实验结果
**收集CDN二级域名:**作者通过手工收集验证了CDN服务商的二级域名,如Akamai可能使用edgekey.net等二级域名
**DNS数据分析:**使用了来自两个大型学术网络的DNS数据以及来自公开的ActiveDNS项目的数据进行分析
**提取CNAME记录:**对于之前收集的每个CDN的二级域名,在DNS数据中搜索与之匹配的CNAME记录。提取这些CNAME记录的资源名称和资源数据。例如,www.microsoft.com 可能会有一个CNAME记录www.microsoft.com-c-3.edgekey.net
发现关联域名:对于每个找到的CNAME记录,提取对应的查询名称 q,建立映射
**确定有效的二级域名(SLDs):**从先前收集的FQDNs(全限定域名)中提取有效的二级域名。这些SLDs用于下一步爬虫操作
**网络爬虫:**开发了一种基于Chromium的定制网络爬虫,爬虫会访问并抓取每个SLD对应的网站,记录浏览过程中所有的网络请求和响应,保留响应为200的有效URLs
选择测试组合:随机选取N个测试组合,每个组合由前置域名df、目标域名dt和目标URL ut 组成。即(df, dt ,ut )
域前置测试,分为三步:
请求目标URL:对于组合(dt, dt ,ut ),发起请求,其中SNI和Host请求头都设置目标域名,得到相应结果rt
域前置测试:对于组合(df, dt ,ut ),发起请求,其中SNI设置前置域名而Host请求头设置为目标域名,得到相应结果rv
请求前置域名:对于组合(df, df ,ut ),发起请求,其中SNI设置前置域名而Host请求头设置为目标域名,得到相应结果rv
在进行域前置之前,作者利用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
论文对上述获得的域名数据做了统计,包括流行度统计与恶意域名统计:
**域名排名统计:**使用Tranco流行度列表为每个域名计算两个不同的排名,一个基于其完全限定域名 (FQDN),另一个基于其有效二级域名 (SLD) 后缀
**恶意域名:**使用VirusTotal检查每个域名,判断其是否被安全厂商标记为恶意域名
结果表明很多热门域名也会使用较为冷门的CDN来提供服务,而这些CDN更有可能没有域前置防御措施。而恶意域名的统计结果表明很多CDN为做到较好的过滤,仍在为被标记为恶意域名的域名提供服务
结果如图所示,为了防止给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