強制アクセス制御【MAC】Mandatory Access Control
概要

通常のアクセス制御では、ファイルの所有者が他者への権限付与や変更を自由に行える。これを「任意アクセス制御」(DAC:Discretionary Access Control)という。強制アクセス制御では所有者であっても権限を任意に変更できず、組織全体のポリシーが常に優先される。
この方式では、利用者や実行プログラムなどのアクセス主体と、ファイルやデータベースなどのアクセス先の双方にセキュリティラベルが付与される。アクセスの可否はラベルの組み合わせとポリシーの定義によって決まる。
例えば、利用者のクリアランスが対象ファイルの機密レベルを下回る場合は読み取りが拒否される。書き込みにも別の条件を設けることで、機密情報が低い機密区分へ流出することを防ぐ仕組みも実装できる。アクセスの判断はシステムが自動的に行い、利用者の意思で変更することはできない。
高い安全性が確保できる一方、運用負担も大きい。利用者やデータに適切なラベルを設定し、継続的に管理しなければならないため、導入と保守のコストは任意アクセス制御に比べて相応に大きくなる。業務上必要な情報共有であってもポリシーに適合しなければ拒否されるため、柔軟な運用が難しい場面もある。一般的な企業システムでは「役割ベースアクセス制御」(RBAC:Role-based Access Control)などと組み合わせて利用されることも多い。
もともとは軍や政府機関における機密情報管理のために発展した概念であり、中央省庁や金融機関、医療機関の情報システムなどで採用されてきた。近年ではLinuxカーネルの「SELinux」や「AppArmor」のように、汎用OSの保護機構として組み込まれるようになってきており、Webサーバやデータベースのプロセスが攻撃者に侵害された場合にもポリシーの範囲を超えた操作を防ぐ手段として活用されている。