Red Hat Training

A Red Hat training course is available for RHEL 8

第7章 データの機密性に MCS (Multi-Category Security) を使用する

MCS を使用すると、データのカテゴリーを分類し、特定のプロセスやユーザーに特定のカテゴリーへのアクセスを許可することで、システムのデータの機密性を高めることができます。

7.1. Multi-Category Security (MCS)

MCS (Multi-Category Security) は、プロセスおよびファイルに割り当てられたカテゴリーを使用するアクセス制御メカニズムです。その後、同じカテゴリーに割り当てられているプロセスのみがファイルにアクセスできます。MCS の目的は、システムでデータの機密性を維持することです。

MCS カテゴリーは、c0 から c1023 までの値で定義されますが、“Personnel"、“ProjectX"、または “ProjectX.Personnel" のように、カテゴリーごと、またはカテゴリーの組み合わせに対して、テキストラベルを定義することもできます。その後、mcstrans (MCS Translation Service) では、カテゴリー値を、システムの入出力内の適切なラベルに置き換え、カテゴリー値の代わりにこれらのラベルを使用できるようにします。

ユーザーは、カテゴリーに割り当てられているときに、割り当てられているカテゴリーのいずれかでファイルにラベルを付けることができます。

MCS は単純な原則に基づいて動作します。ファイルにアクセスするには、ファイルに割り当てられたすべてのカテゴリーにユーザーを割り当てる必要があります。MCS チェックは、通常の Linux DAC (Discretionary Access Control) ルールおよび SELinux TE (Type Enforcement) ルールの後に適用されるため、既存のセキュリティー設定をさらに制限する必要があります。

Multi-Level Security 内の MCS

MCS は、単独で非階層システムとして使用することも、マルチレベルセキュリティー (MLS) と組み合わせて、階層システム内の非階層レイヤーとして使用することもできます。

MLS 内の MCS の例を以下に示します。ファイルが以下のように分類されます。

表7.1 セキュリティーレベルとカテゴリーの組み合わせの例

セキュリティーレベル

カテゴリー

未指定

プロジェクト X

プロジェクト Y

プロジェクト Z

Unclassified

s0

s0:c0

s0:c1

s0:c2

Confidential

s1

s1:c0

s1:c1

s1:c2

Secret

s2

s2:c0

s2:c1

s2:c2

Top secret

s3

s3:c0

s3:c1

s3:c2

注記

範囲が s0: c0.1023 のユーザーは、DAC や Type Enforcement ポリシールールなどの他のセキュリティーメカニズムでアクセスが禁止されていない限り、レベル s0 のすべてのカテゴリーに割り当てられたすべてのファイルにアクセスできます。

ファイルまたはプロセスのセキュリティーコンテキストは、以下の組み合わせになります。

  • SELinux ユーザー
  • SELinux ロール
  • SELinux タイプ
  • MLS 機密レベル
  • MCS カテゴリー

たとえば、MLS/MCS 環境で、機密レベル 1 およびカテゴリー 2 にアクセスできる非特権ユーザーには、以下の SELinux コンテキストを持つことができます。

user_u:user_r:user_t:s1:c2