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的資安攻擊與防禦策略>鐵人賽專用書