セキュリティの基本原則:最小権限という概念とその実装

 最小権限の原則とはコンピュータセキュリティにおける基本概念の1つだが、今日その重要性は通常のシステム管理だけでなく、ソフトウェアの設計段階においてもより大きな意味を有するようになっている。この原則の骨子は、プロセスやシステムおよびソフトウェアコンポーネントに関して与えるアクセス権限は必要最小限のものだけにしておけ、という意味である。そしてセキュリティの専門家であり、EnGardeというセキュリティ強化型GNU/Linuxディストリビューションを開発しているGuardian DigitalのCEOでもあるDave Wreski氏によると、この原則はフリー/オープンソース系セキュリティソリューションと組み合わせることで特に有用に機能するはずだということになる。実際この原則は、ソフトウェア設計者の間で再び注目を浴びつつあるのだ。この原則を正しく理解しておくことは、各自が管理するネットワークのセキュリティ強化に役立つだけでなく、絶えず進化を続けるコンピュータ世界におけるニーズの変化を補足していく上でも有用に寄与するはずなのである。

 そもそも最小権限の原則とは、1975年に「The Protection of Information in Computer Systems」(コンピュータシステムにおける情報保護)と題された論文にて、Jerome SaltzerおよびMichael Schroederの両氏により提唱された概念である。ごく単純に考えた場合、ユーザレベルにおける最小権限の原則の具体例としては、一般的なコンピュータ作業を行うためのユーザアカウントと、システム全体のフルアクセス権を有すrootアカウントという使い分けを考えてもいいだろう。平均的なユーザであればシステムレベルのファイルや設定を変更する必要はないはずなので、そうしたユーザ用のアカウントは最初からこれらの操作を許可しないようにしておくのである。そして管理者にとって最もなじみ深い原則は、特定のタスクを実施する場合のみroot権限でログインするという基本ポリシーだろう。特にUbuntuなど一部のディストリビューションでは、sudoの使用を強制することにより特定のプロセスやプログラムの実行権限はrootのみに制限した上で、実行可能時間も最小化するという措置が施されている。

 最小権限の原則をより高位レベルで実装する場合に推奨されているのが、管理アカウントを複数に分割しておくという方式である。この説明において先のWreski氏が用いているのが、Apache Webサーバのプロセスを(Apache専用の)個別のアカウントで実行させるという設定である。「例えば管理者パスワードを突破したクラッカーがApacheを介した電子メールサーバの盗み読みを試みるとしましょう。そうした場合もこのサーバの運用側が最小権限の原則に従って、Apacheには必要以外の機能を扱えないようにしておくという多層防御態勢をとっていれば、このクラッカーによる攻撃を切り離せるはずです。クラッカーが管理者アカウントで不正アクセスしようとしても、目的とするソフトウェアはその権限では実行できないようにしてあるのですから。こうしてセキュリティ突破の成果は“封じ込め”られ、その被害は最小限に局限化されて終わるという訳です」

 Wreski氏の説明は更に続き、最小権限の原則の重要性は理論上セキュリティの基本原則における最上位に位置するともしている。ただしこれを実際に適用するには、個々のシステムで使用されるタスクおよびその利用者のすべてを把握した上で、どこまで制限すれば充分なセキュリティを確立できるかを見極める入念な計画が必要となる。

 こうした最小権限の原則の有効性を損なう要因は大きく2つに分けることができる。その1つ目をWreski氏は「この原則自体が非常に漠然とした概念という点です」と説明している。「そもそも“最小”とは主観的なものであり、特に企業環境では多種多様な利害関係とニーズがそこに関わってきます。」例えばユーザが使うラップトップとネットワークアカウントとの同期などは、システム管理者の観点からするとセキュリティ上の悪夢でしかないが、一般ユーザの利便性という観点からは、こうした操作は許可せざるを得ないのが実状である。

 2つ目の問題点としてWreski氏が指摘しているのが、「ニーズとは変化するものであり、上手くすればいい方向への進化を促しますが、下手をすると完全に破綻への道をたどることもあります」という点である。つまりシステムのセキュリティとは一度確立してしまえば終わりというものではなく、臨機応変的な各種の変更がその後加えられて行くものであり、セキュリティポリシーはそうした変化によって損なわれないように絶えず保守していく必要があるのである。

 こうした2つの要因を踏まえた上でWreski氏が提唱しているのが、システムレベルでより細かな“セキュリティの粒状化”を施して最小権限の原則が機能しやすくしておくことである。「ネットワークセキュリティはグローバルレベルの包括的な対策だけでは充分とは限りません」と同氏は語り、その代わりに必要となるのが、「個々のプロセスおよびアプリケーション単位でロックを施せる機能です」としている。

 もっともこうした機能は、その実装自体が困難だという側面も有している。Wreski氏の言葉を借りれば、「セキュリティのために生産性を犠牲にはできないという実務の現場において運用可能なレベルに簡単化することが課題です。現実問題として、プロセスやアプリケーションを1つずつ個別にロックをすることなどは不可能でしょう。とは言うものの、外部ネットワークへのチャンネルを有すといった危険度の高いアプリケーションを特定して囲い込んでおくだけでも有効に寄与するはずです」ということになる。これはつまり、外部のシステムと接触するものには目を光らせておけということに他ならない。

 Wreski氏は、「最小権限の原則はすべてのアプリケーションプロセスに逐一適用するというものではないでしょうが、使い方次第でトータルなセキュリティレベルを格段に向上させることができるはずです」としている。

プロプライエタリ系ソフトとフリー系ソフトにおける実装上の相違点

 1つの問題は、こうした観点での配慮が施された製品が、プロプライエタリ系の商用ソフトウェアの場合はほとんど提供されていないということだ。Wreski氏も語っているように、「そもそも最小権限の原則とは、セキュリティ突破時にもたらされる被害の局限化対策という方向の発想です」という事実が存在している。ところが大部分の企業にとっては、自分のシステムへの外部からの侵入を許す可能性そのものが最初から想定したくない事柄であるため、こうした危険性を提示されること事態を嫌う傾向にあるのだ。そうした背景があるため、セキュリティ関連の商用ソリューションを扱うマーケティング担当者も、侵入者を排除するという能力に力点を置くようになっている。

 こうした態度をWreski氏は“競合製品を妨害しようとするFUDに通じる行為”だとしてにべもなく否定している。「確かに、社内ネットワークに到達する前の段階で外部ソースからのアクセスを制限するという方法でも、かなり有効な措置を講じることはできます。しかしながら、フィッシングなどの手口に引っかかったり、廃棄すべき従業員のアカウントが消し忘れていたりすれば、不正アクセスを完全には防げませんよね? そんな事態は起こり得ませんと口で言うのは簡単ですし、セールストークとしても有効でしょうが、そうした手口で突破される可能性は厳然として存在しているのです。要は自分に選択権があるとして、そうした危険性に事前の対策の施されたソフトウェアを採用するのと、難攻不落という建て前の製品を購入してそうした現実逃避を永遠に信じ続けるのとどちらを選ぶかということです」

 そしてWreski氏は、これらと対照的にフリーソフトウェア系プログラムにはSELinuxなどの最小権限の原則をアーキテクチャレベルで実装したソフトウェアが存在しているとしている。Red Hat Enterprise Linuxや同氏率いるGuardian DigitalのEn Gardeなど多くのディストリビューションで採用されているSELinuxでは、アクセス制御を強制化するシステムが組み込まれており、システム中の全ファイルをマッピングしてラベル付けすることで管理者によるファイル単位での個別アクセス制御が可能になっているため、Wreski氏の提唱するきめ細かな粒度の制御という理想に近い管理が実行できるのである。

 またSELinuxなどのフリー系アプリケーションに関しては、自由にそのコードにアクセスできるため、最小権限の原則が実装されているかをユーザ自身で確認可能というメリットも有している。

 両者の違いをWreski氏はこうまとめている。「プロプライエタリ系システムの場合、プロセスレベルで何を実装するかはすべてベンダ側の裁量次第ということになります。確かに、過去において最小権限の原則を実装した経験のあるベンダならば、それなりに有効な製品を提供してくれるでしょう。それでもプロプライエタリ製品という制約がある以上、外部の人間がどうこうできるオプションは実質的に用意されていません。開発者にアクセスするチャンネルや影響力を行使できるコミュニティが存在しないのですから。これがオープンソースであれば、ユーザの意見を反映させるためのコミュニティが存在し、よりよいソリューション作成への貢献ができるはずです」

将来的な動向

 Wreski氏の信じるところでは、ソーシャルネットワーキングやその他のWeb 2.0型アプリケーションを運用するサイトが増加している現在こそ、最小権限の原則がよりいっそう重要となっていることになる。それはつまり、こうした用途の増加は「ネットワークセキュリティの各所が無力化され得ることを意味します。秘書がデフォルトパスワードを外に漏らしたり、従業員の1人がユーザレベルではなくアプリケーションレベルでロックをしてしまえば、ユーザアクセスの制限などは無意味になるからです」というのがその根拠だ。

 フィッシングという手口も巧妙化するにつれてその成功率は高まっており、Wreski氏の予測するところによると、最小権限の原則についてもアプリケーションへの組み込みだけでなく、よりきめ細かな粒度化という要請も高まるであろうということだ。その証拠として同氏が掲げているように、現在はマルチレベルセキュリティに対する関心が高まりつつあるが、その中に取り込まれているアクセスの優先順位付けという概念を同氏は「最小権限の原則の理想像にかなり近い存在」としている。ただしWreski氏はこのマルチレベルセキュリティについても「非常に複雑化する可能性があるため、それを扱うIT技術者が各自のポリシを簡単にカスタマイズできる方法の確立を迫られるでしょう」という警告を発している。

 本稿で論じた問題をWreski氏は次のようにまとめている。「検討すべき問題の1つは、有効なセキュリティポリシを確立することだけでなく、それらをいかに上手く統合するかです。例えばその性質上Webサーバアプリケーションは電子メール用アプリケーションと関係しますし、これらはアンチウィルス/アンチスパム系アプリケーションと関係を持つことになります。企業ネットワークのセキュリティについては様々な側面が存在しますが、その中でも特に2008年で注目されるのは、プラットフォームとアプリケーションの統合開発をどのように進めるかになるでしょう。最小権限の原則の採用といっても、それを単に取り入れただけと、巧みに統合したとでは大違いですからね。最小権限の原則の実装を成功させる上で有利な立場にあるのは、アプリケーションの開発とそのセキュアなプラットフォームへの統合についての経験を有しているベンダだと言えるでしょう」

ITManagersJournal.com 原文