8 QubesOS
1. コンセプト
QubesOSは、OSレベルでデスクトップのセキュリティを保護するために開発された、オープンソースの実装である。一般的にOS上のセキュリティを担保する手法は様々あるが、Qubes OSではコンパートメント化によりセキュリティを担保するアプローチをとっている。
例えば、図1のようにOS上では様々なアプリケーションが動作している。その中でも、比較的危険度の高いWebブラウザや、メールクライアント、ネットゲームなどをそれぞれコンパートメント化し、業務で使用しているWork DataのSpread Sheetや、その他アプリにアクセスできないようにする(図1)。
図1
また、同じWeb ブラウザでも、社内イントラ(Work Data)にアクセスするブラウザと、ショッピングをするブラウザ、社外情報閲覧用のWeb ブラウザは、それぞれのコンパートメントに分けて考える必要がある(図2)。
図2
このようなコンセプトを実装するには、SELinuxのように強制アクセス制御を付加し、各リソースをドメインに分けてコンパートメント化するような方法がある。しかし、この方法では、Linuxカーネル自体にバッファオーバーフローなどの脆弱性が発覚した際に対応できない。また、ひとつのカーネル上ですべてのドライバ類をハンドリングするには、ACL(Access Control List)やポリシーなどが繁雑になりすぎ、ユーザが現実的に管理できなくなってくる。
2. QubesOSのモデル
QubesOSでは、このようなコンパートメントをVMを用いて実装する(そのため、Qubes「OS」と銘打っているが、実際にはXenを利用したVMによる実装となっているため、作者は"OSのディストリビューション"ではなく、"Xenのディストリビューション"であると言っている)。現状の、システムに対してひとつのカーネルを使用している状態では、すべてのドライバ類をハンドリングしなくてはならなくなるため、セキュリティリスクが高い。そのため、一つのカーネルでシステムの機能をすべて提供し、ハンドリングするのではなく、Hyper Visorを用い、各機能を提供する専用のVMを用意する。
図3がQubesOSのモデル図になる。
図3
| (1) Domain0 |
| |
- 管理とセキュアな環境を提供する。Domain0にはNetwork機能とStorage機能は含まれない。通常ユーザが使用するアプリケーションはDomain0で起動する。
- Dom0は、2500行のCコードで書かれているため、軽くかつ脆弱性が入る確率が低い実装になっている。
|
| (2) Network Domain VM |
| |
- Network機能専用の(非特権な)VM。物理レイヤをコントロールする。
|
| (3) Storage Domain VM |
| |
- Storage機能専用の(非特権な)VM。物理レイヤをコントロールする。
|
| (4) Application VM |
| |
- Applicationを動作させるVM。QubesOSの名前の元になっている(Qube: ブロックのイメージ)。
- 各ドメイン(Work、Shopping、Randomなど)毎に起動され、ユーザにアプリケーションを提供する。非常に軽く、管理コンソールからアップデートが可能である。
- Application VMはTemplate VM(Read Onlyになっている)を元に作成される。
|
QubesOSでは、これらHyper Visor環境およびVMを新たに作り起こすのではなく、XenとLinux(それぞれカスタマイズされているもの)を用いて実現している。そのため、ユーザのデスクトップ環境はすべてLinuxとなっている。7月1日にFedora13ベースのAlpha2がリリースされているため、これを用いてQubesOSをテストすることが可能である。
(将来には、WindowsのVMをサポートするかもしれないとも述べている。)
3. 特徴
QubesOSの特徴としては、以下の3点になる。
(1) Lightweight Virtual Machine
ドメイン毎にいくつもVMゲストを立ち上げなくてはならないため、起動が早く軽い「lightweight Virtual Machines」を作成し、実装している。これは、既存のVM Guest(Linuxベース)をカスタマイズしたものになっている。
(2) ユーザにVMを使用していることを感じさせないインターフェース
(1)のLightweight Virtual Machineを使用して、各ドメインでここにアプリケーションを立ち上げることになるが、その際にユーザには、それがVMを使用して立ち上がっているということを意識させないような作りになっている。Qubes OSはデスクトップ用のセキュリティ実装のため、そのようなユーザビリティにもこだわっている。
過去にもNetTopなど、VMを使用して機密レベルを分けるような実装はあったが、どうしてもゲストOSの枠内で動作していることが見た目で分かるようになっていた。しかし、QubesOSでは、見た目は一般のアプリが立ちあがっているようにしか見えず、ただアプリケーションに、ドメインを表す色つきのマークと、ドメイン名称しか表示されないようになっている(図4)。また、異なるドメイン間で、Clipboardを通してコピーを行ったり、ファイルの転送も行うことができる(図5および図6)。ファイルを転送する際には、仮想の"pendrive"を作成して受け渡しに使用し、データが自動的にApplication VM間を移動しないようになっている。
図4
図5
図6
(3) Disposable(使い捨て)VM
たとえ前述のように、Work用のAppVMや、Shopping用のAppVMにアプリケーションを分けていても、Work AppVM内のソフトに脆弱性が出てしまった場合には、Work AppVM内にある他のソフトも影響を受けてしまう。例えば、Work AppVM内にメールクライアントがあった場合、あるユーザから送信されてきたメールに添付されているPDFファイルを見ようとしてダブルクリックしたら、脆弱性を利用するマルウェアであったという場合もあり得る。その際には、このマルウェアを通じて、Work AppVM内のブラウザにキャッシュされている情報や、Spread Sheetなどのデータを盗み見されてしまうかもしれない。また、そこからブラウザの脆弱性を攻撃されるという可能性もある。
あるいは、上述のPDFを念のためにRandom AppVMなど、他のAppVMに転送して見てみると言う方法もある。しかし、その場合には、もしPDFが本当に仕事に関してのコンフィデンシャルな情報だった場合には、情報流出の危険性が生まれてしまう。
その様なときのために、Disposable VMのコンセプトが考えられた。これは、1s以内で起動でき、かつ毎回クリーンな状態で立ちあがってくるような、ひとつのアプリ専用に用意されたさらに軽いVMである。例えば、前述の例であれば、メールに添付されているPDFを、Disposable VM内で動くPDFビューアでプレビューする(この際、操作性を考えて、右クリックで「Disposable VMでプレビューを行う」などと表示させ、そちらを選択するようにするプランである)。仮にPDFファイルが正常のものであれば、Workドメインで改めてPDFビューアを用いて保存等を行えばよい。仮にPDFファイルにマルウェアが混入していた場合には、汚染されるのはDisposable VMだけである。また、このDisposable VMは毎回シャットダウン時に破壊してしまい、次回起動時にはまったく新しくクリーンな状態で立ちあがってくるため、このVMを介してのセキュリティ被害の拡大はない。これが、Disposable(使い捨て)と呼ばれる所以である。
QubesOS Beta1で実装予定である(実際には、操作性のところを解決したり、VMが1s以下で起動するようにしたりなど、実装しなくてはならない機能が多いため、時間がかかっている)。
4. インストール方法
Fedora13ベースのAlpha2がリリースされている。ハードウェアは64bitのCPUのみが対象となっている。
基本的にYumを利用してインストールすることになるが、最初にインストールする パッケージとして |
| |
- Desktop Environments/KDE
- Applications/Editors
- Base System/Base
- Base System/Fonts
- Base System/Hardware Support
- Base System/X Window System
|
| のみを選択しなくてはならない(Desktop EnvironmentはKDEのみが対応となる)。 |
| Fedora13のセットアップ後は、Yumを用いて |
| |
- Domain 0のカーネル
- Qubes OSをコントロールするツール
- 各AppDomain用に起動するAppVM(Linux)のテンプレート
- SystemVM
|
| をインストールしていくことになる。 |
5. 利用方法
QubesOSは、そのコンセプトからも、デスクトップのセキュリティを担保することが主眼となっている。そのため、オフィスで使用するマシンで
- Work(業務用)
- Shopping(購買用)
- Random(その他、Web閲覧など多目的)
のドメインを定義し、それぞれに
- Mailクライアント、OpenOffice、社内イントラ接続用Webブラウザ
- Amazon等に購買用途で接続するためのWebブラウザ
- 社外に接続するWebブラウザ、その他
を割り当てる。また、Disposable VMを用いて、主要なアプリケーションビューアがそれぞれ立ち上げられるようにしておき、メールにファイルが添付されていた場合には、常にDisposable VMを用いてビューアで確認してから、Workドメインで開くようにする。
これにより、
| a.) | ブラウザその他に脆弱性があった場合に、社外に接続した際に脆弱性を利用するスクリプトなどを踏んでしまったとしても、業務データが流出する危険性はない。 |
| b.) | 逆に、最終的にRandomドメインに侵入を許すような事態になったとしても、業務データを改ざんするなどの行為は行えない。 |
| c.) | Shoppingドメインを通して個人情報が漏れてしまった場合でも、Workドメインに侵入されることはない。 |
| d.) | 万一マルウェア等が添付されたメールがWorkドメインに来た場合でも、ビューアで開いた際にWorkドメインに被害をもたらすことはない。 |
という環境が実現できる。
現時点ではVMゲストの対象がLinuxしかないため一般ユーザに進めるのには敷居が高いが、WindowsがVMゲスト対象に含まれるようになれば、一般ユーザに進めることができるようなソリューションであると考えられる。
以上