こんにちは、ネットエージェント株式会社の松本です。今日は正式リリースに向けてそろそろ動向が気になり始めたGoogle ChromeOSと、10年後のフォレンジックのお話です。

-----

 未来のコンピュータフォレンジックを予測することは、すなわち未来のコンピューティング環境を予測することでもある。今年の6月にExFORENSICSに投稿された「Computer Forensics - The Next Ten Years」は、Larry E. Daniel による10年後のコンピュータフォレンジックの予測である。彼は以下の6つの観点からフォレンジックの未来について語っている。
 1. ユーザデータ領域は標準で暗号化され、ライブメモリフォレンジックがより重要になる
 2. 携帯電話が主要なコンピュータとして活発に利用されるようになり、
   モバイルフォレンジックがフォレンジック調査の主流になる
 3. 10年後もまだWindows7を利用するユーザは存在しており、
   調査員は引き続き調査することになる
 4. クラウドコンピューティングの利用により、クラウドに保管されるデータや、
   モバイルコンピュータを対象としたフォレンジックが重要になる
 5. テクノロジーは発展し続け、より高度なものになる
   それに従ってフォレンジックは常に成長を求められ、より困難になっていく
 6. ともあれ、コンピュータフォレンジック産業は今後も成長する
 この予測は、私にとっても非常に納得できるものである。投稿記事を読むに先立って、Google ChromeOS(以下ChromeOS)環境でのフォレンジック調査について検証をしており、そのセキュリティ機構の完成度(すなわちこれは調査のしにくさでもあるのだが)に頭を悩ませていたからである。そこで今回は、私の納得感を皆さんにも共有してもらうために、ChromeOSが採用しているユーザデータの保護の仕組みについて紹介したいと思う。

 ChromeOSは、2009年11月にGoogleによって発表されたPC向けの新型OSである。先行してGoogleが提供しているOS「Android」はスマートフォンや音楽プレイヤーなどの携帯デバイスを主なターゲットとしており、この二つのOSの住み分けについて議論されることがあるが、一般的にはChromeOSはネットブックやタブレットPCなどの低価格帯モバイルコンピュータをターゲット※1としているといわれている。
 ChromeOSの特徴は、Webブラウザ「Chrome」を核とする※2、非常にシンプルかつセキュアである点だ。基本的にデスクトップ・アプリケーションのインストールは行わず、Googleなどが提供するWebアプリケーションをChromeブラウザ上で実行させるためのOSである。
 ChromeOSは、GoogleDocks等のクラウドサービスを媒介にすることによって、ネットワークに接続しているコンピュータならどの端末からでも、ほぼ前回利用時と同一のユーザ環境を実現することが可能である。複数のユーザが同一端末を利用する事情もあり、ChromeOSのデータ保護、特にユーザデータの保護は徹底している。そこで、公式サイトであるThe Chromium ProjectsのProtecting Cached User Dataを参照しつつ実際のChromeOSを検証してみた。今回はHexxeh氏によってビルドされた「ChromeOS Flow」のVMWare版を利用した。2010年8月11日現在では2010年2月15日にビルドされたバージョンが最新である。
fo_m1 ChromeOS Flowの公式サイトでは、VMWareイメージのほかにUSB起動のイメージも提供されており、UbuntuのインストールやビルドなしにChromeOSを手軽に検証できるので非常に便利である。
 ChromeOS Flowを起動するとログイン画面が立ち上げる。なお初回ログイン時にはGoogleアカウントとネットワーク環境が必要になる。一度ログインすると、ログイン情報はローカルにキャッシュされ、次回以降はローカルログインも可能になる。Googleネットワークログイン時の通信は、Googleアカウント及びパスワードを含め、httpsによって保護されている。
fo_m4 起動時にオープンになっているTCPポートは80番(http)及び443番(https)のみである。
 ChromeOSのディスクはSTATEパーティションとROOTパーティションの構成となっている。STATEパーティションは主にユーザプロファイルやローカルに保存するデータなどが存在し、後に詳しく述べるようにデータはユーザごとに暗号化され保護される。一方、ROOTパーティションは読み込み専用でマウントされ※3、システムの改ざんは細かくチェックされる。
fo_m5 ユーザがGoogleアカウントで最初にログインしたタイミングで、OSはユーザのプロファイル情報等を、STATE領域の隠しディレクトリ(画面では/C-STATE/home/.shadow/)配下の、アカウント名をハッシュ化して作成したディレクトリに暗号化イメージファイルとして作成、保存する。先述したようにChromeOSを搭載したコンピュータが複数のユーザによって共用されることを想定し、この暗号化イメージファイルはユーザごとに作成され、プライバシは保護される。
 イメージファイルには、ChromeOSの核となるChromeブラウザが保存するブラウザの設定情報、Cookie、Historyなどの履歴情報や、シェルの実行履歴であるBash_historyなどが保管される。また、先述したChromeブラウザの設定情報や利用履歴、アカウントやパスワードなどの自動入力情報(ただしクレジットカード情報を除く)などは、Googleが提供するアカウント同期サービスを利用することにより、別のネットワーク環境でも利用することが可能である※4。
fo_m6 暗号化イメージファイルは、ログイン時にループデバイス(dm-crypt device)としてログインユーザのホームディレクトリとしてマウントされ、ユーザ固有のデータを保存する領域として利用される。イメージはユーザのログアウトのタイミングでアンマウントされ、更新された必要な情報を書き込み、不必要な情報のワイプや圧縮の処理を行い再び暗号化される。
 イメージの暗号化キーは、OSのインストール時に生成されるランダムキー+ (対応していればハードウェアベースのジェネレータ )から生成される。そして、暗号化キー自体はGoogleアカウントのパスワードハッシュによって暗号化されている。つまり、フォレンジック調査などでハードディスクに残されたユーザの挙動を確認したい場合には、該当ユーザによってログインされ、暗号化イメージが復号された状態でのフォレンジック、つまりライブフォレンジックによって保全や確認の作業を行う必要があるということだ。
 ChromeOS Flow VMWare版の、ユーザ暗号化領域のイメージファイルは圧縮された状態で134MB程度である。ただし、ChromeOSではローカルにコンテンツを保存し、オフラインで閲覧することも想定されているので、実際にChromeOSを搭載した製品では、ハードディスクの容量に応じて利用可能になると思われる。

 このように、ChromeOSではユーザのデータはOSによって手厚く保護され、利用するユーザは意識することなく暗号化の恩恵を受ける。ChromeOSはGoogleアカウントのみならず、他の認証システム、特にOpenIDに対応することを公言しており、実現すれば利便性は更に高くなる。
 もしかすると、10年といわずここ数年のうちに、ChromeOSを搭載したモバイル端末がクラウドに自由にアクセスし、ローカルのハードディスクに痕跡の残らない、しかも現在では想像もできないような高度なWebアプリケーションを活用する環境が実現するかもしれない。なお、ChromeOSの公式サイトには非常に質の高いドキュメントがそろっているので、興味のある方はぜひチェックしてみてほしい。今回は紹介できなかったが、セキュリティ機構に関するドキュメントも興味深く、これらを読めばChromeOSがいかにセキュアなOSであるかを理解いただけるだろう。
 Larry E. Danielの予測は多くの点でChromeOSが目指すものと合致する。もちろんChromeOSがどの程度のシェアを獲得するのかは未知数であるが、少なくとも自宅や職場に設置しているデスクトップ型のパソコン環境の一部は、いつでもどこでも利用できるクラウドやモバイルコンピュータをベースとしたものにシフトしていくのは間違いないように思える。
 Larryの予言がどうなるかはさておき、個人的には最後の「コンピュータフォレンジック産業は今後も成長する」という言葉に期待して、未来に希望を持ってあと10年はフォレンジックに関わる活動を続けていきたいと思う※5。


※1 個人的には、ChromeOSとAndroidは利用されるハードウェアではなく、ユーザの目的や用途によって選択されるようになるのではないかと考えている

※2 ちなみにChromeOSは2010年後半に無償(Ubuntuベースのオープンソースライセンス)でリリースされる予定であるが、それに向けてかどうかChromeブラウザは今後(7月末時点)6週に1回の驚異的なハイペースで新バージョンがリリースされるらしい
  http://jp.techcrunch.com/archives/20100722google-chrome-versions/

※3 マウントオプションの変更はログイン後手動でオプションを指定して再マウントをするかstartupscriptにより可能

※4 Google Chrome Help “Basic settings: Sync”に詳細が記載されている
  http://www.google.com/support/chrome/bin/answer.py?hl=en&answer=165139

※5 「“米国の”コンピュータフォレンジック産業は成長する」という意味ではないことを祈りつつ(汗)