強制アクセス制御(MAC)とは:仕組み、モデル、実装例
強制アクセス制御(MAC)は、個々の利用者ではなくシステムポリシーが、主体(プロセスや利用者)と客体(ファイルやリソース)の間で許可される操作を決定する、カーネル強制型のセキュリティモデルです。
概要
強制アクセス制御(MAC)は、コンピュータセキュリティで用いられるシステムレベルのアクセス制御方式であり、誰または何がリソースにアクセスできるかについて、組織全体に適用される規則を強制します。リソース所有者が権限を設定できる任意アクセス制御モデルとは異なり、MACではラベルとポリシーを中央で割り当て、オペレーティングシステムのカーネルがすべてのアクセス判断を仲介する必要があります。この分野の概要については、コンピュータセキュリティの資料を参照してください。
MACの仕組み
MACでは、主体(利用者、プロセス)と客体(ファイル、デバイス、ソケット)の両方に、機密性ラベルや完全性レベルなどのセキュリティ属性が付与されます。主体が客体に対する操作を試みると、カーネルは有効なポリシーおよびラベルと照合して要求を評価し、その操作を許可または拒否します。強制は自動的に行われ、通常の利用者レベルのプロセスでは上書きできません。アクセス制御の仕組みについては、アクセス制御に関する文献を参照してください。
主な特徴
- 集中管理されたポリシー:管理者が、システム内のすべての主体に適用される規則を定義します。
- ラベリング:客体と主体に、分類区分(例:秘密、極秘、非機密)を付与します。
- カーネルによる仲介:回避を防ぐため、判断はオペレーティングシステムのカーネルによって強制されます。
- 非任意性:個々の利用者は、ポリシーが認める範囲を超えてアクセス権を付与できません。
歴史とモデル
MACの概念は、データの機密性と完全性に関する軍事・政府の要件に根ざしています。代表的な形式モデルには、機密性を重視するBell–LaPadulaモデル、完全性を重視するBibaモデル、およびラベル比較を一般化する格子ベースのモデルがあります。こうした形式的な考え方は、時を経てオペレーティングシステムやセキュアコンピューティングのプロジェクトにおける実用的な実装へ影響を与えました。歴史的・技術的な背景については、関連するOSセキュリティ資料を参照してください。
用途、実装、例
MACは、情報の流れを厳格に制御する必要がある場面で一般に利用されます。これには、政府・防衛システム、マルチテナントサーバー、重要インフラが含まれます。代表的な実装には、Linux上のSELinuxとAppArmor、FreeBSD上のTrustedBSD拡張機能、WindowsのMandatory Integrity Controlがあります。典型的な導入では、ネットワークデータへのラベル付け、サービスの分離、権限昇格の防止が行われます。実際の効果の例として、侵害されたWebサーバープロセスが機密ファイルを読み取ったり、他のサービスへ書き込んだりすることを防げます。
利点、制約、およびDACとの比較
- 利点:強力で一貫した強制により、人為的ミスや内部者による不正利用を減らします。
- 制約:ポリシーの設計と管理が複雑になることがあり、制限が厳しすぎると使いやすさを損なう場合があります。
- DACとの比較:任意アクセス制御(DAC)では所有者が権限を管理しますが、MACはその裁量を除くことで、システム全体のポリシー遵守を確保します。
導入に関する指針、ベストプラクティス、事例については、一般的なセキュリティガイドや、ベンダーおよびプロジェクトのページなどの実装固有の文書で追加情報を参照できます。
著者
AlegsaOnline.com 強制アクセス制御(MAC)とは:仕組み、モデル、実装例 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/61236