第2章 sVirt
sVirt は、SELinux と仮想化を統合する Red Hat Enterprise Linux に含まれるテクノロジーです。sVirt は、ゲスト仮想マシンを使用する際のセキュリティーを向上させるために強制アクセス制御 (MAC) を適用します。この統合テクノロジーにより、セキュリティーが向上し、ハイパーバイザーのバグに対してシステムがハードコーディングされます。ホストの物理マシンまたは別のゲスト仮想マシンの攻撃を防ぐことが特に便利です。
本章では、sVirt が Red Hat Enterprise Linux 6 の仮想化テクノロジーと統合する方法を説明します。
非仮想化環境
非仮想化環境では、ホスト物理マシンは互いに物理的に分離されており、各ホスト物理マシンには、Web サーバーや DNS サーバーなどのサービスで設定される自己完結型の環境があります。これらのサービスは、独自のユーザー空間、ホストの物理マシンのカーネルおよび物理ハードウェアに直接通信し、サービスをネットワークに直接提供します。以下のイメージは、仮想化されていない環境を表しています。
- ??????
- ユーザー空間: 全ユーザーモードのアプリケーションと一部のドライバーが実行されるメモリー領域。
- ???
- Web アプリ (Web アプリケーションサーバー): ブラウザーからアクセスできる Web コンテンツを配信します。
- ??????
- ホストカーネル: ホストの物理マシンの特権付きカーネル、カーネル拡張、およびほとんどのデバイスドライバーを実行するために厳密に予約されます。
- ???
- DNS サーバー: DNS レコードを格納し、ユーザーが IP アドレスの代わりに論理名を使用して Web ページにアクセスできるようにします。
仮想化環境
仮想化環境では、複数の仮想オペレーティングシステムを、ホスト物理マシン上にある単一のカーネルで実行できます。以下のイメージは、仮想化環境を表しています。
2.1. セキュリティーおよび仮想化
サービスが仮想化されていない場合は、マシンは物理的に分離されています。通常、エクスプロイトは影響を受けるマシン内に封じ込められ、ネットワーク攻撃は明らかな例外となります。仮想化環境でサービスをグループ化すると、システムに追加の脆弱性が発生します。ハイパーバイザーにゲスト仮想マシンが悪用できるセキュリティー上の欠陥がある場合、このゲスト仮想マシンは、ホスト物理マシンだけでなく、そのホスト物理マシンで実行されている他のゲスト仮想マシンも攻撃できる可能性があります。これらの攻撃はゲスト仮想マシンを超えて拡大する可能性があり、他のゲスト仮想マシンも攻撃にさらされる可能性があります。
sVirt は、ゲスト仮想マシンを分離し、悪用された場合にさらに攻撃を開始する能力を制限するための取り組みです。これは次のイメージに示されています。このイメージでは、攻撃がゲスト仮想マシンから抜け出して他のゲスト仮想マシンに侵入することはできません。
SELinux では、MAC (Mandatory Access Control) の実装で、仮想インスタンスにプラグ可能なセキュリティーフレームワークを導入しました。sVirt フレームワークを使用すると、ゲスト仮想マシンとそのリソースに一意のラベルを付けることができます。ラベルを付けると、異なるゲスト仮想マシン間のアクセスを拒否できるルールを適用できます。