日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
MAC(9) FreeBSD カーネル開発者マニュアル MAC(9) 名称 mac -- TrustedBSD 強制的アクセス制御 (Mandatory Access Control) フレーム ワーク 書式 #include <sys/types.h> #include <sys/mac.h> カーネル設定ファイルで: options MAC options MAC_DEBUG 解説 はじめに TrustedBSD の強制的アクセス制御フレームワークは、ダイナミックに導入された システムセキュリティモジュールがシステムセキュリティの機能性を変更するこ とを許可します。これは、伝統的なラベル付けされた強制的アクセス制御モデル を含む、さまざまな新しいセキュリティサービスをサポートするために使用する ことができます。フレームワークは、制御点とオブジェクトの作成をアクセスす ることが特に尊重されるので、様々なカーネルサービスをサポートするコードに よって呼び出さなければならない、ひと続きのエントリポイントを提供します次 に、フレームワークは、それらの MAC API エントリポイントでセキュリティの振 る舞いを変更する機会をそれらに提供するためにセキュリティモジュールを呼び 出します。API (通常のカーネルサービス) のコンシューマ (消費者) とセキュリ ティモジュールの両方は、特に (ロックのような) 同期プリミティブを尊重す る、API の呼び出しのセマンティクスを承知していなければなりません。 フレームワークによってサポートカーネルオブジェクト MAC フレームワークは、プロセス資格証明、vnodes、devfs_dirents、マウントポ イント、ソケット、mbufs、bpf 記述子、ネットワークインタフェース、IP フラ グメント (断片) キュー、およびパイプを含んで、カーネル内のさまざまなタイ プのオブジェクト上のラベルを管理します。struct label によって表されるカー ネルオブジェクトに関するラベルデータは、ポリシを気付きません、そしてポリ シモジュールによって適していると決められた方法で使用されるかもしれませ ん。 コンシューマのための API MAC API は、ここに明確に文書化することができないくらい広範囲のエントリポ イントの大きいセットを提供します。一般的に、これらのエントリポイントは、 アクセス制御チェックか他の MAC 関連の操作、活動を許可する 1 つ以上のサブ ジェクト (資格証明) を受け付ける、実行される操作での 1 組のオブジェクト、 と要求される操作のタイプに関する情報を提供する 1 組の操作引数を表します。 コンシューマのためのロック MAC API のコンシューマは、それぞれの API エントリポイントのためのロック要 件を承知していなければなりません。一般的に、適切なロックは、MAC モジュー ルがアクセス制御目的のためのオブジェクトの種々のアスペクト (形状) を利用 することができるように、呼び出しに渡される各サブジェクトまたはオブジェク ト上に保持されなければなりません。例えば、vnode ロックは、MAC フレーム ワークとモジュールがアクセス制御の目的のために vnode からセキュリティラベ ルと属性を検索するために、頻繁に必要とされます。同様に、呼び出し側は参照 が MAC API に渡されたどんなサブジェクトかオブジェクトの参照カウントセマン ティクスを承知していなければなりません。すべての呼び出しは、オブジェクト への有効な参照が (潜在的に長い) MAC API 呼び出しの持続時間のために保持さ れることを必要とします。いくつかの状況の下では、オブジェクトは、共有され るか、または排他的な方法で保持されなければなりません。 モジュールの著者のための API 各モジュールは、初期化と破壊 API エントリポイント、さまざまなオブジェクト 作成と破壊の呼び出し、と大きなセットのアクセス制御チェック点を含んで、モ ジュールが実装することを選択する MAC API 操作を記述する構造体をエクスポー トします。また、将来、監査エントリポイントも追加されるでしょう。モジュー ルの作者は、エントリポイントの部分集合、記述構造の API 関数ポインタを NULL に設定、フレームワークがモジュールへの呼び出しを避けることの許可を実 装するだけを選ぶかもしれません、 モジュールの著者のためのロック モジュールの作家は、それらが実装するエントリポイントのロックセマンティク スを承知していなければなりません。MAC API エントリポイントには、各引数の ための特別ロックか、または、参照カウントセマンティクスがあり、モジュール は、ロックと参照カウントプロトコルに従わなければならないか、または (競合 条件、不適切なポインタ非参照などを含んで) さまざまな故障モードの危険にさ らさなければなりません。 また、MAC モジュールの作家は、よりグローバルなロック要件に違反するのを避 けるために慎重でなければならないように、グローバルなロック順序要件などの ように、MAC API エントリポイントがカーネルスタックの深部から頻繁に呼び出 されることを承知していなければなりません。例えば、それは、ポリシモジュー ルによって明確に維持して、順序付けられない追加オブジェクトをロックするた めに不適当であるかもしれません、またはポリシモジュールはそれらの追加オブ ジェクトに関連するグローバルな順序要件に違反するかもしれません。 最後に、MAC API モジュールの実装者は、MAC フレームワークを不適当に呼び戻 すことを避けるのに慎重でなければなりません: フレームワークは、ポリシモ ジュールのアタッチとデタッチの間の矛盾を防ぐためにロックを利用します。MAC API モジュールは、デッドロックか矛盾が起こるかもしれないシナリオを生成す ることを避けるべきです。 新しい MAC エントリポイントの追加 MAC API は、新しいサービスがカーネルに加えられように容易に拡張可能である ことを目的としています。ポリシが、システムのサブジェクトとオブジェクトを 普遍的に保護するための機会を保証する目的で、カーネル開発者がセキュリティ チェック、または関連サブジェクトかオブジェクト操作が新たに書かれたか、ま たは変更されたカーネルコードで生じるときの認識を維持することは重要です。 新しいエントリポイントは、ロックの順序とセマンティクスに関してどんな混乱 も防ぐために慎重に文書化されなければなりません。新しいエントリポイントを 導入するのは次の 4 つの異なった要素を必要とします: 操作引数を反映する新し い MAC API エントリを導入します。それらの MAC API エントリポイントを新し いか変更されたカーネルサービスの到るところに点在させます。MAC API フレー ムワークのフロントエンド実装を拡張します。そして、それらのポリシを一貫し て実施することができるように、新しいエントリをうまく利用するために適切な モジュールを変更します。 エントリポイント システムサービスとモジュールの作者は、MAC Framework API に関する情報のた めに FreeBSD Architecture Handbook を参照するべきです。 関連項目 acl(3), mac(3), posix1e(3), mac_biba(4), mac_bsdextended(4), mac_ifoff(4), mac_lomac(4), mac_mls(4), mac_none(4), mac_partition(4), mac_seeotheruids(4), mac_test(4), ucred(9), vaccess(9), vaccess_acl_posix1e(9), VFS(9) The FreeBSD Architecture Handbook, https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/arch-handbook/. 歴史 TrustedBSD MAC Frameworkは FreeBSD 5.0 ではじめて登場しました。 作者 このマニュアルページは Robert Watson によって書かれました。このソフトウェ アは DARPA CHATS 研究プログラムの一環として、DARPA/SPAWAR 契約 N66001-01-C-8035 (``CBOSS'') の下で Network Associates Laboratories, the Security Research Division of Network Associates, Inc. によって FreeBSD プロジェクトに寄贈されました。 TrustedBSD MAC Framework は、Robert Watson によって設計され、Network As sociates Laboratories Network Security (NETSEC), Secure Execution Envi ronment (SEE) と Adaptive Network Defense 研究グループによって実装されま した。CBOSS Project に貢献する Network Associates Laboratory スタッフは次 に挙げられます (アルファベット順で): Lee Badger, Brian Feldman, Hrishikesh Dandekar, Tim Fraser, Doug Kilpatrick, Suresh Krishnaswamy, Adam Migus, Wayne Morrison, Andrew Reisse, Chris Vance と Robert Watson。 下請け契約のスタッフは次に挙げられます: Chris Costello, Poul-Henning Kamp, Jonathan Lemon, Kirk McKusick, Dag-Erling Sm/rgrav。 追加の貢献者は次に挙げられます: Pawel Dawidek, Chris Faulhaber, Ilmar Habibulin, Mike Halderman, Bosko Milekic, Thomas Moestl, Andrew Reiter と Tim Robbins。 バグ MAC Framework の設計はルートユーザの封じ込めをサポートることを目的として いますが、現在、すべての攻撃チャネルはエントリポイントチェックによって保 護されるというわけではありません。そのようなものとして、悪意がある特権 ユーザに対して保護するために、分離して MAC Framework ポリシを当てにするべ きではありません。 FreeBSD 13.2 July 25, 2015 FreeBSD 13.2