• 検索結果がありません。

個人情報及び個人識別子を含むファイルと通信を検出するための双子の環境

N/A
N/A
Protected

Academic year: 2021

シェア "個人情報及び個人識別子を含むファイルと通信を検出するための双子の環境"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)コンピュータシステム・シンポジウム Computer System Symposium. ComSys2018 2018/11/30. 個人情報及び個人識別子を含むファイルと通信を 検出するための双子の環境 張 世申1. 新城 靖1. 三村 賢次郎1. 概要:インターネットユーザは普段ネットワークサービスを利用する時に,意図せず個人情報や個人を識 別できる情報をサービス提供者に送信することがある.ユーザのプライバシを保護するために,ファイル やネットワーク通信からそのような情報を検出し除去したいという要求がある.しかし,現在のアプリ ケーションは複雑であり,それは容易なことではない.本研究では,双子の環境という仮想実行環境を実 装し,それを使ってファイルや通信から個人情報および個人を識別できる情報を検出することを提案する. 双子の環境とは,プログラムファイルやデータファイル等の内容がほとんど同じである,または,類似のよ うな 2 つの仮想実行環境である.双子の環境で同一のプログラムをそれぞれ実行し,同一の入力を与える. そして,2 つのプログラムの動作上の相違点を検出する.本研究では,双子の環境で双子のブラウザを実 行する.双子のブラウザとは,ホストで動作する親ブラウザの操作を,双子の環境で動作している子ブラ ウザで再現するものである.本研究では,双子の環境を Docker コンテナを用いて実装した.また,双子 のブラウザを Firefox,および,Google Chrome を用いて実装した.実装した双子の環境,および,双子 のブラウザを用いて,ファイルやネットワーク通信から個人を識別できる情報を検出することができた. キーワード:ユーザトラッキング, コンテナ,Web ブラウザ. 1. はじめに PC で動作するアプリケーションは,Web ブラウザのよ うに明示的に通信を行うものだけでなく,オフィスツー ルのように,ユーザが意図しない通信を行うものがある.. Web ブラウザであっても,ユーザトラッキングのための暗 黙的に通信を行うことがある.このような意図しない通信 により住所・氏名等の個人情報,および cookie のようにし ばしば個人と結び付けられる情報 (以下,個人識別子) が送 信されることがある.. 図 1. 双子の環境. たとえば,Web ブラウザは,個人情報,および,個人. 本研究では,双子の環境を実装して,個人情報および個. 識別子として訪問履歴や,フォームの内容,cookie などを. 人識別子が含まれているファイルや通信を検出する.双子. ファイルに保存する.ユーザのプライバシを保護するため. の環境とは,プログラムファイルやデータファイル等の内. に,ファイルやネットワーク通信からそのような個人情報. 容がほとんど同じであるような 2 つの仮想実行環境である. や個人識別子を検出し除去したいという要求がある.しか. (図 1).人間における双子の研究では,異なる双子が異な. し,現在の Web ブラウザやオフィスツールは,非常に複雑. る環境で育てられた際にどのような違いが生まれるかを調. であり,これらの識別子がどのファイルにどのような形式. 査する場合が多い.本研究で提案する双子の環境では,類. で保存されているかを調べることは容易ではない.なお,. 似の 2 つの環境で同一のプログラムをそれぞれ実行し,同. 以下では,個人情報と記載した時にも,個人情報と個人識. 一,または,類似の入力を与える.そして,2 つのプログ. 別子の両方を含むものとする.. ラムの動作上の相違点を検出する.. 1. 筑波大学 University of Tsukuba. ⓒ 2018 Information Processing Society of Japan. 本研究では,双子の環境で双子のブラウザを実行する. 双子のブラウザとは,ホストで動作する親ブラウザの操作 29.

(2) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2018 2018/11/30. を,双子の環境で動作している子ブラウザで再現するもの. もれてしまうという問題がある.また,diff コマンドは,. である.. データベース形式等のバイナリファイルを扱うことができ. 本研究では,双子の環境を用いて内部で作動するアプリ. ない.. ケーションが作成する全てのファイルの差分および発信す. そこで本研究ではプログラムが生成したファイルをテキ. るネットワーク通信の内容の差分を調査する.その差分に. スト化し,さらに,前処理を行うことで,diff コマンドの. 個人識別子が含まれる可能性が高い.さらにその差分を削. 入力として適した形に変換する (図 2).まず File classifier. 除,または修正することで不用な個人識別子の発信を阻止. で,ファイルを形式で分類する.次には,形式ごとにテキ. することを試みる.. スト化する.主な形式について,テキスト化の方法を以下. 2. コンテナによる双子の環境の実装 本研究では,2 つの仮想実行環境を用意し,それぞれプ ログラムを実行し,仮想実行環境内のファイルを調査する.. に示す.. • SQLite データベース.まず,sqlite3 コマンドの dump サブコマンドでテキストに変換する.次には,自動増 加の主キー列を削除する.. 一般的な仮想マシンではホストはゲスト OS のファイルシ. • JSON ファイル.Python の json.tool ツールを利用し. ステムを直接的アクセスできないという問題がある.そこ. て,JSON ファイルを標準化する.標準化とは,JSON. で本研究では,コンテナという OS 層の仮想マシンを使う.. ファイルに含まれる,Tab や Enter,Space を標準的. 本研究ではコンテナを実装する仕組みとして Docker を 使う. Docker では, Overlay File System というファイ ルシステムが利用可能である.このファイルシステムでは ゲスト OS のファイルをホスト OS からアクセスできるた め,仮想実行環境内のファイルの差分を取得することが容 易である. ゲスト OS が生成したファイルは Overlay File System の. なものに統一することである.. • JavaScript ファイル.Node.js のツール Javascript formatter により,標準化する. • XML ファイル.xml-normalize を利用して,標準化 する.. • BerkeleyDB ファイル.db dump コマンドでテキスト に変換する.. Upper Layer に保存される.したがって,Upper directory. • LevelDB ファイル.LevelDB の C API により読み込. を調査することで,書き込みがあったファイルを得ること. み,テキストに出力するプログラムを本研究で作成. ができる.個人情報は,それらのファイルのどこかに保存. した.. されている.. 2.2 タイムスタンプの扱い 2.1 ファイルの差分検出 図 2 に,Docker コンテナを用いたファイルの差分検出. ネットワーク通信を行うプログラムは,様々なタイムス タンプをファイルに保存する.単純にファイルの差分を得. の仕組みを示す.まず,同じイメージを利用する 2 つのコ. ると,タイムスタンプの違いによるものが大量に生成され,. ンテナを起動し,対象となるプログラム (主に双子のブラ. 重要な差分が埋もれてしまう.. ウザ) を実行する. ホストからの入力を複製して,2 つのコ. 本研究では,タイムスタンプを次の 2 つに分類して扱う.. ンテナに与える.それからコンテナが生成したファイルを. ・リモート: リモートの通信相手が指定したもの.例え. ホスト OS で取得する.そして,その差分を調査し,個人 情報を検出する.. Web ブラウザやその他のプログラムが個人情報を保存す. ば,HTTP の “Last-Modified:”ヘッダに由来するもの. ・ローカル: ローカルの OS からシステム・コールで取 得したものに由来するもの.. るためによく利用される形式としてはテキスト形式,デー. リモート・タイムスタンプは,外部に発信されることが. タベース形式,および,マーシャリング形式の 3 つがあ. 想定されている.例えば,HTTP の応答メッセージに含ま. る.マーシャリング形式としてはよく JSON と XML がよ. れた “Last-Modified:”ヘッダの値は,同じコンテンツを再. く使われる.本研究では Web ブラウザ Firefox と Google. 取得する時に,要求メッセージの “If-Modified-Since:”ヘッ. Chrome のファイル保存形式を調査した.その結果,利用. ダに含まれて発信される.この値は,個人識別子として. されている形式には単純なテキスト,JavaScript,JSON,. ユーザトラッキングに使われることがあることが知られて. XML,SQLite,BerkeleyDB,LevelDB の 7 種類あること. いる.一方,ローカル・タイムスタンプは,外部に発信さ. がわかった.. れなければ,個人識別子にはなり得ない.したがって,双. コンテナが出力するファイルがテキストファイルであれ ば,そのまま diff コマンドで差分を取ることができる.し. 子の環境の実装では,ローカル・タイムスタンプの違いを 排除したい.. かしながら,JSON や XML では,そのまま diff コマンド. 本研究では,双子の環境で時刻関連のシステム・コー. に与えても大量の出力がなされ,目的とする個人情報が埋. ル gettimeofday() と clock gettime() をオーバーライドす. ⓒ 2018 Information Processing Society of Japan. 30.

(3) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2018 2018/11/30. 図 2 Docker Overlay Filesystem によるファイル差分検出. ることで,ローカル・タイムスタンプの違いを排除する.. にスレッド識別子を含まないようにする.. そのため,本研究で作成した動的リンクライブラリを. LD PRELOAD で置き換える.置き換えたシステム・コー ルは,環境変数で指定された固定の時刻を返す.. 2.4 ネットワーク通信の差分 双子の環境では,保存されるファイルの差分に加えて,. このような処理を行ったとしても,アプリケーションの. そこから発せられるネットワーク通信の差分も調べる.そ. 内部で独自にシステム・コールで得た時刻を加工して利用. して,それに含まれる個人情報や個人識別子を検出し,さ. していることがある.例えば,Firefox では,システム・. らに,ファイルに含まれる情報との突き合わせを行う.. コール clock gettime() で得られたナノ秒単位の時刻に,1. 双子の環境では,主に双子のブラウザを動作させる.そ. から4まで加えた値を利用している.この問題を解決する. れ以外にも,オフィスツール等のアプリケーションもネッ. ために,本研究では,テキスト化した後,ローカル・タイ. トワーク通信を行う.これらのアプリケーションがよく利. ムスタンプとそれを加工したものと思われる数字を定数で. 用するプロトコルには次のようなものがある.. 置き換える.. • HTTP,及び,HTTPS. • WebSocket. 2.3 ランダム性の排除 プログラムはマルチスレッドやネットワーク通信により 非決定的な動作を行う.その結果,ファイルの内容に差が. • WebRTC(Web Real-Time Communication) 本研究では,まず,双子の環境の中で HTTP,および,. HTTPS のクライアントを動作させ,それらが行うネット. 生まれ,本来検出したい個人情報を覆い隠してしまう.そ. ワーク通信の差分を調査する.HTTP,および,HTTPS. こで,本研究では,そのようなランダムな行動を排除する. は,オフィスツール等のアプリケーションが更新情報等を. ことを試みる.. 得るためにもよく使われる.. まず,乱数によるプログラムのランダム行動を抑止する. HTTPS は,TLS(Transport Layer Security) により通信. ために,乱数デバイス/dev/urandom を置き換える.本研. 路が暗号化されており,単純にパケットを保存しても内. 究では擬似乱数生成器デバイスドライバを作り,双子のコ. 容を調査することはできない.そこで本研究は,MITM-. ンテナのインスタンスに同じシードを与える.. Proxy(Man-In-The-Middle-Proxy) を使って TLS の復号を. マルチスレッドやマルチプロセスのアプリケーション. 行い,通信内容を保存する.MITM-Proxy は,HTTPS だ. のスケジュールも実行結果に影響を与える.たとえば,. けでなく,HTTP も扱える.よって本研究では,HTTP,. Chrome ブラウザの Task モデルは,ユーザ・インタフェー. および,HTTPS の両方を統一的に MITM-Proxy で補足. スと入出力のスレッド以外にワーカスレッドが多数存在す. する.. る.一つの作業がどのワーカスレッドにより実行されるか. MITM-Proxy は,Python API を提供する.本研究では,. 予想できない.その結果,Chrome ブラウザは,スレッド. これを利用して,通信内容を補足する.図 3 に,MITM-. 識別子のような予測できない結果を出力する.また,PC. Proxy を用いた通信内容の差分を取得する方法を示す.双. の負荷により動的にワーカスレッドの数を調整することも. 子の環境では,双子のブラウザ,または,その他の通信を行. ある [3].そこで本研究では,テキスト化してダンプする時. うアプリケーションを実行する.これらのアプリケーショ. ⓒ 2018 Information Processing Society of Japan. 31.

(4) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2018 2018/11/30. 図 3. MITM-proxy を用いた HTTP のメッセージの差分検出. ンでは,次のような設定を行う.. • インターネットへの通信を行う時には,プロキシとし て,MITM-Proxy を経由する.. • TLS 証明書のルート認証局として,MITM-Proxy の 内部の認証局を追加する.. 各ディレクトリではファイル名として次の情報を用いる.. • HTTP の要求メッセージの request line.ただし,query string は削除する. • 訪問の回数.そのサーバに要求を送った回数. 応答メッセージのボディを保存する時,次の HTTP の. そして,それ以外の通信を一切禁止する.その結果,双子. オプションを解釈する.. の環境で動作するアプリケーションの通信は,MITM-Proxy. • Content-Encoding:. に導かれる.. MITM-Proxy では,双子の環境で動作しているアプリ ケーションから接続要求が来ると,それを受け付け,そし. gzip.圧縮されたデータを展. 開する.. • Transfer-Encoding:. chunked.分割されたデータ. を結合する.. て本来のサーバに接続する.そして,HTTP の要求メッ. こうして保存したファイルは,2.1 節で述べたファイル. セージ,および,応答メッセージを中継する.HTTPS で. の差分を取得するモジュールにより解析される.この時,. あれば,一度 TLS の暗号を復号し,メッセージを取得す. 応答メッセージの Content-Type:から得られた型を利用す. る.そして本来のサーバへ TLS で暗号化された通信路を. る.たとえば,HTML や JavaScript,CSS(Cascading Style. 開設して,メッセージを中継する.. Sheet) は,その型のテキストファイルとして扱う.イメー. MITM-Proxy は,次の 2 つのディレクトリにそれぞれ ファイルを作成する.. • 要求メッセージ,および,応答メッセージのヘッダ.. ジや 2.1 節で述べた形式以外の形式のファイルは,バイナ リファイルとして扱う.. HTTP,および,HTTPS に加えて,MITM-Proxy は,. • 応答メッセージのボディ.. WebSocket の通信を扱うこともできる.そこで本研究で. 前者のディレクトリのファイルの内容は,次の項目から. は,WebSocket の通信もファイルに保存する.この時,ファ. 構成される.. • 要求メッセージの request line に含まれる query string • 要求メッセージのオプションとなるヘッダ • 要求メッセージのボディ • 応答メッセージのヘッダ. イル名は,HTTP と同じものに加えて,送信の方向を含め る.ファイルの内容は,通信の内容である.. 3. 双子のブラウザの実装 本研究では,Mozilla Firefox,および,Google Chrome. 後者のディレクトリのファイルの内容は,次の項目から構. を拡張して双子のブラウザを実装する.双子のブラウザ. 成される.. は,図 4 のように親ブラウザと 2 つの子ブラウザから構成. • 応答メッセージのボディ ⓒ 2018 Information Processing Society of Japan. される.親ブラウザを操作するとそれが 2 つの子ブラウザ. 32.

(5) コンピュータシステム・シンポジウム Computer System Symposium. でも再現される. 双子のブラウザで再現できる動作を以下に示す.. • ページを開く • クリック • フォームの input 要素の入力 • スクロール • ウィンドウのリサイズ 双子のブラウザは,図 4 で示すように,親ブラウザの拡. ComSys2018 2018/11/30. ホスト 親ブラウザ Webページ 拡張機能. 分配器 WebSocket Server. Seleniumライブラリ DOMや ウィンドウ の操作. WebSocket Client. イベントハンドラ による操作の監視. postMessageによる通信 Docker コンテナ 子ブラウザ Webページ Selenium. Docker コンテナ 子ブラウザ Webページ Selenium. Standalone Server. 張機能,分配器,Selenium Standalone Server から構成さ. Standalone Server. れる.親ブラウザの拡張機能は,WebExtensions[6] を用い て上記の操作を検知する.そのために,拡張機能は親ブ. 図 4 Selenium による双子のブラウザの実装. ラウザが表示する Web ページの DOM( Document Object. Model ) ノードに対して予めイベントハンドラを登録する.. JavaScript コード (’window.scrollTo(x, y)’) をブラウ. イベントハンドラは,操作情報を分配器に送信する.操作. ザに実行させる.. 情報は,次の情報を含む.. • window resize(x,y): Window の大きさを指定する大き. • 発生したイベント名.. さに変更する.Selenium の set window size メソッド. • 対象の DOM ノード.DOM ノードを指し示す表現と. を利用する.. しては,XPath(XML Path Language) を用いる.. 親ブラウザでページを開くと,その URL とタブ Id が分. • テキストデータ.フォームの input 要素の入力の場合.. 配器に送られてくる.分配器は,親ブラウザのタブ Id と子. • イベントが発生したタブのタブ ID.. ブラウザのタブ Id の対応を管理している.分配器はすでに. 分配器と親ブラウザの拡張機能は,WebSocket でメッ. タブが開かれていれば,detect tab メソッドを用いて,そ. セージをやり取りしている.. のタブを操作可能な状態にする.なければ,make new tab. 分配器は,親ブラウザの拡張機能から操作情報を受ける. メソッドを使い新しくタブを開く.親ブラウザで,クリッ. と,Selenium[7] を用いて子ブラウザを再現する.Selenium. ク, フォームの input 要素の入力,スクロール,ウィンド. は,Web ブラウザの操作を自動化用するツールである.. ウのリサイズを行った場合にはそれぞれ対応するメソッド. Selenium は,ブラウザに表示されている Web ページに. が呼ばれる.. JavaScript コードを挿入することができる.Selenium は, Java や Python, および JavaScript(Node.js) などの言語で 記述されたプログラムから Web ブラウザを操作可能に. 4. 個人識別子を検出する実験 4.1 双子のブラウザが生成したファイルの差分. する.本研究の分配器は,Python を使って実装した.ま. 3 章で述べた双子のブラウザを用いてファイルや通信か. た,Selenium を別のコンテナで利用するために,Selenium. ら個人識別子を検出する実験を行った. 実験の対象として. Standalone Server を子ブラウザが動作しているコンテナ. は,ユーザトラッキングを行っている代表的な Web サイ. で立ち上げておく.. トとして Google の http://www.google.com/を選択した.. 分配器は以下のようなメソッドを持つ.. これは,ログインを必要としない簡単なサイトである.. • make new tab(url): 新しいタブを指定する URL で開. 4.1.1 Firefox. く.このメソッドは,まず JavaScript コード (’win-. まず Firefox により実装した双子のブラウザをキャッシュ. dow.open();’) をブラウザに実行させ新しいタブを開. サイズを 0MB に設定し,双子の環境で実行した.その結. き,Selenium の get メソッドで URL を開く.. 果の要約を表 1 に示す.コンテナで書き込みがあったファ. • detect tab(tab id):. タ ブ Id で 指 定 す る タ ブ を 操. イルは,全部で 30 個であった.これらの 30 個のファイル. 作 可 能 な 状 態 に す る .タ ブ の 切 替 に Selenium の. に対して前処理を行って,テキスト化し diff コマンドで差. switch to window メソッドを利用する.. 分を取った結果,22 個のファイルには同一であることが. • clieck(xpath): 指定する要素をクリックする.Sele-. わかった. 残りの 8 個のファイルでは,合計で 28 行の差が. nium の find element メソッド,および,click メソッ. あった.2.2 節,および,2.3 節で述べた方法に従って差分. ドを利用する.. を削減した結果,最終的に差分は4つのファイルで 8 行に. • input(xpath, text): 指定する要素にテキストを書き 込む.Selenium の find element メソッド,および,. send keys メソッドを利用する. • scroll(x, y):. 指定する量だけスクロールする.. ⓒ 2018 Information Processing Society of Japan. なった.識別できないバイナリファイルはなかった. 表 2 に ,発 見 し た 差 分 の 一 部 を 示 す .cookies.sqlite には,HTTP cookies が保存されていることがわかる.. places.sqlite は,訪問履歴を保持するファイルである.そ 33.

(6) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2018 2018/11/30. 表 1 双子の環境で書き込みがなされたファイル (Firefox) 個人情報が ない. 差分がある 不明なバイナ. テキストと扱. リ. えるバイナリ. (行数) 更新されたファ. 22. 0. 8(28). 26. 0. 4(10). 26. 0. 4(8). 26. 0. 4(8). イル 乱数生成器の置 き換え ローカルタイム スタンプの固定 前処理後. 表 2 見つかったファイルの差分の例 (Firefox) ファイル名 . 環境 1  . 環境 2. cookies.sqlite. value = 144=TiKON6Av0jIhBs .... value = 144=ByW 1VAHxQkZtBU.... places.sqlite. guid = h1rV8kXSkMLh. guid = RZ4UHJH7cFa6. sessionstore.js. “docshellUUID”: “{eec3c4c5-aee5-4d62-97ef-. “docshellUUID”:. 201625b37b9c}”. 9d44-2aa871a4bfb1}”. user pref(“browser.slowStartup.averageTime”,. user pref(“browser.slowStartup.averageTime”,. 16532). 14325). prefs.js. “{0644435c-10b0-4e12-. の中に,アクセスした URL が保存されている.このよう. www.google.com/gen 204 であった.また,URL が違う. に,URL の中に,ユーザトラッキングに利用可能なタグが. 通信の数は 3 個あった.ネットワーク通信の差分はタイム. 埋め込まれていることがわかる.. スタンプと重複を除き 22 行あった.. この実験の結果,提案手法により,ファイルを特定し,. 表 6 に,見つかった差分の一部を示す.要求メッセージ. 使用者の識別子を検出することができ,ユーザトラッキン. には,Cookies が現れている.これは,cookies.sqlite(表 2). グに使われる個人識別子が含まれることが確認された.. にも含まれている.. 4.1.2 Chrome 次には Google Chrome により実装した双子のブラウザ. 5. 個人識別子の削除. で 4.1.1 項と同じ実験を行った.結果の要約を表 3 に表す.. 2 章では,双子の環境を使って個人識別子を含むファイ. 差分があるファイルは Firefox より多かった.最終的には,. ルとネットワーク通信を検出する方法について述べた.4. 8 つのファイルで,合計 12 行の差が見つかった.表 4 に,. 章では,実装した双子の環境でいつくかの個人識別子を見. 発見した差分の一部を示す.. つけることができたことを示した.この章では検出した個. 現在のところ,次のような識別できない差分があるバイ. 人情報を削除するツールについて述べる.. ナリファイルが 3 個残された.. • Current Session • Current Tabs • Translate Ranker Model. 5.1 ファイルから個人識別子の削除 現在の Web ブラウザやオフィスツールは,非常に複雑で あり,多くのファイルをアクセスする.個人識別子は,こ れらのファイルのうち,更新されるものに保存される.本. 4.2 ネットワーク通信内容の差分. 研究では,2.1 節の手法により,更新されるファイルを特定. Web ブラウザとして Firefox を用いてネットワーク通信. することができる.これらの更新されるファイルをすべて. の内容の差分を調査した.訪問したサイトは,4.1 節と同. 削除すれば,個人識別子も削除されるが利便性が大きく低. じである.結果の概要を表 5 に示す.通信の数は全部で. 下することがある.たとえば,Web ブラウザでは,ブック. 21 個あり,テキスト形式のファイル以外に PNG(Portable. マークや個人の設定を保存するファイルが更新されるが,. Network Graphics) 形式の画像が 6 個,ico(icon) 形式の画. それらを全て削除すると,利便性が低下する.. 像が 1 個あった.20 個のメッセージの内容に差分があり,. 1 番目の通信だけは差分がなかった.. そこで本研究では,更新されるファイルを,次の3種類 に分類して考える.. 応答メッセージの内容に差分があるファイル. • タイプ 1: アプリケーション自身が個人識別子を削除. が 2 個 あ っ た .そ れ ら の URL は www.google.com と. する機能を提供しているもの.たとえば,Web ブラウ. ⓒ 2018 Information Processing Society of Japan. 34.

(7) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2018 2018/11/30. 表 3 双子の環境で書き込みがなされたファイル (Google Chrome) 個人情報が ない. 差分がある 不明なバイナ. テキストと扱. リ. えるバイナリ. (行数) 更新されたファ. 98. 3. 47(114). 129. 3. 16(46). 129. 3. 16(41). 140. 3. 5(12). イル 乱数生成器の置 き換え ローカルタイム スタンプの固定 前処理後 表 4. 見つかったファイルの差分の例 (Google Chrome). ファイル名 . 環境 1  . 環境 2. Cookies. encrypted value  =  v10D\6P\kC\4DB0.... encrypted value =v10\80\A5\C380A.... Preferences. “http original content length”: “5822543”. “http original content length”: “5822508”. blob storage. 0f4d89fa-3338-461a-8223-79fafb95b4ae. 4a59d2e5-f105-4ad4-995a-7186246adb0a. Local State. “variations seed signature”:. “variations seed signature”:. Network Persistent State. CIFj9DePjDdyFk...”. “network stats”: “srtt”: 4890. “network stats”: “srtt”: 27660. ザなら,cookie を終了時に削除する機能がある.. • タイプ 2: ファイル全体を削除すると問題が生じる. “MEU-. 5.2 ネットワーク通信から個人識別子の削除 ファイルからの個人識別子の削除は,プログラムを一度 終了しなければ行うことができない.たとえば,Web ブラ. もの.. • タイプ 3: ファイル全体を削除しても問題が生じない. ウザ Firefox の places.sqlite に含まれる guid は,5.1 節で 述べたツールで削除できる.しかし,ブラウザの実行中に. もの. 本研究では,主にタイプ 2 のファイルについて,内部の 個人識別子を特定し,削除するか,ランダムな値で置き換. は,このツールは動作しない. アプリケーション自身が,個人識別子の送信を抑止する 機能を持っていることがある.たとえば,Web ブラウザ. えるツールを作成する. 次のファイルを削除すると,利便性が低下することを確. は,cookie を送信しない機能や,検索結果の URL から個 人識別子を削除する拡張機能を持っている.Web ブラウ. 認した.. • Firefox places.sqlite.削除すると履歴機能が使えなく なる.. ザについては,このような既存の機能を利用すれば,かな りの個人識別子を削除することができる.しかしながら,. • Firefox prefs.js.削除するとアプリケーションの設定 が失われ,初期状態にもどる.. store Previous Session」の機能が使えなくなる. 本研究では,Web ブラウザの次のファイルから個人識別 子情報を削除するツールを作成する.. ブラウザが SSL/TLS の証明書を検証するために Online. Certificate Status Protocol(OCSP) に基づき行う通信を扱 えない.また,Web ブラウザ以外のアプリケーションにつ いては,ネットワーク通信から個人識別子を削除する機能. • Firefox cookies.sqlite. persistant cookie の value をラ ンダムな値で置き換える.. prefs.js.. このような Web ブラウザの機能には,ブラウザが行う暗 黙的な通信を扱えないという限界がある.たとえば,Web. • Firefox sessionstore.js.削除すると,ブラウザの「Re-. • Firefox. “MEU-. CIQD31Hk3r25aa4Zigsjsy5s...”. はほとんど開発されていない. 本研究では,MITM-Proxy を用いてネットワーク通信か. 時 刻 に 関 す る 行. (browser.slowStartup.averageTime. 等). を 削 除. する.. • Firefox places.sqlite. guid をランダムな値で置き換 える.. • Firefox sessionstore.js docshellUUID をランダムな値 で置き換える.principalToInherit base64 をランダム. ら個人識別子を削除するしたいと考えている.. Web サーバは,IP アドレスやブラウザの Fingerprint 等 のメタ情報を使ってユーザトラッキングを行うこともあ る.送信するメッセージの内容だけを操作しても,それに は限界がある.本研究では,IP アドレスを隠すことについ ては,Tor[4] 等の既存の手法と組み合わせて用いることに する.. な値で置き換える.. ⓒ 2018 Information Processing Society of Japan. 35.

(8) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2018 2018/11/30. 表 5. 見つかったネットワーク通信の差分の数 (Firefox). 全部の通信数 . 21. 差分がある通信. 20. 応答に差分がある数. 2. タイムスタンプと重複を排除の差分. 22(行). 表 6. 見つかったネットワーク通信の差分の例 (Firefox). URL  . 環境 1  . www.google.com. Cookie:. www.google.com/gen 204 ssl.gstatic.com/gb/ima. 環境 2. 1P JAR=2018-10-30-. Cookie:. 1P JAR=2018-10-30-. 10,NID=144=TiKON6Av0jIhBs .... 10,NID=144=ByW 1VAHxQkZtBU .... ei: zTHYW-XZLYm78QXirYeIDA. ei: zTHYWBENxVnt4YGsqr4WR. age: 402757. age: 402758. ges/i1 1967ca6a.png. 6. 関連研究 Qubes-OS[1] は高いセキュリティを実現するための OS. [3]. である.Qubes-OS は仮想計算機モニタ (Xen) を用いて, アプリケーションを隔離された仮想実行環境で実行する.. Qubes-OS には,複数の仮想実行環境のファイルを比較す. [4]. る機能はない.. Blink-Docker[2] はコンテナ中でブラウザを実行するこ. [5]. とで,Canvas Fingerprint を利用したユーザトラッキング からユーザを保護する.Canvas Fingerprint はハードウェ アや OS のわずかな違いによってクライアントを特定する 手法である.Blink-Docker はコンテナ技術を利用し,毎回. [6]. Fingerprint を変えることができる.本研究では,通信内 容を検査し,そのようなユーザトラッキングを検出したい. [7]. rity and Privacy, Poster Session (2016), [Online] http://www.ieee-security.org/TC/SP2016/posterabstracts/59-poster abstract.pdf. Javier Verd, Juan Jos Costa, Alex Pajuelo: Dynamic Web worker pool management for highly parallel javascript web applications, Concurrency and Computation: Practice and Experience, 28(13), pp.3525-3539 (2015). Roger Dingledine, Nick Mathewson, Paul Syverson: Tor: The Second-Generation Onion Router, Proceedings of the 13th USENIX Security Symposium (2004). Gunes Acar, Christian Eubank, Steven Englehardt, Marc Juarez, Arvind Narayanan, Claudia Diaz, The Web Never Forgets: Persistent Tracking Mechanisms in the Wild, Proceedings of the ACM SIGSAC Conference on Computer and Communications Security, pp.674-689 (2014). WebExtensions JavaScript APIs: https://developer.mozilla.org/en-US/docs/Mozilla/Addons/WebExtensions/API, Accessed: 2018-10-23. Selenium - Web Browser Automation : http://www.seleniumhq.org/, Accessed: 2018-10-23.. と考えている.. 7. まとめ 本研究では個人情報および個人識別子を含むファイルと 通信を検出することを目的として双子の環境を提案した. 双子の環境では双子のブラウザを実行する.本研究では双 子の環境を Docker コンテナで実装した.そして Overlay. File System を用いてファイル差分を得て,それに含まれる 個人識別子を検出した.また,Man-In-The-Middle Proxy を用いて,通信内容をファイルに保存,比較し,個人識別 子を検出した.また,いくつかのファイル型について,個 人識別子を削除するツールを作成した. 今後の課題は,通信内容から個人情報や個人識別子を削 除するツールを実現することである.また,個人識別子を 削除できるファイルの種類を増やしたいと考えている. 参考文献 [1] [2]. Qubes OS - A reasonably secure operating system: https://www.qubes-os.org/, Accessed: 2017-11-22. Pierre Laperdrix, Walter Rudametkin, Benoit Baudry: Blink: A moving-target approach to fingerprint diversification, 37th IEEE Symposium on Secu-. ⓒ 2018 Information Processing Society of Japan. 36.

(9)

図 2 Docker Overlay Filesystem によるファイル差分検出 ることで,ローカル・タイムスタンプの違いを排除する. そのため,本研究で作成した動的リンクライブラリを LD PRELOAD で置き換える.置き換えたシステム・コー ルは,環境変数で指定された固定の時刻を返す. このような処理を行ったとしても,アプリケーションの 内部で独自にシステム・コールで得た時刻を加工して利用 していることがある.例えば, Firefox では,システム・ コール clock gettime() で得ら
図 3 MITM-proxy を用いた HTTP のメッセージの差分検出 ンでは,次のような設定を行う. • インターネットへの通信を行う時には,プロキシとし て, MITM-Proxy を経由する. • TLS 証明書のルート認証局として, MITM-Proxy の 内部の認証局を追加する. そして,それ以外の通信を一切禁止する.その結果,双子 の環境で動作するアプリケーションの通信は, MITM-Proxy に導かれる. MITM-Proxy では,双子の環境で動作しているアプリ ケーションから接続要求
表 1 双子の環境で書き込みがなされたファイル (Firefox) 個人情報が ない 差分がある不 明 な バ イ ナ リ テ キ ス ト と 扱え る バ イ ナ リ ( 行数 ) 更新されたファ イル 22 0 8(28) 乱数生成器の置 き換え 26 0 4(10) ローカルタイム スタンプの固定 26 0 4(8) 前処理後 26 0 4(8) 表 2 見つかったファイルの差分の例 (Firefox) ファイル名  環境 1   環境 2
表 3 双子の環境で書き込みがなされたファイル (Google Chrome) 個人情報が ない 差分がある不 明 な バ イ ナ リ テ キ ス ト と 扱え る バ イ ナ リ ( 行数 ) 更新されたファ イル 98 3 47(114) 乱数生成器の置 き換え 129 3 16(46) ローカルタイム スタンプの固定 129 3 16(41) 前処理後 140 3 5(12) 表 4 見つかったファイルの差分の例 (Google Chrome) ファイル名  環境 1   環境 2
+2

参照

関連したドキュメント

何日受付第何号の登記識別情報に関する証明の請求については,請求人は,請求人

 親権者等の同意に関して COPPA 及び COPPA 規 則が定めるこうした仕組みに対しては、現実的に機

②上記以外の言語からの翻訳 ⇒ 各言語 200 語当たり 3,500 円上限 (1 字当たり 17.5

※お寄せいた だいた個人情 報は、企 画の 参考およびプ レゼントの 発 送に利用し、そ れ以外では利

・職員一・人一・人が収支を意識できるような、分かりやすいバランスシートを管

 同一条件のエコノミークラ ス普通運賃よ り安価である ことを 証明する

私たちのミッションは、生徒たちを、 「知識と思いやりを持ち、創造力を駆使して世界に貢献す る個人(”Informed, caring, creative individuals contributing to a

不正な投機を助長する等、特定の者(具体的に個人又は法人等が確定していることま