MAC_LOMAC(4) | FreeBSD Kernel Interfaces Manual | MAC_LOMAC(4) |
名称
mac_lomac — Low-watermark (低いウォータマーク (水位標)) Mandatory Access Control (強制的アクセス制御) データ整合性ポリシ書式
利用者のカーネルに LOMAC をコンパイルするには、次の行をカーネル設定ファイルに入れます:
options MAC_LOMAC
代わりに、次の行を利用者のカーネル設定ファイルに入れて、ブート時に LOMAC モジュールをロードします:
と loader.conf(5) 中に:
mac_lomac_load="YES"
解説
mac_lomac ポリシモジュールは LOMAC 整合性モデルを実装します。そのモデルは、浮動ラベルを通してサブジェクトの降格と一緒に情報フローポリシを用いてシステムオブジェクトとサブジェクトの整合性を保護します LOMAC では、すべてのシステムサブジェクトとオブジェクトはそれらのタイプによって 1 つ以上の階層的グレードを作り上げる、整合性ラベルが割り当てられます一緒に、これらのラベル要素は、順序を記述した優先演算子に基づいた情報フロー保護と降格決定ですべてのラベルが半順序で置かれるのを許します。階層的グレードの複数のフィールドは、より高い値が、より高い整合性を反映する、 0 と 65535 の間の値として表現されます。3 つの特別なラベル構成値が存在しています:
ラベル | 比較 |
low |
全ての他のラベルが優先される |
equal |
全ての他のラベルと等しい |
high |
全ての他のラベルより優先される |
“ high
” (高い) ラベルは全体としてシステムの整合性に影響するシステムオブジェクトに割り当てられます。“ equal
” (等しい) ラベルは、特定のサブジェクトとオブジェクトが LOMAC 保護によって免除されることを示すために使用されます。例えば、“ lomac/equal(equal-equal)
”のラベルはシステムで管理上の何かを再ラベルするのに使用されるサブジェクトで使用されるかもしれません。
ほとんどすべてのシステムオブジェクトは、単一で、アクティブラベル要素、オブジェクトの整合性、またはオブジェクトに含まれたデータの整合性を反映して、タグ付けをされます。ファイルシステムオブジェクトは、ディレクトリに作成される新しいファイルのための継承される整合性レベルか、または実行形式を実行のときにサブジェクトによって仮定される代替のラベルを決定する追加の補助ラベルを含みます。一般的に、オブジェクトラベルは次の形式で表示されます:
lomac/
grade[ auxgrade]
例えば:
lomac/10[2] lomac/low
サブジェクトラベルは次の 3 つのラベル要素から成ります: 利用可能なラベルの範囲と同様な、単一の (アクティブな) ラベル。この範囲は、プロセスで設定されるとき、そのアクティブラベルを範囲のローエンドへの大きいか等しい整合性と、範囲のハイエンドへの少ないか等しい整合性の任意のラベルに変更するプロセスを許す、 2 つの順序付けられた LOMAC ラベル要素を使って表示されます。一般的に、サブジェクトラベルは次の形式で表示されます:
lomac/
singlegrade( lograde- higrade)
オブジェクトの変更は次の比較によってアクセスが制限されます:
subject:: higrade ≥ target-object:: grade
サブジェクトの変更は、目標のサブジェクトのただ一つのグレードが比較に取り入れられた唯一の要素であるのと同じです。
次の比較が真であるときに、サブジェクトの降格が起こります:
subject:: singlegrade > object:: grade
降格が起こるとき、サブジェクトの singlegrade と higrade は必要なら、 lograde と同様に、オブジェクトのグレードに減少されます。減少されたサブジェクトの許可に加えて、降格が起こるとき、メモリス空間でオープンされた共有 mmap(2) オブジェクトは、次の sysctl(3) 変数にしたがって無効にされます:
- security.mac.lomac.revocation_enabled
- security.mac.enforce_vm
- security.mac.mmap_revocation
- security.mac.mmap_revocation_via_cow
ファイルの実行のときに、実行形式に補助のラベルがあり、 lograde- higrade の現在の範囲中にそのラベルがあるなら、それはすぐにサブジェクトによって仮定されます。この後、降格は、目標の実行形式でちょうど他の読み込み操作のように実行されます。補助のラベルの使用のために、プログラムは、再びそれを上げる能力を保有している間に、より低い有効な整合性レベルで始めて実行されます。
これらの規則は、情報の流れを防ぐことによって、より高い整合性サブジェクトの振る舞いに影響を及ぼすより低いの整合性のサブジェクトを防ぎ、制御では、それらのオブジェクトに従って高い整合性オブジェクトか、または高い整合性サブジェクトのどちらかを変更するために低い整合性サブジェクトの許容から防ぎます。 LOMAC 整合性ポリシは、オペレーティングシステムの不正、および、攻撃者より高い整合性としてマークされるなら利用者データの不正の両方を防ぐことの観点から多くの環境で適切となります。
LOMAC セキュリティモデルは、いろいろ mac_biba(4) と mac_mls(4) のものと全く同じです。これについてのより多くのバックグラウンド情報はそれぞれのマニュアルページで見つけることができます。
関連項目
mmap(2), sysctl(3), mac(4), mac_biba(4), mac_bsdextended(4), mac_ifoff(4), mac_mls(4), mac_none(4), mac_partition(4), mac_portacl(4), mac_seeotheruids(4), mac_test(4), mac(9)歴史
mac_lomac ポリシモジュールは、 FreeBSD 5.0 ではじめて登場し、 TrustedBSD プロジェクトによって開発されました。作者
このソフトウェアは、 DARPA CHATS 研究プログラムの一環として、 DARPA/SPAWAR 契約 N66001-01-C-8035 (“CBOSS”) の下で Network Associates Labs, the Security Research Division of Network Associates Inc. によって FreeBSD プロジェクトに寄贈されました。February 25, 2012 | FreeBSD |