MAC (Mandatory Access Control)(マック)
英語表記: MAC (Mandatory Access Control)
概要
MAC(Mandatory Access Control)、日本語で「強制アクセス制御」と呼ばれるこの仕組みは、OSが提供するセキュリティ機構の中でも、非常に厳格なアクセス制御を実現するための手法です。これは、システム管理者やセキュリティポリシーによってあらかじめ設定されたルールに基づき、ユーザーの意思や設定に関係なく、OSカーネルレベルでアクセスを強制的に制限する機能です。この厳格な制御は、OSの基本機能である「アクセス制御」の最も強固な形態として位置づけられており、特に高い機密性が要求される環境で必須とされています。
詳細解説
OSセキュリティ機構におけるMACの重要性
私たちが利用する現代のOSは、単にプログラムを実行し、メモリやリソースを管理するだけでなく、システムやデータを保護するための強固な「OS セキュリティ機構」を備えています。MACは、このセキュリティ機構の中核をなす「アクセス制御」の仕組みの一つであり、情報漏洩や改ざんを防ぐための最終防衛線として機能します。
アクセス制御の方式は、大きく「任意アクセス制御(DAC: Discretionary Access Control)」と「強制アクセス制御(MAC)」に分類されますが、この二つは制御の主体が根本的に異なります。
DACが、ファイル所有者など「ユーザーの裁量(任意)」でアクセス権を設定できるのに対し、MACはシステム全体で統一されたセキュリティポリシーを「強制」します。このため、ユーザーが権限を誤って設定し直したり、悪意を持って第三者にアクセスを許可しようとしたりしても、MACのポリシーがそれを上書きし、OSカーネルレベルでアクセスを阻止します。
MACの仕組み:セキュリティラベルによる厳格な管理
MACを機能させるための基本的な要素は、「主体(Subject)」と「客体(Object)」、そして「セキュリティラベル」です。
- 客体(Object): 保護すべきリソース(ファイル、ディレクトリ、データベース、メモリ領域など)を指します。
- 主体(Subject): アクセスを試みるユーザーやプロセス、プログラムを指します。
- セキュリティラベル(Security Label): MAC環境では、すべての主体と客体にこのラベルが付与されます。客体には情報の機密レベル(例:極秘、秘、公開)が示され、主体にはその情報にアクセスするための権限レベル(クリアランスレベル)が示されます。
OSは、主体が客体にアクセスしようとするたびに、両者のセキュリティラベルを比較します。そして、事前に定義されたセキュリティポリシー(例:ベル・ラパデュラモデルやビバモデル)に照らし合わせ、アクセスを許可するかどうかを厳密に判断します。この判断プロセスがOSのアクセス制御機能の一部として組み込まれているため、非常に高い信頼性を持ってセキュリティを担保できるのです。
MACが提供する二つのセキュリティ保証
MACは、単にアクセスを制限するだけでなく、情報セキュリティの二大要素である「機密性」と「完全性」を高いレベルで保証します。
- 機密性の保証(Confidentiality):
情報が許可された主体以外には漏洩しないことを保証します。具体的には、機密性の高い情報(高レベルの客体)は、機密性の低い権限(低レベルの主体)を持つユーザーには読み取りを許可しません。情報が「上から下へ」流れることを防ぎます。 - 完全性の保証(Integrity):
情報が不正な方法で改ざんされないことを保証します。信頼性の低い主体が、信頼性の高いシステムファイルや設定情報(客体)を書き換えることを防ぎます。
このように、MACはOSのセキュリティ機構として、ユーザーの操作ミスや不正な試み、さらには悪意のあるソフトウェアの動きからもシステムを強固に保護する、極めて重要な役割を担っているのです。
具体例・活用シーン
MACは、セキュリティ要件が最も厳しく、情報漏洩が社会的な大問題につながる環境で特に活用されています。
- 防衛・諜報機関:
軍事機密や国家機密を扱うシステムでは、MACは必須です。例えば、特定のプロジェクトに関するファイルには「トップシークレット」のラベルが付与され、そのクリアランスを持つ職員以外は、たとえ同じフロアで働く同僚であっても、アクセスが完全に拒否されます。 - 高度な分離が必要なクラウド環境:
複数の顧客の機密データを一つの物理サーバー上で扱うクラウドサービスプロバイダが、顧客間のデータ分離を絶対的に保証するためにMACを利用することがあります。OSレベルでプロセスやファイルにセキュリティラベルを付与することで、一顧客のプロセスが他顧客のデータに誤ってアクセスすることを防ぎます。 - 産業制御システム(ICS):
工場や発電所などの重要インフラを制御するシステムでは、不正な変更が致命的な事故につながるため、完全性の保証が極めて重要です。MACを利用し、信頼性の高い特定の制御プロセスのみが、設定ファイルを書き換えられるように制御します。
初心者向け比喩:機密文書を扱う図書館
MACの厳格な制御を理解するために、セキュリティレベルが異なる書籍を扱う特殊な図書館を想像してみてください。
この図書館(OS)では、すべての書籍(客体)に「機密レベル」が記されたラベルが貼られています。そして、図書館の利用者(主体)一人ひとりには、「閲覧許可レベル(クリアランス)」が記載された特別なIDカードが発行されています。
図書館のシステム(MAC)は、利用者が本を借りようとするたびに、IDカードの閲覧許可レベルと、本の機密レベルを自動的に照合します。
もし利用者が、自分の許可レベルを超えた「極秘」の書籍を手に取ろうとすると、図書館システムは即座にアクセスを拒否します。ここで重要なのは、書籍の管理者(システムの管理者)であっても、自分自身のIDカードのレベルを超えて、勝手にアクセス権を変更することはできないという点です。
これは、通常の図書館(DAC)のように、本の所有者が「この本は誰でも見ていいですよ」と自由に決められるのとは対照的です。MACでは、図書館全体の運営方針(セキュリティポリシー)が絶対であり、個人の意思では変更できないのです。この「強制力」こそが、MACがOSのアクセス制御機能の中で最も信頼性が高いとされる理由です。
資格試験向けチェックポイント
MACは、情報処理技術者試験において、セキュリティの根幹をなす概念として頻出します。特に、MACとDACの比較、およびMACの理論的背景に関する出題が多いです。
- DACとの対比の明確化:
試験問題では、「ユーザーの裁量による」アクセス制御がDAC、「システムポリシーによる強制的な」アクセス制御がMAC、と明確に区別して覚えることが必須です。MACは高いセキュリティレベルを要求される環境で採用されるという文脈を理解しましょう。 - セキュリティモデルの名称と目的:
機密性(Confidentiality)を保護する「ベル・ラパデュラモデル」と、完全性(Integrity)を保護する「ビバモデル」は、応用情報技術者試験以上で頻出します。それぞれのモデルが何を目的としているのか、基本的なルール(例:No Read Up, No Write Down)を把握しておく必要があります。 - **MACの構成
