Windows Shell の未チェックのバッファがコードの実行を引き起こす | ScanNetSecurity
2024.04.20(土)

Windows Shell の未チェックのバッファがコードの実行を引き起こす

[翻訳:関谷 麻美]
2002年3月11日

国際 海外情報
[翻訳:関谷 麻美]
2002年3月11日

概要
 Windows Shell は Windows のユーザー・インターフェース・エクスペリエンスの基本フレームワークを提供する責任を有する。Windows Shell は、ユーザには Windows Desktopとして最もよく知られているが、ファイルやフォルダの整理、アプリケーションを開始する方法の提供など、ユーザのコンピューティング・セッションの規定を支援する様々な機能も提供する。

 システム上の完全に削除されなかったアプリケーションの場所を特定する機能の一つに未チェックのバッファが存在する。悪意のあるユーザがこの問題を利用し、バッファ・オーバーラン攻撃の実行が可能になり、結果セキュリティ上の問題が発生する。攻撃が成功すると、Windows Shell をクラッシュさせるか、もしくはユーザのコンテキストでコードが実行される影響をもたらす危険性がある。

 デフォルトでは、この脆弱性をリモートで利用することはできない。しかし非常に稀な状況下では、Web ページを経由してこの脆弱性の利用が可能になる恐れがある。特に、ユーザがカスタム URL ハンドラを持つアプリケーションをインストールし、そしてアンインストールし、さらにアプリケーションのアンインストール・ルーチンが完全且つ適正にアプリケーションを削除することに失敗した場合、攻撃者はバッファ・オーバーランを引き起こそうとするHTMLWeb ページを作成し、攻撃を仕掛けようとする恐れがある。このようなWeb ページは Web サイトに登録するか、または電子メールで送信することにより配信される。

詳細
脆弱なシステム:
- Microsoft Windows 98
- Microsoft Windows 98 Second Edition
- Microsoft Windows NT 4.0
- Microsoft Windows NT 4.0 Terminal Server Edition
- Microsoft Windows 2000

問題を緩和する要因:
 - デフォルトのインストールでは、この脆弱性をリモートで利用することはできない。利用する唯一の方法は、システムに悪質なコードを埋め込むことだ。

 - この脆弱性は、カスタムURL ハンドラを実装するソフトウェアをインストールし、そしてアンインストールし、さらにソフトウェアのアンインストール・ルーチンがシステムからそのアプリケーションを完全に削除しなかった場合にのみリモートで利用することが可能。

 - ( Outlook Email Security Update をインストール後の)Outlook 98 および2000、Outlook 2002 および Outlook Express 6 は全て、Restricted
Sites Zone のHTML メールを開く。結果、それらの製品を使用している顧客は、電子メールを媒介にした攻撃の危険に晒される恐れはないだろう。

 - このバッファ・オーバーランはシステムではなく、むしろユーザのセキュリティ・コンテキスト内でコードの実行を可能にする恐れがある。故に、この脆弱性を利用して攻撃者が奪取する権限は、そのユーザに認められた権限により異なる。

入手可能なパッチ:
 この問題に対応するパッチは、以下のURL からダウンロードできる。
Windows 98
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=37015
Windows NT 4.0
http://www.microsoft.com/downloads/release.asp?ReleaseID=36867
Windows NT 4.0 with Active Desktop
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=37015
Windows NT 4.0 Terminal Server Edition
http://www.microsoft.com/downloads/release.asp?ReleaseID=36869
Windows NT 2000
http://www.microsoft.com/downloads/release.asp?ReleaseID=36880

この脆弱性が与える影響の範囲は?

 これは、バッファ・オーバーランの脆弱性だ。この脆弱性を首尾よく利用する攻撃者は、ユーザがそのシステム上で実行できる全ての操作を行うことが可能になるだろう。操作の例を挙げると、ファイルの追加や削除、Web サイトとの通信、あるいはハード・ドライブの再フォーマットなどだ。

 ユーザが特定の操作、すなわちアンインストール・ルーチンにたまたま特定のエラーのあるサードパーティのソフトウェアをインストールし、その後アンインストールを行った場合のみ、攻撃者はこの脆弱性を利用することができる。
この脆弱性を首尾よく利用できたとしても、攻撃者はユーザの権限を取得することはできるが、OS 自体の権限を取得することはできない。

この脆弱性の原因は?

 この脆弱性は、欠けているプログラムの場所の特定を支援するWindows
Shell の一部にある未チェックのバッファに起因する。この機能を特定の方法で起動することにより、攻撃者はバッファ・オーバーランを引き起こし、自分が選択したコードを実行する恐れがある。アンインストールされたプログラムが自身のアンインストールを適正に且つ完全に実行できず、カスタムURL ハンドラを残した場合、その"孤立した" URL ハンドラを使用することでWeb ページからこの機能を起動することが可能になる。

Windows Shell とは何か?

 Windows Shell は、Windows ユーザ・インターフェース用の基本的フレームワークを提供する。ほとんどのユーザは通常、Windows Shell をWindows
Desktop と経験上知っている。このシェルは、デスクトップのみならず多くの機能から成り、コンピューティング・エクスペリエンスを介して矛盾のないルック・アンド・フィール(画面の処理や操作法の点から見たプログラムの一般的印象や感じ)を与えるよう機能する。Windows Shell は、Windows Explorerを介してファイルやフォルダの場所を特定し、"スタート" メニューのショートカットを介してアプリケーションを起動するための矛盾のない方法を提供し、そしてデスクトップのテーマと色を介して矛盾のないインターフェースを提供するために使用する。

カスタム URL ハンドラとは何か?

 Windows Shell の基本的な機能の一つは、アプリケーションを起動するための方法を提供することだ。 Windows Shell は、アプリケーションを起動するための二つの主要な方法を提供する。それは スタート・ メニューのショートカットを使用する方法とカスタム URL ハンドラ を使用する方法だ。

 カスタム URL ハンドラは、Web ページにより起動されると、アプリケーションを自動的にスタートして、そのアプリケーションに新しいURL のタイプを登録させる。例えば、Outlook 2002 がシステムにインストールされている場合、Outlook 2002 は "outlook://" をカスタム URL ハンドラとして登録する。
そして、このURL をIE か"Run"ボックス に入力するか、あるいはハイパーリンクをクリックすることにより Outlook を起動することができる。

 カスタム URL ハンドラは、Windows Shell の拡張可能な機能だ。つまり、すべてのアプリケーションはこの機能の利点を活用し、そしてアプリケーション自身のカスタム URL ハンドラを登録することができる。アプリケーションは、新しいアプリケーションと新しいURL のタイプを関連付けるために、Windows Registry にエントリを作成することでインストールの間にこのURL ハンドラを登録する。

Windows Shell の何が問題なのか?

 プログラムが完全に削除されなかった場合、プログラムの場所を特定するのを支援するWindows Shell の一部に未チェックのバッファがある。Windows Shell がカスタム URL ハンドラの場所を特定でき、但し関連したアプリケーションの場所を特定できない場合のみ、未チェックのバッファを含む特定の機能が起動される。この機能が特定の方法で起動される場合、バッファ・オーバーランが発生し、Windows Shell プロセス空間内でコードの実行を許可する恐れがある。

この脆弱性を利用して攻撃者は何ができるか?

 攻撃者がこの脆弱性を首尾よく利用できる場合、攻撃者はユーザのシステムで攻撃者が選択するコードを実行できる恐れがある。Windows Shell はユーザのコンテキストで実行されるため、攻撃者のコードがユーザーとして実行されるという結果になるかもしれない。データあるいは構成情報を追加、変更、削除するユーザの権限を制限することは、攻撃者が奪取する権限も制限することになるだろう。

攻撃者はこの脆弱性をどのように利用するのか?

 Web ページを作成することで攻撃者は、この脆弱性を利用しようとする。Web ページが開かれると、特殊な形式の引数を用いてカスタム URL ハンドラを呼び出すのだ。そして、ユーザが URL ハンドラを作成したアプリケーションをインストールした場合、続いてそのアプリケーションをアンインストールする。そして、そのアプリケーションのアンインストール・ルーチンが正しくURL ハンドラを削除しなかった場合、Web ページはバッファ・オーバーランを引き起こす恐れがある。

 攻撃者は、自身のWeb サイト上でWeb ページをホストするか、または HTML 形式の電子メールでユーザに送り付ける。前者の場合、ユーザーがそのWeb ページを閲覧すると攻撃が行われ、後者の場合は、ユーザがHTML 形式の電子メールを開くと攻撃が行われる。

 この脆弱性を利用するための必須条件のリストは極めて難しいように思える。
カスタム URL ハンドラがインストールされていない場合、この脆弱性を利用する方法はあるのか?

 カスタム URL ハンドラがインストールされていない場合でも、その機能を呼び出すことは可能だ。しかし、これはローカル・システムで動作するプログラムによってのみ実行することができる。Ten Immutable Laws of Security(セキュリティの10の不変の法則)が提案しているように、脆弱性はこのシナリオでは次第に高まる危険をユーザに与えない。何故なら、攻撃者は攻撃者自身が選択するプログラムをユーザに実行させることができる場合、攻撃者はすでにマシンの制御権を取得しており、バッファ・オーバーランを引き起こす必要は全くないからだ。

 この問題は、Windows Shell にあるのか、 それともURL ハンドラをインストールしたアプリケーションにあるのか?

 関連のないアプリケーションにエラーが存在する場合のみ、この脆弱性が現われる。特に、アプリケーションのアンインストール・ルーチンがアプリケーション自体を削除したが、作成されたURL ハンドラを削除しない場合に現われる。この脆弱性は、Windows Shellに存在する。

 カスタム URL ハンドラを持つソフトウェアをインストールしたことはないが、この脆弱性の影響を受けるのか?

 受けない。Web ページにより要求されたURL ハンドラはシステムに存在しない。その要求は失敗し、この脆弱性を利用することはできない。

 カスタム URL ハンドラを持つソフトウェアをインストールしているが、アンインストールしたことはない。この場合、この脆弱性の影響を受けますか?
 受けない。カスタム URL ハンドラが単にシステムに存在するだけではこの脆弱性を利用することはできない。

 カスタム URL ハンドラを持つソフトウェアをインストールし、そしてアンインストールした場合、この脆弱性の影響を受けるのか?

 必ずしも影響を受けるとは限らない。カスタム URL ハンドラをインストールするほとんどのアプリケーションは、アンインストール・プロセスの一部として正しくカスタム URL ハンドラを削除する。アプリケーションのアンインストール・プロセスがアプリケーション自体を削除し、カスタム URL ハンドラを残したままである場合のみ、システムは脆弱になり影響を受ける。

 攻撃者は、首尾よく攻撃を実行するための正確なカスタム URL ハンドラを知っている必要があるか?

 はい。攻撃を成功させるためには、攻撃者はユーザのシステムでインストールされ、またアンインストールされた URL を指定する必要があり、さらにその URL が完全に登録削除されていないことを知る必要があある。しかし、一般的によく知られたカスタム URL ハンドラが多く存在し、攻撃者はより広く普及している URL ハンドラを利用して攻撃を試みる可能性がある。

 マイクロソフト製品は、カスタム URL ハンドラをインストールし、そして不適切にアンインストールするのか?

 マイクロソフトの知る限りでは、カスタム URL ハンドラをインストールする全てのマイクロソフトの製品は、カスタム URL ハンドラを正しくアンインストールする。しかし、いくつかのサード・パーティの製品は、作成した URLハンドラを正しくアンインストールしないということが判明した。

 攻撃者は、なぜ HTML 形式の電子メールを介してこの脆弱性を利用できるのか?

 HTML 形式の電子メールは本質的には電子メールにより送信された Web ページだ。この脆弱性を利用する Web ページを作成し、HTML 形式の電子メールとして送信することで、攻撃者は本質的に Web サイトによる攻撃と同様の攻撃を行うことができる。メッセージをダブルクリックするか、プレビューウィンドウで表示することによってそのメールを開けた時、スクリプトが HTML 形式の電子メールに対し有効になっている場合、スクリプトは実行される。

 注目すべきことは、電子メールをベースにした攻撃のシナリオは多くの場合、阻止されるという点だ。例えば、以下の電子メール製品を使用している顧客は、デフォルトで電子メールを介した攻撃のシナリオに対し保護されている。

 Outlook Email Security Update がインストールされている場合、Outlook 98 または 2000

Outlook 2002
Outlook Express 6

 上記の電子メール製品の一つを使用している場合、パッチを適用する必要はないのか?

 Outlook Email Security Update、Outlook 2002、および Outlook Express 6 は電子メールを介した攻撃のシナリオを阻止する。しかしマイクロソフトは、Web ベースの攻撃シナリオを阻止することを確実にするため、パッチをインストールすることを推奨する。

Windows ME を使用している場合、この脆弱性の影響を受けるか?

 受けない。Windows ME は、このエラーを含んでない。

Windows XP を使用している場合、この脆弱性の影響を受けるか?

 受けない。Windows XP は、このエラーを含んでない。

パッチはどうような役目を果たすのか?

 パッチは、問題の Windows Shell 機能に適切な入力確認を実行させるようにしてこの脆弱性を排除する。

Windows NT 4.0 用のパッチが二つあるのは、なぜか?

 一つは、Internet Explorer 4.0 の Active Desktop 機能を持たない
Windows NT 4.0 用のパッチだ。これは、IE 4.0 で導入された機能で、デスクトップが HTML コンテンツを表示することが可能になる。この機能は異なる Windows Shell を導入しており、結果個々のパッチが必要となる。

Windows NT 4.0 で Active Desktop を実行していると、どうして分かるのか?
 Q216840 で論じられているようにレジストリを調べることにより、Windows NT 4.0 で Active Desktop を実行しているかどうかを判別することができる。

追加情報
eEye Digital Security がこの脆弱性を発見した。

[情報提供:SecuriTeam]
http://www.securiteam.com/


《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×