第6章 MLS (Multi-Level Security) の使用
Multi-Level Security (MLS) ポリシーは、米国のコミュニティーが最初に設計したクリアランスの レベル を使用します。MLS は、軍隊など、厳格に管理された環境での情報管理をベースにした、非常に限定的なセキュリティー要件を満たしています。
MLS の使用は複雑で、一般的なユースケースのシナリオには適切にマッピングされません。
6.1. Multi-Level Security (MLS)
Multi-Level Security (MLS) テクノロジーは、以下の情報セキュリティーレベルを使用して、データを階層に分類します。
- [lowest] Unclassified
- [low] Confidential
- [high] Secret
- [highest] Top secret
デフォルトでは、MLS SELinux ポリシーは機密レベルを 16 個使用します。
-
s0
は、最も機密レベルが低く、 -
s15
は、最も機密レベルが高くなります。
MLS は特定の用語を使用して機密レベルに対応します。
- ユーザーおよびプロセスは サブジェクト と呼ばれ、その機密レベルは クリアランス と呼ばれます。
- システムのファイル、デバイス、およびその他のパッシブコンポーネントは オブジェクト と呼ばれ、その機密レベルは 区分 と呼ばれます。
SELinux は Bell-La Padula Model (BLP) モデルを使用して、MLS を実装します。このモデルは、各サブジェクトおよびオブジェクトに割り当てられたラベルに基づいてシステム内で情報をフローする方法を指定します。
BLP の基本的な原則はNo read up (NRU)、no write down (NWD)で、自分の機密レベルと同じかそれ以下のファイルは読み取りだけでき、データは、低いレベルから高いレベルにしか流せず、反対方向には流せません。
MLS SELinux ポリシー (RHEL 上の MLS の実装) では、書き込み等価を使用した Bell-La Padula と呼ばれる修正済みの原則を適用します。つまり、ユーザーは自分の機密レベル以下のファイルを読み取ることができますが、書き込みは自分のレベルだけにしか不可能です。これにより、クリアランスが低いユーザーがコンテンツを Top secret ファイルに書き込めないようにします。
たとえば、デフォルトではクリアランスレベル s2
を持つユーザーには以下が適用されます。
-
機密レベルが
s0
、s1
、およびs2
のファイルを読み取ることができます。 -
機密レベルが
s3
以上のファイルを読み取ることはできません。 -
機密レベルが
s2
のファイルを変更できます。 -
機密レベルが
s2
以外のファイルは変更できません。
セキュリティー管理者は、システムの SELinux ポリシーを変更することで、この動作を調整できます。たとえば、ユーザーがより低いレベルでファイルを変更できるようにすることで、ファイルの機密レベルをユーザーのクリアランスレベルまで引き上げることができます。
実際には、ユーザーは通常、s1-s2
などの範囲のクリアランスレベルに割り当てられます。ユーザーは、自分の最大レベルよりも低い機密レベルのファイルの読み取りと、その範囲内の任意のファイルへの書き込みが可能です。
たとえば、デフォルトではクリアランス範囲が s1-s2
のユーザーには以下が適用されます。
-
機密レベル
s0
とs1
のファイルを読み取ることができます。 -
機密レベル
s2
以上のファイルを読み取ることはできません。 -
機密レベル
s1
のファイルを変更できます。 -
機密レベルが
s1
以外のファイルは変更できません。 -
自分のクリアランスレベルを
s2
に変更できます。
MLS 環境における非特権ユーザーのセキュリティーコンテキストは次のとおりです。
user_u:user_r:user_t:s1
ここでは、以下のようになります。
user_u
- SELinux ユーザーです。
user_r
- SELinux ロールです。
user_t
- SELinux タイプです。
s1
- MLS 機密レベルの範囲です。
システムは、MLS アクセス制御ルールと従来のファイルアクセスパーミッションを常に組み合わせます。たとえば、セキュリティーレベルが Secret のユーザーが、DAC (Discretionary Access Control) を使用して他のユーザーによるファイルへのアクセスをブロックした場合に、Top Secret のユーザーはそのファイルにアクセスできなくなります。セキュリティーのクリアランスが高くても、ユーザーはファイルシステム全体を自動的に閲覧できません。
トップレベルの許可があるユーザーは、マルチレベルのシステムで自動的に管理者権限を取得しません。システムに関するすべての機密情報にアクセスできる場合もありますが、これは管理者権限を持つこととは異なります。
さらに、管理者権限があっても機密情報にアクセスできるわけではありません。たとえば、root
としてログインした場合でも、Top secret 情報を読み込めません。
カテゴリーを使用して MLS システム内でアクセスをさらに調整できます。Multi-Category Security (MCS) を使用すると、プロジェクトや部門などのカテゴリーを定義でき、ユーザーは割り当てられたカテゴリーのファイルにしかアクセスできません。詳細は、Using Multi-Category Security (MCS) for data confidentiality を参照してください。