第8章 sVirt
sVirt は、SELinux と仮想化を統合する Red Hat Enterprise Linux に含まれる技術で、仮想マシンの使用時にセキュリティーを向上させるために、MAC (Mandatory Access Control) を適用します。このような技術を統合する主な理由は、セキュリティーを向上させ、ホストや別の仮想マシン向けの攻撃ベクトルとして使用される可能性があるハイパーバイザーのバグに対してシステムを強化するためです。
本章では、sVirt が Red Hat Enterprise Linux の仮想化技術と統合する方法を説明します。
非仮想化環境
非仮想化環境では、ホストは物理的に相互分離しており、各ホストには Web サーバーや DNS サーバーなどのサービスで設定される自己完結型の環境があります。これらのサービスは、独自のユーザースペース、ホストカーネル、物理ホストと直接通信して、ネットワークに直接サービスを提供します。以下のイメージは、仮想化されていない環境を表しています。
仮想化環境
仮想化環境では、複数のオペレーティングシステムを 1 つのホストカーネルと物理ホスト内に (ゲスト) として収納できます。以下のイメージは、仮想化環境を表しています。
8.1. セキュリティーおよび仮想化
サービスが仮想化されていない場合は、マシンは物理的に分離されています。通常、エクスプロイトは影響を受けるマシン内に封じ込められ、ネットワーク攻撃は明らかな例外となります。仮想化環境でサービスをグループ化すると、システムに追加の脆弱性が発生します。ハイパーバイザーに、ゲストインスタンスによって悪用される可能性のあるセキュリティー上の欠陥がある場合、このゲストはホストだけでなく、そのホストで実行されている他のゲストも攻撃できる可能性があります。これは理論上のものではありません。攻撃は、ハイパーバイザーにすでに存在しています。このような攻撃はゲストインスタンス以外にも及ぶ可能性があり、その他のゲストを攻撃にさらす可能性があります。
sVirt は、ゲストを隔離し、悪用された場合にさらに攻撃を開始する能力を制限するための取り組みです。これは、次のイメージで示されています。攻撃は仮想マシンを壊し、別のホストインスタンスに拡張することはできません。
SELinux では、MAC (Mandatory Access Control) の実装で、仮想インスタンスにプラグ可能なセキュリティーフレームワークを導入しました。sVirt フレームワークでは、ゲストとそのリソースに一意のラベルを付けることができます。ラベルを付けたら、異なるゲスト間のアクセスを拒否できるルールを適用できます。