Ch02 Stateful Tracking 达成Cross-Tracking的方法/Day10 借由 CNAME 来伪装成 first-patty subdomain 的技术

  • CNAME cloaking:借由 CNAME 来伪装成 first-patty subdomain 的技术
  • CNANE 是一种 DNS record 类型,表示「我被称为 tracker.example,但其实我就是 tracker-real.example」
  • CNANE 应用范围广泛,例如:GitHub Pages 的自订网域使用 CNAME record 达成
  • 使用者在自己的网域 blog.example 加上一笔指向 .github.io 的 CNAME record
  • 当解析 DNS 时,电脑会透过 CNAME record 得知 blog.example 其实是 .github.io 的别名
  • 无论 .github.io 指向哪里,想要找到 blog.example 都会去找 .github.io

有些追踪器利用 CNAME 技术将追踪器资源放在网站自身的网域下,以迴避 third-party 的限制例如将 tracker.example 的资源以 CNAME 记录指向 tracker.news.example,浏览器会误以为是 first-party subdomain,从而放宽限制这样使用者可能会因为是 first-party subdomain 而降低警戒,不知道背后其实是 tracker.example

  • tracker.news.example 和 news.example 虽然是不同来源(origin),但可以透过设定 Cookie 的 Domain 属性来共享 Cookie
  • 当 Domain 属性为空时,只有建立 Cookie 的来源(origin,不包括 subdomain)可以使用该 Cookie但若在 news.example 设定 Cookie 时指定 Domain=news.example,则 subdomain.news.example 也可以读取该 Cookie
  • 这种方式可以绕过浏览器的同源政策(same-origin policy),让不同来源的网站共享 Cookie

资料来源、选用书籍:<Web Tracking的资安攻击与防御策略>铁人赛专用书