Chromium OS is an open-source project, building OS that provides fast, simple, and more secure computing experience for people who spend most of their time on the web.

Googleから発表されたChrome OS / Chromium OSはネットブックでChromeを動作させることに特化したLinuxディストリビューション。起動と終了時間の早さに特徴があるが、セキュリティという面でもかなり興味深い。起動から終了まではもちろん、紛失や盗難にあった場合、物理的なエラーが発生した場合などにも問題が発生しにくいようにライフサイクルを含めていちからセキュリティが設計されている。

Chromium OS Securityに3分間ほどの動画が掲載されており、セキュリティ設計の概要が紹介されている。もうちょっと踏み込んだ設計ポリシーと実施内容はSecurity overviewで説明されている。Security overviewは若干長い説明文書だ。特徴をかいつまんでまとめると次のようになる。

セキュリティ基本原則と想定シナリオ、攻撃者

Chrome OSでは従うべき次の4つのセキュリティ基本原則を策定。その上で想定するシナリオとそこから想起されるセキュリティ機能を定めている。想定される攻撃者は日和見主義的な攻撃者と専門の攻撃者の2種類。バージョン1.0で対応するのは日和見主義的な攻撃者の方で、さらに攻撃の種類をリモート攻撃と盗難の2つにわけて対処している。

基本原則 内容
完璧ということはない すべてのセキュリティ対策は完璧ではない。過ちは発生するものだし、複雑性が事前試験では発見できなかったセキュリティホールを生み出す。このためある対策が完璧なものだとは考えない
何重にも防壁を張る 攻撃者がシステムに侵入することができないように組み上げるが、仮に侵入されたということを想定してさまざまな防壁を組み上げる
デフォルトでセキュアな設定 これまでセキュリティ対策機能は追加機能的な位置づけにあった。このため、実際にセキュリティ対策ソフトを動かすとシステムが重くなるという状況が発生していた。セキュアな動作をデフォルトとし、その状態で快適に使えるよにする
ユーザのリスク判断をサポート ユーザは常にリスク判断を迫られることになるが、インターネットでのそれは複雑でわかりにくい。その部分をユーザに丸投げすることなく、適切なシグナルを送ることで適切に判断できるように支援する
内容
想定シナリオ 寝っ転がって使う、2台目のPCとして使う、喫茶店や図書館で使うために貸し出す、家族で共有して使う
セキュリティ要求 ログイン権限の委譲、紛失や盗難に対するデータ消失への対処、ユーザの操作ミスをそのユーザでとじる、攻撃に対して何重もの防壁、再起動といった簡単な処理でシステムのリカバー、再起動といった処理でセキュリティアップデート完了
攻撃者者の種類 内容
日和見主義的な攻撃者 ユーザのデータやマシンを狙う攻撃者。基本的に罠をしかけてデータを盗み出すが、明かにデバイスそのものが盗める状況なら盗む (バージョン1.0での対応領域。攻撃内容はリモート攻撃と盗難の2つの領域に分けて考える)
専門の攻撃者 日和見主義的な攻撃者がやることに加えて、エンタープライズも対象とする攻撃者。デバイスを盗んでデータや重要なアカウント情報を盗み出す。DNSやネットワークレベルの攻撃を実施してChrome OSのアップデートプロセスやログインを不正処理へ誘導する (バージョン1.0では対応しない)

それぞれの攻撃に対する対処は次のとおり。

リモート攻撃

OSレベルの対応 内容
プロセスサンドボックス 強制アクセス制御(MAC)でリソースやプロセス、カーネルインタラクションを制限。グループデバイスフィルタリングとリソース誤用規制機能、クロスプロセス攻撃を軽減するためのChrootとプロセスネームスペース、メディアデバイス干渉制御
ツールチェイン NX、ASLR、スタッククッキー
ファイルシステム制限 ルートパーティションはリードオンリー、tmpfsベースの/tmp、ホームディレクトリ以下は実行可能ファイルや特権ファイル・デバイスノードを作成できないように制限
安全なアップデート SSL経由でのサイン付きアップデート、ロールバックすることのないバージョン番号、ベリファイブートプロセスを使ったアップデートの検証
ブラウザレベルの対応 内容
プラグインの分離 すべてのプラグインは別プロセスで動作。OSレベルでサンドボックスを実施するほかMACでアクセス制御
スタンドアローンネットワークスタック メディア/HTMLパーサのサンドボックス化、HTTP/SSLスタックを独立したプロセスとして隔離
ドメインローカルストレージ ドメインごとにレンダラアクセスを独立化するとともに、ローカルストレージへのもドメインごとに独立化
ベリファイブート処理 内容
ファームウェアでの検証 読み込みオンリーファームウェアから書き込み可能ファームウェアのチェック、書き込み可能ファームウェアからメモリチェック・ローダチェック・カーネルチェック
カーネルベースの検証 ブロックごとにハッシュ値を保持、起動しながらオンザフライでハッシュ値をチェックし完全性を検証

盗難

データプロテクション 内容
暗号化ストア ユーザごとに独立した暗号化ストアを保持。OS、ブラウザ、プラグインなどすべてのユーザデータが暗号化されて保持される。ユーザは自分以外のデータにはアクセスできない

それぞれのより詳細な説明はSystem HardeningFile System/AutoupdateFirmware Boot and RecoveryVerified BootProtecting Cached User Dataにまとまっている。ここでは取り上げていないが、ログイン処理とユーザアカウント管理に関する説明はLoginおよびUser Accounts and Managementに掲載されている。新しい技術が導入されているというよりも、既存の技術や状況を丁寧に整理し、Chrome OSの用途にうまく適用する仕組みになっている。