|
最小権限の原則とは、情報セキュリティや計算機科学などの分野において、コンピューティング環境の特定の抽象化レイヤー内で全てのモジュール(主題によっては、プロセス、ユーザー、プログラム)がその正当な目的に必要とされる情報と計算資源のみにアクセスできるように制限する設計原則である。 == 詳細 == 最小権限の原則は、ユーザーアカウントに対して、そのユーザーにとって必要な権限だけを与えることを意味する。例えば、バックアップ用ユーザーアカウントでは、ソフトウェアをインストールする必要はなく、バックアップ関連のアプリケーションだけを実行できればよいので、新規ソフトウェアをインストールする権限などは付与されない。この原則は、普通のユーザーアカウントで作業しているパーソナルコンピュータのユーザーにも当てはまる。つまり、事態が完全に特権を要求する場合に限って管理者権限を与えられ、パスワードで保護されたアカウント(すなわちスーパーユーザー)にログインする。 ユーザーに対してこの原則を適用する場合は、「最低限のユーザーアクセス (least user access)」や「最小権限のユーザーアカウント (least-privileged user account)」と呼ばれ、LUAと略記される。その場合、全てのユーザーアカウントは、常に必要最小限の権限で実行されるべきであり、その際にはアプリケーションソフトウェアも必要最小限の権限で起動されるべきとされる。権限を与えないと正しく動作できないアプリケーションは、バグを孕んでいる可能性がある。 最小権限の原則は、障害(フォールトトレラント設計の場合)や悪意ある挙動(コンピュータセキュリティの場合)からデータと機能を保護するうえで、重要な設計観点として、広く認識されている。 この原則には、次のような利点がある。 ; システム安定性の向上 : コードがシステムを変化させる範囲が制限されていると、考えられる動作や他のアプリケーションとのやりとりを試験するのが容易になる。実際、制限された権限で動作するアプリケーションは、マシンをクラッシュさせるような操作にアクセスできないし、同一システム上の他のアプリケーションに悪影響を与えることもできない。 ; システムセキュリティの向上 : コードがシステム全体に影響するような動作を制限されている場合、あるアプリケーションの脆弱性を悪用しても、マシンの残りの部分に影響が及ばない。マイクロソフトは「標準ユーザーモードで動作中の場合、や(ルートキットや検出できないコンピュータウイルスなどの)マルウェアによるシステムレベルのダメージに対して防護を向上させる」としている。 ; ソフトウェアデプロイメントの容易化 : 一般に、アプリケーションが必要とする権限が少ないほど、より大きな環境での配備が容易になる。これは先述の2つの利点によるもので、デバイスドライバをインストールするアプリケーションや特権レベルを上げる必要があるアプリケーションは、デプロイメントに際して追加の工程を必要とすることが多い。例えば Microsoft Windows ではデバイスドライバのインストールには特権レベルを高くする必要があるので、アプリケーションとは別のインストール工程が必要となる。 実際には、真の最小権限の原則を適用することはほとんど不可能に近い。今のところ、あるプロセスの実行に必要とされる最小権限を求める方法が確立されていない。それは、全ての変数のとりうる値の範囲、必要とされるアドレス、必要とされる精密な時間などを完全に把握できないためである。現状で最も現実的なアプローチは、人間が不要だと確認できる権限を取り除いていく方法である。結果として得られる権限群は、そのプロセスの真の最小権限よりも幅広いものとなる。 もう1つの制限として、オペレーティング環境がどこまで細かく権限を制御できるかという問題がある〔Matt Bishop, ''Computer Security: Art and Science'', Boston, MA: Addison-Wesley, 2003. pp. 343-344 cited Barnum & Gegick 2005 〕。実際、メモリアクセス範囲、処理時間、I/Oデバイスのアドレスやモードなどを必要な権限だけを正確に与えるほど精密に制御できることは滅多にない。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「最小権限の原則」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Principle of least privilege 」があります。 スポンサード リンク
|