MAC(4) | FreeBSD Kernel Interfaces Manual | MAC(4) |
名称
mac — 強制的アクセス制御 (Mandatory Access Control)書式
options MAC解説
紹介
強制的アクセス制御 (Mandatory Access Control) または MAC、フレームワークはロード可能なセキュリティポリシアーキテクチャに備えることによって、管理者が細かくシステムセキュリティを制御できます。本来の性質のために、MAC セキュリティポリシがお互いとベースシステムポリシを比べてアクセスを制限するだけであるかもしれないことに注意することは重要です。それらはファイルパーミッションとスーパユーザのチェックのような、伝統的な UNIX セキュリティ条件を上書きすることができません。現在、次の MAC ポリシが FreeBSD とともに出荷されています:
名前 | 説明 | ラベル | ロード時 |
mac_biba(4) | Biba 整合性ポリシ | yes | boot only |
mac_bsdextended(4) | ファイルシステムファイア | no | any time |
ウォール | |||
mac_ifoff(4) | インタフェース沈黙 | no | any time |
mac_lomac(4) | 低いウォータマーク MAC | yes | boot only |
ポリシ | |||
mac_mls(4) | 機密性ポリシ | yes | boot only |
mac_none(4) | サンプル no-op ポリシ | no | any time |
mac_partition(4) | プロセスパーティション | yes | any time |
ポリシ | |||
mac_portacl(4) | ポート bind(2) アクセス制御 | no | any time |
mac_seeotheruids(4) | See-other-UID ポリシ | no | any time |
mac_test(4) | MAC テストポリシ | no | any time |
MAC ラベル
各システムサブジェクト (プロセス、ソケットなど) と各システムオブジェクト (ファイルシステムオブジェクト、ソケットなど) は MAC ラベルをサポートすることができます。 MAC ラベルはアクセスを与えられた操作のためのアクセス制御の決定を行う際に考慮に入れられた任意の形式でデータを含んでいます。システムサブジェクトとオブジェクト上のほとんどの MAC ラベルはシステム管理者によって直接的または間接的に変更することができます。与えられたポリシのラベルのための形式はラベルが付けられたオブジェクトまたはサブジェクトのタイプに応じて異なります。 MAC ラベルのための形式に関する詳しい情報は maclabel(7) マニュアルページで見つけることができます。UFS2 ファイルシステムのための MAC サポート
デフォルトでは、ラベルが付けられた MAC ポリシのファイルシステム実施は、特定のファイルシステムですべてのファイルのためのアクセス制御の決定を行うために、単一のシステムラベル ( MAC ラベル を参照) に依存します。いくつかのポリシで、管理者はこの設定で機能を最大限に利用できないかもしれません。特定のファイルシステムのための個別的にラベルが付けられたファイルのサポートを有効にするために、“multilabel”フラグはファイルシステムで有効にされなければなりません。“multilabel”フラグを設定するためには、シングルユーザモードに落として、ファイルシステムを unmount して、それから、次のコマンドを実行します:
tunefs -l enable filesystem
ここで、 filesystem は ( fstab(5) 中の) マウントポイントまたはマルチラベルのサポートを有効にするファイルシステムに対応する ( /dev 中の) 特殊ファイルのいずれかです。
ポリシ強制
ポリシ実施はシステムの次の領域に分割されます:- ファイルシステム
- ファイルシステムのマウント、ディレクトリの変更、ファイルの変更など
- KLD
- ロードされたカーネルモジュールにおける統計値のロード、アンロードと検索
- ネットワーク
- ネットワークインタフェース、 bpf(4), パケット配送と送信、インタフェースの設定 ( ioctl(2), ifconfig(8))
- パイプ
- pipe(2) オブジェクトにおける作成と操作
- プロセス
- デバッグ (例えば、 ktrace(2)), プロセスの可視性 ( ps(1)), プロセス実行 ( execve(2)), シグナル処理 ( kill(2))
- ソケット
- socket(2) オブジェクトにおける作成と操作
- システム
- カーネル環境 ( kenv(1)), システムアカウンティング ( acct(2)), reboot(2), settimeofday(2), swapon(2), sysctl(3), nfsd(8) 関連の操作
- VM (仮想メモリ)
- mmap(2) されたファイル
MAC ラベルの設定
コマンドラインから、それぞれのタイプのシステムオブジェクトには、 MAC ポリシラベルを設定して変更するためのそれ自体の手段があります。サブジェクト/オブジェクト | ユーティリティ |
ファイルシステムオブジェクト | setfmac(8), setfsmac(8) |
ネットワークインタフェース | ifconfig(8) |
TTY (ログインクラスで) | login.conf(5) |
ユーザ (ログインクラスで) | login.conf(5) |
さらに、 su(1) と setpmac(8) ユーティリティは、シェルの現在のラベルより異なったプロセスラベルでコマンドを実行するために使用することができます。
関連項目
mac(3), mac_biba(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), login.conf(5), maclabel(7), getfmac(8), getpmac(8), setfmac(8), setpmac(8), mac(9) Mandatory Access Control, The FreeBSD Handbook, http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/mac.html.歴史
mac 実装は、 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 プロジェクトに寄贈されました。バグ
適切な製品の使用に関しては mac(9) を参照してください。 TrustedBSD MAC フレームワークは FreeBSD では実験的扱いとみなされます。MAC フレームワークデザインはルートユーザの封じ込めをサポートすることを目的としていますが、現在すべての攻撃チャネルがエントリポイントチェックで保護されるわけではありません。悪意がある特権ユーザから防御するために、分離して MAC フレームポリシをそのようなものとして信頼するべきではありません。
October 30, 2007 | FreeBSD |