原文链接:暴露会话Cookie的CNAME伪装机制
简介该文为发表于AsiaCCS 2021的Oversharing Is Not Caring: How CNAME Cloaking Can ExposeYour Session Cookies。当前,互联网企业经常通过跟踪、分析其用户的行为数据以产生额外利润(例如广告)或改进其网站。因此,也就簇生了一些专业的第三方公司为其它公司提供跟踪用户并投放广告的业务(T/A服务)。为了能在不同网站定位同一用户,这些T/A服务公司会使用第三方Cookies。但是,由于最近浏览器为了保护用户隐私,默认屏蔽第三方Cookies的原因,T/A服务公司要求其客户配置DNS设置,使用CNAME伪装机制将其基础设置包含在第一方网站的子域中,使得绕过浏览器的隐私保护机制。在本篇论文中,作者针对由于CNAME伪装机制导致会话Cookies泄露给T/A服务公司的情况进行研究。 方法面对浏览器隐私保护机制,T/A服务公司CNAME伪装机制以进行对抗。第一方网站通过DNS配置中的CNAME记录使用第一方子域名作为第三方跟踪域的别名,以绕过跟踪拦截器。DNS中的CNAME记录允许将一个域或子域映射到另一个域,例如网站所有者可以将其子域之一omns.bank.com配置为b.motrdc.net的别名,在使用时,先将omns.bank.com解析为b.motrdc.net然后再解析为IP地址。换句话说,CNAME伪装机制使得追踪代码看起来像是第一方,但实际上它不是,因为通过CNAME解析的资源和第一方的域不同。
为了研究这一安全问题,作者设计了一种检测系统(TAFinder)去自动识别CNAME伪装以及Cookies泄露。TAFinder接受一个网站列表作为输入,然后由任务分发器分发给工作节点。工作节点使用爬虫记录网络数据包和明文 HTTP 请求/响应,并最终将捕获的数据传输到 DNS 处理单元。在DNS处理单元中找出CNAME类型条目中键与值处于不同DNS域的域名,既使用了CNAME伪装技术的域名。在最终阶段,TAFinder可以直接从使用了CNAME伪装的域名中识别出已知的T/A服务域名(通过社区黑名单),并使用了基于机器学习分类器以识别那些未知的T/A服务域名。该分类器使用随机森林算法,共选取9种特征:涉及HTTP请求数量及比例、cookie、Content-Type等。最后,TAFinder观察第一方网站是否存在泄露会话cookie的情况。