LinkedInによる拡張機能ブラウザ追跡の全容
Kyohei さんの動画を見ました。
この動画では、LinkedIn がユーザーのブラウザにインストールされている6,000 個以上の Chrome 拡張機能を、本人の許可なくスキャンしていた仕組みを解説されています。
通常、Web ページ側からユーザーの拡張機能リストを直接見ることはできませんが、LinkedIn は「抜け道」を利用していました。
⬛ Chrome 拡張機能には、Web ページ側からアクセスを許可する画像やHTML などのファイル設定(`manifest.json`内)がある
☑️ フェッチ(Fetch)による生存確認
LinkedIn 上の JavaScript が、特定の拡張機能固有の ID を使って
`chrome-extension://[拡張機能ID]/[ファイル名]` という URL にリクエスト(Fetch)を飛ばす。
☑️ 200 番が返れば「インストール済み」
もしリクエストに対して「200 OK」が返ってくれば、そのブラウザにその拡張機能が入っていると判定できる。
これを主要な 6,000 個の拡張機能に対して、並列処理などで高速に実行していた。
⬛ スキャンの目的:ブラウザフィンガープリンティングによる個人特定
☑️ 情報の組み合わせ
IP アドレス、CPU、メモリ、言語設定、ユーザーエージェントなどの情報(計48項目)に、「どの拡張機能を入れているか」という情報を組み合わせる。
☑️ 削除不能
クッキーのようにユーザーが削除してリセットすることができず、JavaScript が動く限り勝手に実行され、サーバーに記録が残り続ける。
☑️ LinkedIn 側の言い訳
LinkedIn は、このスキャンは「スクレイピング(データの自動収集)を防ぐためだ」と主張している。
動画内では、この種のトラッキングを防ぐための具体的な方法が紹介されているので、ぜひ見てほしいと思います。
具体的な方法の一つに Firefox Browser を使うというのがあるのですが、
私が長い間 Firefox を使っているのも、「セキュリティー面で安心感があるから」というのがあります。
便利な拡張機能がたくさんありますが、開発元を調べた上で必要最低限にして、安易にインストールしない方がいいんじゃないかなと思いました。
また、拡張機能を開発する側の対策も紹介されていたので、とても参考になりました!
私もいくつか Firefox のアドオンを作っていますが、Google Chrome 用の拡張機能を作るときには、紹介されている対策を取りたいと思います。
