最小権限の原則

最小権限の原則について



最小権限の原則(さいしょうけんげんのけんそく)は、情報セキュリティやコンピュータ科学において、各モジュールがその正当な目的に必須な情報計算資源のみにアクセスできるよう制限する設計原則です。この原則は、ユーザーアカウントに必要な権限だけを与えることを意味し、例えばバックアップ用のアカウントに対しては、ソフトウェアのインストール権限を与えず、関連するアプリケーションのみを操作できるようにします。

通常のパーソナルコンピュータを使用するユーザーに関しても、この原則は適用されます。日常的な作業は一般ユーザーアカウントで行い、特権が必要な場合のみ管理者権限を利用することが求められます。「最低限のユーザーアクセス」や「最小権限のユーザーアカウント」として、LUA(Least Privileged User Account)という略称で呼ばれることもあります。この場合、全てのユーザーアカウントは必要最低限の権限で実行されるべきであり、アプリケーションも同様に必要最低限の権限で起動することが推奨されています。

最小権限の原則を採用することにより、次のような利点が得られます。まず、システムの安定性が向上することです。システムを変更する権限が制限されているため、アプリケーションの動作が試験しやすくなります。制限された権限で動作するアプリケーションは、システムをクラッシュさせるような操作を行えず、他のアプリケーションに悪影響を及ぼすこともありません。

次に、システムセキュリティの向上も挙げられます。システム全体に影響を与える可能性がある動作が制限されているため、特定のアプリケーションの脆弱性を悪用しても、システム全体が影響を受けるリスクが低減します。例えば、マイクロソフトは「標準ユーザーモードで動作している場合、システムレベルのダメージに対する防護が強化される」と述べています。このようにして、システムがより安全な状態を維持できるのです。

さらに、ソフトウェアのデプロイメントが容易になるという利点もあります。アプリケーションが必要とする権限が少ないほど、大規模な環境への配備が容易になります。特に、デバイスドライバのインストールには高い特権が要求されるため、アプリケーションのインストールに際して追加の手続きを要することがあるので、必要な権限が少なければその工程が簡素化されます。

ただし、真の最小権限の原則を完全に実施するのは非常に難しいのが現実です。現在の技術では、プロセスの実行に必要な最小権限を正確に把握することが困難だからです。できる限り人間が不要と判断できる権限を取り除くアプローチが一般的ですが、その結果得られる権限セットは真の最小権限よりも広範になってしまう恐れがあります。

また、オペレーティングシステム(OS)がどの程度細かく権限を制御できるかという問題も存在します。具体的なメモリアクセス範囲や処理時間、I/Oデバイスのアドレスに必要な権限を正確に与えることは難しいのです。

歴史的には、ジェローム・サルツァーが最初にこの原則を示し、ピーター・J・デニングは「Fault Tolerant Operating Systems」の中でこれを広く捉えました。ロジャー・ニーダムは1972年に権限の動的割り当てを論じています。

実際には、オペレーティングシステムカーネルは中心的な役割を果たし、ハードウェアへのアクセスを管理します。特にマルチユーザー環境では、プロセスからのハードウェアへのアクセス要求を管理しますが、カーネルがクラッシュすると、それに伴って機能が失われる可能性があります。クラッシュ後、実行中のコードの再開には限界があり、悪意のあるコードに対してセキュリティが施行されていても、適切な対応が求められます。

最小権限の原則は、権限を常に最小の状態に保つことを求め、それがコードによって実現されることを指します。この原則を適用すれば、予期しない位置から回復したとしても、悪意のあるコードが被害を及ぼすことを防ぐことが可能となります。x86アーキテクチャなどでは、特権レベルを採用しており、OSの実装においてはプロセスの権限をマネジメントする仕組みも多様に見られます。

類似の原則として「Trusted Computer System Evaluation Criteria(TCSEC)」があります。ここでは、トラステッド・コンピューティング・ベースを最小化することが厳密な要件として適用されることがあり、特権の囲い込みや任意アクセス制御(DAC)における許可の文脈でも取り上げられます。これにより、必要な権限を適切に管理し、不必要な権限の過剰取得を防ぎ、システムの安全性や安定性を確保することが期待されています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。