sonickun.logスマートフォン用の表示で見るsonickun.log備忘録この広告は、90日以上更新していないブログに表示しています。Adventar」9日目の記事である。2016で発表されたWebトラッキングに関する論文を紹介する。本記事で用いられている図表はこの論文から引用したものである。analysis背景と前提知識Webトラッキングとは、オンライン上でのユーザーの行動を追跡・分析する営みのことを言う。皆さんも、ショッピングサイトで閲覧したことのある商品(またはそれに関連するもの)の広告が、別のサイトで表示された経験があるのではないだろうか。いった現象の裏ではWebトラキングの技術が使われている。Webトラッキングのあまり知識がない場合は、過去に#ssmjpで発表を行った時の資料を参照されたい。sonickunwww.slideshare.netWebトラッキングはターゲット広告やアクセス解析等に活用さている一方で、ユーザーのプライバシー侵害や不正広告への悪用といったリスクもはらんでいる。学術界でも近年頻繁にWebトラッキング関連の論文が発表されており、大きく分類して以下の3つの論調がある。・Webトラッキングのメカニズム解明(新たなFingerprinting手法の提案など)・Webトラッキングの防御(Anti-Fingerprinting手法の提案、ユーザーのプライバシーを保護した広告システムの提案など)・Webトラッキングの実態調査(Webクローラを用いた大規模調査など)今回紹介する論文は3つ目のMeasurement系の論文の当たる。Measurement系の研究の意義は”Transparency”を高めることにあり、それによって何らかの示唆や提言を与えることを目指している。2016著者らはこの論文を紹介するためのWebサイトを公開している。Topのカンファレンスである。Findings」だけを読んでいただけばざっくりと論文を理解できるかと思う。3行で概要Alexa100万サイトの大規模かつ詳細なWebトラッキングサイトの実態調査を行った。Syncingについて調査を行った。実ブラウザおよびヘッドレスブラウザにより自動的にクロールを行うプラットフォーム「OpenWPM」を開発した。Findingsトラッキングサイトのリンク数の分布は「ロングテール型」になることが分かった。トラッキング強度の定量化手法を用いて、トラッキング対策ツールであるGhosteryが有効に働くことを示した。Syncingが以前よりも広く利用されるようになった。調査の中で、これまで観測されていなかった新たなFingerprinting手法を観測した。OpenWPMOpenWPMは著者らが開発した、実ブラウザとヘッドレスブラウザを用いて自動的にWebクロールを行うプラットフォームである。OpenWPMの特徴は以下のとおりである。JavaScriptが実行可能であるOpenWPMは過去のmeasurement研究で用いられたWebクローラよりも高機能に作られており、より網羅的かつ詳細な分析が可能になっている。いった実態調査のためのツールは研究コミュニティで広く共有されるべきとして、著者らはOpenWPMとそのログデータを公開している。github.com実態調査OpenWPMを用いてAlexaのTop100万サイトをクロールし、Webトラッキングの実態調査を行う。request/responseやJavaScriptの実行ログを収集する。今回はトップページにのみアクセスし、エラーハンドリングのために1サイトごとに90秒のタイムアウトを設けている。Findingsにならって実態調査の結果を示す。トラッキングサイトのリンク数の分布は「ロングテール型」になるトラッキングサイトにはファーストパーティ(ユーザーが直接アクセスするサイト)とサードパーティ(ファーストパーティからリンクされている外部のサイト)に分類されるが、調査の結果、2つ以上のファーストパーティからリンクされているサードパーティが81,000サイト抽出された。下図のようにリンク数の大きい順にサードパーティを並べると、ロングテール型のグラフになる。リンク数の多かったgoogle-analytics.comは、ファーストパーティ100万サイトのうち、約70%という非常に広い範囲にリンクされていることが判明した。全体の1%(1万サイト)以上にリンクされているサードパーティはわずか123/81,000サイトしかなく、10%(10万サイト)以上にリンクさているサードパーティに至っては、Google、Facebook、Twitter、AdNexusの4組織しか存在しなかった。このことから、ユーザーは日常的にアクセスするほとんどのWebサイトで同一の組織にトラッキングさている一方で、エンカウントするサードパーティの種類はかなり限定的であることがわかった。トラッキング対策ツールであるGhosteryが有効に働くGhosteryはサードパーティのCookieをブロックできるブラウザのプラグインであり、サードパーティによるトラッキングを防ぐことができる。chrome.google.com今回の調査では、Ghosteryを用いて、すべてのサードパーティCookieのうち99.6%のCookieをブロックでき(ブロックできなかったのは237サイト)、ツールの有効性を示した。本論文では独自のロジックでサードパーティのProminence(目立ち具合、影響度)を定量化しており、Prominenceが小さいサードパーティ(マイナーなサードパーティ)であるほど、Ghosteryの検知漏れの割合が高いことが分かった。著者らによれば、Ghosteryの検知ロジックの中にはBlacklistを用いた手法が使わているらしく、マイナーなトラッキングサイトほどBlacklistから漏れやくなっているのではないかと分析している。Policyを超えてトラッキングができる広告システムである。トラッカーAがトラッカーBとユーザーのIDを共有したいとき、トラッカーBへのリクエストURLの中、あるいはリファラURLの中にIDを埋め込む。Syncingを検知できる。Syncingサードパーティであったdoubleclick.netは、118の他のサードパーティと108のユニークなCookieを共有していることが判明した。主要な(Prominenceが大きな)サードパーティの大多数は、少なくとも他の1つのサードパーティとCookieを共有していた。50のサードパーティを無作為に2つ選択したとき、両者が互いにCookieを共有している確率は約85%であることが分かった。Syncingがより広範に利用されるようになったことを示唆している。新たなFingerprintingの発見Webトラッキングで言うところの”Fingerprint”とは、ブラウザの種類、インストールさているプラグインやフォントの種類、スクリーンのサイズといった、端末に固有の情報の組み合わせのこと言い、毎年のように新しいFingerprintが発見さている。今回の調査ではこれまで見つかっていなかった(公に発表されていなかった)Fingerprintを用いたトラッキングを発見している。「ゼロデイFingerprinting」のようなものである。発見されたFingerprintingは以下の4つである。FingerprintingCanvasでフォントを指定して文字を描画した際に、画像のサイズをもとにそのフォントがインストールされているかどうかがわかり、インストール済みフォントのリストが作れる。Fingerprintとは区別される。FingerprintingWeb-RTCで取得できるNAT配下のローカルネットワークのインターフェースやアドレスの情報がFingerprintとして利用されていた。Fingerprinting音声を発信するAPIを使うと音声信号がソフトウェア/ハードウェアに依存して微妙に変化することを利用して、フーリエ変換後の周波数情報をハッシュ化しFingerprintとして利用していた。Fingerprintingデバイスのバッテリー残量情報を利用して短時間のユーザー識別を行っていた。ユーザーがネットサーフィンの途中でシークレットブラウジングに切り替えた際(Cookieが無効になったとき)、バッテリーの減り具合から、シークレットブラウジング切り替え前後のユーザーを紐づけることができる。本研究のようなWebプライバシーに関する調査は、プライバシー侵害やユーザー⇔Webサイト間の力の不均衡(たとえば、"ユーザーの意思に反して"プライバシー情報が搾取されている状況など)を監視する役割がある。調査のためのツールは研究コミュニティの中で広く共有されるべきであり、今回開発したOpenWPMはオープンソースとして公開している。今後は機械学種によって自動的にトラッキングサイトを検知・分類することを目指している。過去のWebトラッキングのMeasurement系の論文と比較しても、かなり網羅的かつ詳細な調査を行っている。トラッキングの手法にもさまざまな種類があるが(Cookieを使ったもの、Fingerprintを使ったものなど)、それぞれを検知するのに必要十分なログが取れるようにシステムを開発している。自分もWebクローラを開発した経験があるが、OpenWPMはかなりの労力と時間をかけて作られている印象を受けた。任意のブラウザプラグインを動かしながらクロール(ログ記録)したり、JavaScriptの実行ログをすべて記録したり、といったことは、やろうと思ってもなかなかできないことである。開発したツールや収集したデータが公開されており、さすがトップカンファレンスに採択されるだけの論文だなと思った。これまでのMeasurement系の研究にはない試みとして、ゼロデイFingerprintingの発見に成功している。新しいFingerprintというのはこれまで我々が想像しなかったものになるのが常であり、今回見つかったFingerprintもどれもユニークなものばかりであり、大きな驚きがあった。・いまひとつな点(コマカイ話)トラッキングされていることはわかっていてもそれが実際にどれほど脅威になりうるのかということはイメージしにくいが、本論文ではトラッキングサイトの影響度(Prominence)を独自の方法で定量化しそれを指標として用いている。定量化の数式についての妥当性については言及がなく、個人的にはあまり最適とは言えない印象を持った(Paperを見てもらえばわかるが、Alexa最上位のサイトのスコアが異常に高くなり、Google一強にしか見えなくなる)。「指標が何もないよりよいだろう」という心情で決め打ちで作ったのだろうけど、今後改良の余地があると思う。ゼロデイのFingerprintingの検知について、どうやって見つけたのか?というと、著者らによれば「JSの実行ログを見てりゃわかる」といった言いっぷりだったが、それだけではいくらProfessionalでも膨大なログから見つけるのは難しいとおもう。「このへんがFingerprintとして狙われるだろう」というヤマを張っておいて見つけたのだろうと推測する。ヒューリスティックな方法ではなく、ある程度自動的にゼロデイFingerprintingを検知できるような手法(例えば、同じサイトのJSコードの変化を継続的に監視するなど)が共有されればなおよいと思った。他にも、トラッキング対策ツールを他のものともっと比較検証するとよいのではないか、など、まだまだコマカイ話はあるが、今回はこの辺にしておこうと思う。ConoHaに参加した。(1)月別アーカイブ参加グループはてなブログをはじめよう!sonickunさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。