一网打尽! AdGuard 如何扫描整个网络寻找隐藏的跟踪器
由于内容拦截已很普遍,因此大部分跟踪工具变得有些鸡肋。不过在市场走向海量数据收集的情况下,改善并更勤使用跟踪工具的趋势已然不可逆转。讲到收集用户数据的方式,有些明目张胆,有些则“别出心裁”,总之“各显神通”。
CNAME 就是其中一种精细方式。CNAME 记录也被称为规范名字。这是一种 DNS 记录方式。它将一个域名(别名)映射到另一个域名(规范名),而不是将域名直接映射到 IP 地址。这就是数百万网站所使用的,用来为不同服务(包括,邮件、搜索等服务)创建特殊子域名的基本功能。为了无缝转接,子域名与主域名在一样程度上被信任。
所谓 CNAME 隐形追踪滥用上述的基本原理除了令人忧心的数据收集问题以外,还造成很多其他问题。
使用 CNAME 记录时,外部跟踪服务器能伪装成受浏览器信任的网站子域名,而使浏览器将追踪 Cookie 接受作为“第一方” Cookie。更糟糕的是,反之亦然。原来要向主域发送的 Cookie,可分享给伪装的跟踪器。第三方可接受各种数据,包括用户名、联系方式、甚至用于识别会话并登录网站的身份验证 Cookie。
根据最近的研究论文,作者为 Yana Dimova、Gunes Acar、Wouter Joosen、Tom Van Goethem 和 Lukasz Olejnik,在 95% 应用这种跟踪方式的网站上,可检测 Cookie 泄露。这篇论文强调 CNAME 隐形追踪欺骗基本网络安全的工具可导致隐私和其他网络安全受侵害。
浏览器无法保护用户免受 CNAME 隐形追踪。不过内容拦截器却是可以的。 AdGuard,AdGuard DNS 和 Mozilla Firefox 的 uBO 已能拦截这类“隐形追踪器” 。然而,由于 Chrome、Chromium 和 Safari 的限制,普通扩展无法动态解析主机名并移除跟踪器。扩展的过滤器列表仍受限制。此外,很难想象会有人去查看整个网络以检测基于 CNAME 的隐形追踪器,并编写“完美”的过滤器列表。
然而, AdGuard 就进行了这种网络扫描。得益于我们 DNS 服务器以及一系列独立和基于浏览器内容拦截的工具,我们能够高效搜索“猎人”(跟踪追踪器),记录并拦截它们。现在我们编写完整包含所知的 CNAME 隐形追踪器的列表。此列表要作为 AdGuard 防跟踪保护过滤器。目前已经包含最完整的自动更新的 6000+ 项目常用隐形追踪器的仓库。此列表将会定期被更新以紧追新追踪技术,并随时将它们添加至列表内。
在 GitHub 上,我们已发布此列表,因此其它内容拦截器也可用。我们很高兴看到这项努力已获得回报,即 EasyPrivacy 已添加了我们的列表。
这是否意味着 CNAME 隐形追踪问题被彻底解决了呢?很可惜,仍不是。我们计划随时更新列表,不过隐形追踪器的数量也会不断增加。如此一来,拦截规则的数量也要持续增加。问题在于,在企图全面控制内容拦截上,Safari 和 Chrome 限制拦截规则的数量为 50,000 和 150,000 个(正如在 Manifest V3 中安排的)。因此,我们可以看到 Safari 的 50,000 个规则仅够勉强保护自己免受广告、追踪器和其它网络威胁的侵害。而终将有一天,这个规则数量会显得十分捉襟见肘,以至于无法保护用户防止在线威胁。更重要的是,这一天远比你想象的要近!