No More「Adminでログイン」を呼びかけるMicrosoftRSA Conference 2006

さまざまなマルウェアからPCを保護するためにも、管理者権限でのログインは避けるべきだとMicrosoftは説明する。

» 2006年02月17日 19時44分 公開
[高橋睦美,ITmedia]

 「Administrator権限(管理者権限)でWindowsにログインして動作させることは、マルウェアに対し、より感染しやすい方法を提供するようなものだ」――米Microsoftのマイク・ダンセジリオ氏はRSA Conference 2006のセッション「Admin No More」においてこのように語った。

 スパイウェアやアドウェア、rootkitといったさまざまなマルウェアからPCを保護するために、ウイルス対策ソフトやゲートウェイでのフィルタリングなど、いくつかの対策が提供されている。しかし、ユーザーの権限を必要最低限のものに留めておくことも、多層防御の一環として重要なポイントだとダンセジリオ氏。仮にこうした対策をかいくぐってマルウェアが侵入したとしても、アカウントが低い権限で動作していれば、被害を最小限に留めることができるからだ。

 しかし、システムを必要最低限の権限のみで動作させる「LUA」(Least User Access)の原則は、残念ながら守られているとは言いがたい。「ソフトウェアの中には管理者権限を必要とするものがある。つまり、管理者権限がないと動作エラーが生じることがある」(同氏)からだ。また、システム管理や設定、アプリケーションのインストールといった作業にも管理者権限が求められる。

 同氏はこうした現状に対し、2つのアプローチが考えられるとした。

 1つは、一般ユーザーとしてログインし、設定作業など管理者権限を必要とするときにのみ権限を昇格させるというやり方だ。作業が終われば再び一般ユーザーに権限を戻す。この結果、「マルウェアが侵入してきてもシステム全体を乗っ取る可能性を低くできる」(ダンセジリオ氏)

 そのための手段としては、「RunAs」コマンドや「MakeMeAdmin」などのツールがある。また、現在の権限をInternet Explorerのツールバーに表示させる「PrivBar」も有用だとした。

 ただ、この場合、アプリケーションがうまく動作しなくなるという副作用が生じることがある。ソフトウェアの作りによっては、インストールをきちんと完了できなかったり、自動アップデートが動作しないといった症状が生じるという。その際は、イベントログを監査するなどしてチェックすることになる。

 もう1つのアプローチは、管理者権限でログインするが、Webブラウジングや電子メールのやり取り、業務アプリケーションの利用といった、一般ユーザー権限で十分なアプリケーションを利用する際は、権限を下げるというものだ。この場合もRunAsコマンドが利用できるほか、「DropMyRights」などのツールが利用できる。

 はじめから管理者権限でログインすれば、アプリケーションの動作や利便性に問題は生じない。しかし「マルウェアにもデフォルトで管理者権限が与えられてしまうことになる」(ダンセジリオ氏)

 こうした要素を勘案すると「非管理者権限でログインし、必要に応じて権限を昇格するアプローチを推奨する」(同氏)。また、社内で独自アプリケーションを開発する場合、ビルドやテスト、稼動の際に管理者権限を必要としないよう注意すべきだとも述べた。

 ダンセジリオ氏によると、LUAを徹底し、最低権限の原則を貫いたとしても、肝心の管理者権限のパスワードが脆弱だったり、OSの脆弱性を直接狙った攻撃を受けた場合は万全とはいえない。しかし「あらゆるユーザーがより低い権限でシステムを動作させるようにすれば、攻撃を抑えることができる」という。

Windows Vistaではより根本的な対策

 ダンセジリオ氏が紹介したのは、Windows XPをはじめとする現行のプラットフォームで権限を最小限に抑えるための手法だ。これに対し、次期Windowsの「Windows Vista」では、より根本的な方法として、UAC(User Account Control)という技術がサポートされる予定だ。

 別のセッションでプレゼンテーションを行った米Microsoftのピーター・ウッズ氏によると、UACでは「デフォルトでは標準ユーザーの権限が与えられ、必要なときに一時的に権限昇格を行う仕組みを提供する」という(関連記事)

 あるユーザーがログインすると、その背後では「一般ユーザー権限」と「管理者権限」の2種類のトークンが発行される。利用するアプリケーションが管理者権限を必要とする場合(Adminプロセスの場合)、ユーザーにその旨を示し、確認を取った上で管理者権限のトークンを適用する仕組みだ。

 場合によっては、管理者権限を必要とするアプリケーションと標準ユーザーで動作するアプリケーションが1つのOS上で同時に稼動することもある。ここでDLLインジェクションなどの攻撃を防ぐため、プロセスどうしは完全に分離される仕組みだ。特に、低い権限のアプリケーションから、より高い権限のアプリケーションに入力を行うことはできない設計という。

 もう1つの特徴は、権限昇格を行う際は必ず、ユーザーに明示的な同意を求める点だ。管理者権限が必要なアプリケーションのアイコンには「盾」の印が表示され、起動させようとすると確認のポップアップウィンドウが開く。また、Microsoft製のプログラムは緑色、署名付きのプログラムはグレーで署名のないものは赤色という具合に、起動させようとするプログラムの「出自」によってウィンドウの表示色を変える仕組みだ。この仕組みをWindows Defenderと連携させることも計画にあるという。

 「管理者権限でログイン」が一般化してしまった背景には、管理者権限を必要とするアプリケーションの存在もある。この反省を踏まえ、アプリケーション開発側には「可能な限り管理者権限を必要としないコーディングを」とウッズ氏は述べた。同社ではUACとの互換性を示す「Vista Logoプログラム」も展開し、アプリケーションの対応を促していくという。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ