EN JA
MAC_MLS(4)
MAC_MLS(4) FreeBSD Kernel Interfaces Manual MAC_MLS(4)

名称

mac_mlsマルチレベルセキュリティ機密性ポリシ

書式

利用者のカーネルに MLS をコンパイルするには、次の行をカーネル設定ファイルに入れます:

options MAC
options MAC_MLS

代わりに、次の行を利用者のカーネル設定ファイルに入れて、ブート時に MLS モジュールをロードします:

options MAC

loader.conf(5) 中に:

mac_mls_load="YES"

解説

mac_mls ポリシモジュールはマルチレベルセキュリティ、または、厳格な情報フローポリシを用いる機密性に基づくサブジェクトとオブジェクトの間のアクセスを制御する、 MLS モデルを実装します。システムの各サブジェクトとオブジェクトには、それに関連している MLS ラベルがあります。各サブジェクトの MLS ラベルはクリアランス (認可) レベルに関する情報を含み、各オブジェクトの MLS ラベルは分類に関する情報を含んでいます。

MLS では、すべてのシステムのサブジェクトとオブジェクトは機密性ラベルに割り当てられ、感度レベルと 0 以上のコンパートメント (区画) で構成されています。全体的に、これらのラベル要素は、順序を記述している優性演算子に基づいた秘密性保護と共に、すべてのラベルが半順序に置かれるのを可能にします。感度レベルは、より高い値がより高い感度レベルを反映している状態で、 0 と 65535 の間の値として表現されます。コンパートメント (区画) フィールド 1 から 256 まで番号が付けれられた、最大 256 の構成要素のセットとして表現されます。完全なラベルは感度とコンパートメント (区画) 要素の両方で構成されます。

通常のラベルで、優性はより高いか等しいアクティブな感度レベルを持っているか、または、少なくともそれが比較されているラベルのようにすべての同じコンパートメント (区画) を持っている、ラベルとして定義されます。ラベル比較に関しては、“ lower”はそれが比較されているラベルによって優性であると定義され、“ higher”はそれが比較されているラベルを優性であると定義され、そして“ equal”はお互いに優性要求を満たすことができる両方のラベルであると定義されます。

3 つの特別なラベル値が存在しています:

ラベル 比較
mls/low 他のすべてのラベルによって優性となる
mls/equal 他のすべてのラベルと等しい
mls/high 他のすべてのラベルが優性である

mls/equal”ラベルは MLS セキュリティポリシの実施が望まれていないサブジェクトとオブジェクトに適用されます。

MLS モデルは次の基本的な制限を実施します:

  • クリアランス (認可) レベルが観測を試みているオブジェクトのクリアランスレベルより低いなら、サブジェクは別のサブジェクのプロセスを観測しないかもしれません。
  • サブジェクトは、適切なクリアランス (認可) なしでオブジェクトを読み込まない、書き込まない、またはそうでなければ、観測しないかもしれません (例えば、サブジェクトは、分類ラベルがそれ自身のクリアランスラベルを優性するオブジェクトを観測しないかもしれません)。
  • サブジェクトはそれ自身のクリアランスレベルより低い分類レベルでオブジェクトに書き込まないかもしれません。
  • まるで MLS 保護が適切な位置にないかのようにクリアランスレベルがオブジェクトの分類レベルと等しいなら、サブジェクトは、オブジェクトを読み込んで、書き込むかもしれません。

これらの規則は、より低いクリアランスのサブジェクトが分類された情報の秘密性を保護するためにクリアランスレベルを超えて分類されたアクセス情報を獲得すること、より高いクリアランスのサブジェクトが偶然または悪意がある情報の漏えいを防ぐためにより低い分類のオブジェクトに書き込むことから、そして、より低いクリアランスのサブジェクトが全体でより高いクリアランスのサブジェクトを観測することから、防ぎます。伝統的な信頼のあるオペレーティングシステムでは、MLS 秘密性モデルは Trusted Code Base (TCB) を保護するために、 Biba ビバ整合性モデル ( mac_biba(4)) と合わせて使用されます。

ラベル形式

ほとんどすべてのシステムオブジェクトは、効果、アクティブラベル要素、オブジェクトの分類の反映、またはオブジェクトに含まれたデータの分類でタグ付けされます。一般的に、オブジェクトラベルは次の形式で表現されます:

mls/ grade: compartments

例えば:

mls/10:2+3+6 
mls/low

サブジェクトラベルは次の 3 つのラベル要素から成ります: 効果的 (アクティブ) ラベル、さらに一連の利用可能なラベル。この範囲は 2 つの規則正しい MLS ラベル要素を使用して表現され、プロセスで設定されるとき、アクティブラベルを範囲のローエンドへの大きいか等しい整合性、および範囲のハイエンドへのより少ないか等しい整合性の任意のラベルに変更するプロセスを許可します。一般的に、サブジェクトラベルは次の形式で表現されます:

mls/ effectivegrade: effectivecompartments( lograde: locompartments-
higrade: hicompartments)

例えば:

mls/10:2+3+6(5:2+3-20:2+3+4+5+6) 
mls/high(low-high)

有効範囲ラベルはそれらの要素に関する次の要求を満たさなければなりません:

rangehigheffectiverangelow

範囲がある 1 つのオブジェクトのクラスが現在存在して、ネットワークは接続します。 (訳注: 意味不明。) ネットワークインタフェースの場合は、有効なラベル要素はインタフェース上で受信されるパケットのデフォルトラベルを参照し、範囲はインタフェース上で送信されるパケットの受け付け可能なラベルの範囲を表します。

実行時設定

次の sysctl(8) MIB はこの MAC ポリシの実施を微調整するために利用可能です。
security.mac.mls.enabled
MLS 秘密性ポリシの実施を有効にします。 (デフォルト: 1)。
security.mac.mls.ptys_equal
作成するときに“ mls/equal”として pty(4)s をラベル付けします。 (デフォルト: 0)。
security.mac.mls.revocation_enabled
ラベルがサブジェクトより感度がよいレベルに変更されるなら、オブジェクトへのアクセスを無効にします。 (デフォルト: 0)。

実装に関する注

現在 mac_mls ポリシはインタフェース MLS ラベルをネットワークで変更するためにスーパユーザ状態 ( suser(9)) を当てにしています。結局のところ、これはなくなりますが、現在障害となっており、スーパユーザが MLS 保護を迂回させることを許可します。

歴史

mac_mls ポリシモジュールは、 FreeBSD 5.0 ではじめて登場し、 TrustedBSD プロジェクトによって開発されました。

作者

このソフトウェアは、 DARPA CHATS 研究プログラムの一環として、 DARPA/SPAWAR 契約 N66001-01-C-8035 (“CBOSS”) の下で Network Associates Laboratories, the Security Research Division of Network Associates Inc. によって FreeBSD プロジェクトに寄贈されました。

バグ

製品使用のための適切性に関しては、 mac(9) を参照してください。 TrustedBSD MAC フレームワークは FreeBSD では実験的扱いとみなされます。

MAC フレームワークデザインはルートユーザの封じ込めをサポートすることを目的としていますが、現在すべての攻撃チャネルがエントリポイントチェックで保護されるわけではありません。悪意がある特権ユーザから防御するために、分離して MAC フレームポリシをそのようなものとして信頼するべきではありません。

December 1, 2002 FreeBSD