ブログに戻る

フィンガープリントブラウザ検出の実験手法:バージョン申告から挙動検証まで

IMC 2024で発表された研究は、検出を再現可能なオンライン実験として構築した。ブラウザの自己申告をそのまま信じるのではなく、内部オブジェクトのプロパティ数を数え、申告されたバージョンと照合する。結論以上に、その手法が参考になる。

ブラウザフィンガープリントを検出できるかどうかについては多くの主張があり、その多くは結論だけで終わっています。どちらが勝つかを議論するより、研究者がこの問題をどう再現可能な実験に落とし込み、どの指標で判断したのかを見るほうが有益です。

ACM Internet Measurement Conference(IMC)2024で発表された Browser Polygraph という研究は、Arizona State University、Boston University、Amazon の研究者による共同研究で、DOI は 10.1145/3646547.3688455 です。実験室でシミュレーションデータを使うのではなく、大手金融企業の実際の本番環境に4.5か月間導入し、205,000件の実ユーザーセッションを観測しました。一般的な環境偽装ソリューション10種類をテストし、通常ユーザーのトラフィックを対照群としました。

実験はどのように構成されたか

業務に影響を与えず、全トラフィックへ検出を適用できた背景には3つの設計があります。

特徴量は低コストで取得できる必要があります。検出は固定された一群のプロパティだけを読み取り、1回あたりの負荷はミリ秒およびKB単位です。そのためサンプリングをせず全トラフィックに実行でき、ユーザー側でもほとんど影響を感じません。

特徴量は安定している必要があります。選ばれたのはユーザーが変更できるパラメータではなく、ブラウザ自体が決める内部構造です。ブラウザの各バージョンは異なる JavaScript エンジンを持ち、API の数や各オブジェクトに付くプロパティ数にはバージョンごとに小さな差があります。研究では Chrome 110 から Chrome 114 の範囲を比較対象とし、検出システムが28個の重要オブジェクトのプロパティ数を数え、ブラウザが申告するバージョン番号と照合しました。一致しなければ、申告と実際の挙動が同じ技術基盤から出ていないことを意味します。

ラベルは信頼できる必要があります。各テスト環境を同じ本番トラフィックへ順番に接続し、同じルールで判定しました。対照群は実ユーザーの通常挙動です。したがって、結果は「本物らしく見えるか」という主観ではなく、同じルールの下でそのトラフィックを区別できるかを示します。

実際に再現できているかを判断する指標

研究で用いられた評価方法は4つに分けられます。

  • 一貫性:ブラウザが申告するバージョンと内部オブジェクト構造が一致しているか。最も重要で、最も偽装しにくい指標です。文字列を1つ変えても、エンジン内のオブジェクト数やプロパティ数まで連動して変わるわけではないためです。
  • 検出率:研究では4種類について詳細な実験を行い、検出率は67%から84%でした。
  • 実デバイスからの乖離度:同じ判定ルールでは通常ブラウザのリスクスコアは0で、テスト対象の平均は8.85から11.66でした。このスコアは主観的な「似ているか」ではなく、実際の分布からどれだけ離れているかを表します。
  • 識別可能性:テスト対象のトラフィックを通常トラフィックから分離できるか。分離できないカテゴリは、この手法では実ブラウザとの間に挙動上の隙間が見えないことを意味します。

4つの指標のうち、最初の一貫性が原因で、後の3つはその結果です。

4種類の結果はどこで差が出るのか

研究は、基盤となる実装方式に基づいてテスト対象を4カテゴリに分けました。

第1カテゴリは、低レベルの特徴が既知のどの実ブラウザバージョンとも一致せず、対応するエンジンが存在しないものです。単純なスキャンだけで不一致が表面化します。

第2カテゴリは、実際のフィンガープリント特徴を持っているものの、IDを切り替えると表面的な申告だけが変わり、内部エンジンは変わらないものです。研究ではこれが最も一般的でした。たとえるなら、名刺には新しいバージョンと書かれているのに、話し方は古いままという状態です。問題は個々のパラメータ調整の良し悪しではなく、申告と挙動の間に隙間があることで、検出の多くはそこから生じます。

第3カテゴリでは、IDの切り替えと同時に内部エンジンも切り替わります。申告したバージョンに対応するエンジンが実際に動くため一貫性が成立し、この検出手法ではトラフィックを区別できませんでした。論文は、このカテゴリを識別するにはより複雑な検出手法が必要だとも述べています。

第4カテゴリはブラウザ自体を変更せず、仮想マシン上で実ブラウザを動かしてから目的の設定を読み込む方式です。ブラウザそのものが本物なので検出側では区別できませんが、運用コストが高く、大規模化が難しいという問題があります。

4カテゴリの違いはパラメータの数ではなく、申告と挙動が同じ技術基盤から成り立っているかにあります。

環境ソリューションを選ぶ際の実践的な示唆

検出の重点は申告値を読むことから挙動を検証することへ移っており、変更可能な表面的パラメータの優位性は小さくなっています。具体的に評価するなら、次の点が重要です。

  • パラメータ一覧ではなく、内部層を見る。申告バージョンを切り替えたときに内部層も同期して変わるか。フィンガープリントは実在する組み合わせとして自動生成されるのか、それとも値を手作業で組み合わせるのか。
  • 環境同士を比較する。複数の環境が非常に似た低レベル特徴を返すなら、分離が十分ではありません。
  • 差別化より先に一貫性を確保する。内部で矛盾する特徴を多く調整するほど、検出される面が広がります。
  • 一般的な検出ページを通過しても、プラットフォーム側に受け入れられるとは限りません。最終的には少量の実トラフィックで自ら検証する必要があります。

環境分離で中心になる課題は、各環境を独立した一式として成立させ、内部矛盾をなくすことです。PurpleMark が取り組んでいるのもこの点です。検出とアンチディテクトはいずれも適用されるコンプライアンスの範囲内で利用すべきであり、この研究の本当の価値は製品の良し悪しを順位付けすることではなく、評価を根拠に基づいて行えるようにする点にあります。