> > USENIX Security '19参加報告

USENIX Security '19参加報告

2019.08.16
プロフェッショナルサービス事業部
寺田 健
title1

先日のBlack hatの参加報告に書いたように、今年はDefconの代わりに別のカンファレンスに参加しました。8/12~16にカルフォルニアのサンタクララで行われたUSENIXカンファレンス(28th USENIX Security Symposium)がそれです。USENIXは大学の研究者などが成果を発表する、アカデミック寄りのカンファレンスです。

筆者の事情により実質的に参加できたものは少ないのですが、Web Attacksのトラックの簡単なメモを公開します。


■Leaky Images: Targeted Privacy Attacks in the Web

https://www.usenix.org/conference/usenixsecurity19/presentation/staicu

Cristian-Alexandru Staicu and Michael Pradel, TU Darmstadt

画像共有機能を悪用する個人特定(Deanonymization)を扱ったセッション。下のような手順で個人を特定します。

①画像共有機能を持つサイトにおいて、攻撃者Aが被害者Bに画像を公開する。
②攻撃者Aが自身のサイト上のページにimgタグ(<img src=共有した画像のURL>)を入れておく。
③被害者Bがそのページにアクセスしたときだけonloadが発生するため、アクセス者がBであることが分かる。

この他に、Scriptlessの攻撃の例や、実際の画像共有機能を持つ大手サイトで攻撃が可能か、対策などを示していました。


非常に分かりやすい攻撃ですね。画像共有機能を持つサイトがCookieでアクセス制御を行っている場合は(大抵)脆弱になります。画像はクロスオリジンでonloadイベントが取れる(ついでに言うとサイズも取れる)ため攻撃がしやすいです。

画像以外だとどうか、あるいは何らかの共有機能を使わない攻撃がありうるかと言うと、状況によってはCSP(Content Security Policy)を悪用する攻撃や、タイミング攻撃などの余地はあるかもしれません。

診断員の視点で言うと、この手の「1bitだけ情報が漏洩する」系の問題はなかなか扱いが難しいです。上の例のように「Bさんなのか/そうでないか」が漏洩する場合もありえますし、単にそのサイトにログインしているかが分かるケースもあります。いずれも、仮に指摘するとしてもリスクレベルが低いバグの扱いになると思いますが、診断の観点としては心のどこかに持っておく必要があるだろうと思いました。


■All Your Clicks Belong to Me: Investigating Click Interception on the Web

https://www.usenix.org/conference/usenixsecurity19/presentation/zhang

Mingxue Zhang and Wei Meng, Chinese University of Hong Kong; Sangho Lee, Microsoft Research; Byoungyoung Lee, Seoul National University and Purdue University; Xinyu Xing, Pennsylvania State University

多くのWebサイトにおいて、ページ内の正規のリンクURLを、サードパーティのJSが広告などのURLに差し替えていることを実証的に示した研究。偽のウィルス警告や偽のFlash playerのインストールを促す画面のURLに差し替えられた例も。マネタイズのために、サードパーティのJSとcollude(共謀)しているWebサイトが存在するとの見方がされています。


■What Are You Searching For? A Remote Keylogging Attack on Search Engine Autocomplete

https://www.usenix.org/conference/usenixsecurity19/presentation/monaco

John V. Monaco, Naval Postgraduate School

通信経路上の攻撃者が、検索エンジンでユーザが検索したキーワードをトラフィック量から特定する研究。

Googleなどの検索エンジンでは、キーワードを1文字ずつタイプしていくたびに、JSが入力中の文字列をAjaxでサーバに送信して、サーバからキーワードの補完候補を得ています(これをAutocompleteと呼んでいる)。候補を得るためのAjax通信のリクエストメッセージのサイズや、時間間隔、辞書との突合せから検索キーワードを推測する手法で、英語の単語群の入力を前提とすると十数パーセントの精度で特定できたとのこと。


研究は英語を前提にしていましたが、言語によってやりやすさはだいぶ違うだろうな(日本語だとやりにくいのではないか)と思いました。

HTTP2ヘッダのハフマン符号化を文字の推測にうまく使用しており、CRIME/BREACHとは少し違う形で圧縮を攻撃に使っている点が面白いです。キータイプの時間間隔(Ajaxリクエストの時間間隔)とキーボード上のキーの位置の関連にも言及があり、そういった要素を掘り下げるのも面白いなと感じました。とはいえ、現状出ているのは十数パーセントの精度であり、これを上げていくのはなかなかの難問かもしれません。

リクエストサイズだけではなくレスポンス(Autocompleteの候補を含んでいる)のサイズも材料として使えるかなと思ったのですが、使っていないとのことでした。レスポンスに含まれる候補はユーザの物理的な位置情報や検索履歴に依存するためだそうです。


■その他

Web Attacksの最後の2本は筆者の都合できちんと見れていないため、タイトルのみ書きます。

Iframes/Popups Are Dangerous in Mobile WebView: Studying and Mitigating Differential Context Vulnerabilities
https://www.usenix.org/conference/usenixsecurity19/presentation/yang-guangliang

Small World with High Risks: A Study of Security Threats in the npm Ecosystem
https://www.usenix.org/conference/usenixsecurity19/presentation/zimmerman


■まとめ

USENIXは初参加でした。体調不良(風邪)と業務都合もあって現地にいたのは実質初日だけですが、Defconとは違った雰囲気が楽しめてよかったです。ポスターセッションなどは何となく学生時代を思い出させてくれました。

発表の内容は、プライバシ(Fingerprinting)やユーザの行動モデルの分析など、若干Blackhatなどとは切り口が違うものが多いです。参加者はBlackhatやDefconと比べると格段に少なく、アットホームな雰囲気です。発表者や質問者は大学や大企業(スポンサーになっているFacebookやGoogleなどを含む)の研究者が多く、普段から近い分野の研究をしている研究者が多くいるためだと思いますが(組織をまたがった共同研究なども多い)、活発な質疑応答がされていたのが印象的でした。