MAC_BIBA(4) | FreeBSD Kernel Interfaces Manual | MAC_BIBA(4) |
名称
mac_biba — Biba データ整合性ポリシ書式
利用者のカーネルに Biba をコンパイルするには、次の行をカーネル設定ファイルに入れます:
options MAC_BIBA
代わりに、次の行を利用者のカーネル設定ファイルに入れて、ブート時に Biba モジュールをロードします:
と loader.conf(5) 中に:
mac_biba_load="YES"
解説
mac_biba ポリシモジュールは、厳密な情報フローポリシの意味によってシステムオブジェクトとサブジェクトの整合性を保護する、Biba 整合性モデルを実装しています。 Biba では、すべてのシステムサブジェクトとオブジェクトは整合性ラベル、階層のグレードの構成、と非階層の構成要素に割り当てられます。同時に、これらのラベル要素は、順序を記述する優性演算子に基づいた情報フロー保護と共に、すべてのラベルが半順序で置かれることを許可します。階層グレードフィールドは、より高い値がより高い整合性を反映している状態で、 0 と 65535 の間の値として表現されます。非階層コンパートメント (区画) フィールドは 0 から 255 まで番号が付けられた一組の最大 256 のコンポーネントとして表現されます。完全なラベルは階層と非階層の両方の要素から成ります。3 つの特別なラベル値が存在しています:
ラベル | 比較 |
biba/low |
他のすべてのラベルより低い |
biba/equal |
他のすべてのラベルと等しい |
biba/high |
他のすべてのラベルより高い |
“ biba/high
”ラベルは全体としてシステムの整合性に影響するシステムオブジェクトに割り当てられます。“ biba/equal
”ラベルは、Biba 保護を免除される特定のサブジェクトかオブジェクトを示すために使用されます。これらの特別なラベル値はどんな区画を含むかは指定されませんが、ラベル比較では、“ biba/high
”はすべての区画を含むように、“ biba/equal
”は比較されているもう片方のラベルと同じ区画を含むように、および“ biba/low
”は何も含まないように見えます。
一般的に、Biba アクセス制御は次のモデルを取ります:
- オブジェクトと同じ整合性レベルにおけるサブジェクトは、まるで Biba 保護が適当な位置にないかのように、オブジェクトから読み込み、オブジェクトに書き込むことができます。
- オブジェクトより高い整合性レベルにおけるサブジェクトは、オブジェクトに書き込むことができますが、オブジェクトを読み込むことはできません。
- オブジェクトより低い整合性レベルにおけるサブジェクトは、オブジェクトを読み込むことができますが、オブジェクトに書き込むことができません。
- サブジェクトとオブジェクトラベルが半順序で比較されないなら、すべてのアクセスは制限されます。
これらの規則は、情報の流れを防ぐことによって、より高い整合性サブジェクトの振る舞いに影響を及ぼすより低いの整合性のサブジェクトを防ぎ、制御では、それらのオブジェクトに従って高い整合性オブジェクトか、または高い整合性サブジェクトのどちらかを変更するために低い整合性サブジェクトの許容から防ぎます。 Biba 整合性ポリシは、オペレーティングシステムの不正、および、攻撃者より高い整合性としてマークされるなら利用者データの不正の両方を防ぐことの観点から多くの環境で適切となります。伝統的に信頼されているオペレーティングシステムで、 Biba 整合性モデルは、Trusted Code Base (TCB) を保護するために使用されます。
LOMAC がより低い整合性オブジェクトをより高い保全性サブジェクトによるアクセスを許可しますが、整合性規則が違反されることを防ぐためにサブジェクトの整合性レベルを降格することを除いては、Biba 整合性モデルは、 mac_lomac(4) と同様です。 LOMAC が浮動ラベルポリシであるのに対して、すべてのサブジェクトとオブジェクトラベル変化が明白であるので、 Biba は固定ラベルポリシです。
優性オペレータとアクセス規則は情報の上方の流れよりむしろ情報の下方の流れを防いで逆にされることを除いて、 Biba 整合性モデルはまた、 mac_mls(4) と同様です。 Multi-Level Security (MLS) はサブジェクトとオブジェクトの整合性よりむしろ秘密性を保護します。
ラベル形式
ほとんどすべてのシステムオブジェクトは、有効、活性ラベル要素、オブジェクトの整合性、またはオブジェクトに含まれたデータの整合性を反映して、タグ付けをされます。一般的に、オブジェクトラベルは次の形式で表現されます:
biba/
grade: compartments
例えば:
biba/10:2+3+6 biba/low
サブジェクトラベルは 3 つのラベル要素から成ります: 利用可能なラベルの範囲と同様に、有効な (アクティブな) ラベル。この範囲は 2 つの順序付けられた Biba ラベル要素を使用して表現され、プロセスで設定されたとき、アクティブなラベルを範囲の下位へのより大きいか等しい整合性および範囲の上位へのより少ないか等しい整合性の任意のラベルに変更することがプロセスに許されます。一般的に、サブジェクトラベルは次の形式で表現されます:
biba/
effectivegrade: effectivecompartments( lograde: locompartments-
higrade: hicompartments)
例えば:
biba/10:2+3+6(5:2+3-20:2+3+4+5+6) biba/high(low-high)
有効に分類されたラベルはそれらの要素に関する次の要求を満たさなければなりません:
rangehigh ≥ effective ≥ rangelow
範囲がある 1 つのオブジェクトのクラスが現在存在して、ネットワークは接続します。 (訳注: 意味不明。) ネットワークインタフェースの場合は、有効なラベル要素はインタフェース上で受信されるパケットのデフォルトラベルを参照し、範囲はインタフェース上で送信されるパケットの受け付け可能なラベルの範囲を表します。
関連項目
mac(4), mac_bsdextended(4), mac_ifoff(4), mac_lomac(4), mac_mls(4), mac_none(4), mac_partition(4), mac_portacl(4), mac_seeotheruids(4), mac_test(4), maclabel(7), mac(9)歴史
mac_biba ポリシモジュールは、 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 プロジェクトに寄贈されました。November 18, 2002 | FreeBSD |