今回のコラムでは,Apache[用語解説]サーバーが攻撃対象となり得る複数の問題と,筆者が発見したInternet Explorer(IE)6の問題について紹介する。セキュリティ・ホールが見つかったのは,Apache自身ではなくPHP[用語解説]とSSL[用語解説]モジュールである。とはいえ,「Apache+PHP」サーバーは非常に多い。攻撃はHTTPで行われるので,公開用サーバーの場合にはファイアウオールなどで防ぐことはできない。セキュリティ・ホールを悪用するプログラムも出回っている。管理者は早急に対策を施す必要がある。

PHPにバッファ・オーバーフローのセキュリティ・ホール

 まず,Apacheを使ったWebサーバーが影響を受ける恐れがある,PHPのセキュリティ・ホールについて解説する。このセキュリティ・ホールは,Stefan Esser氏が 2002 年2月27日に公開した

 PHPとは,HTMLファイル内に記述するタイプのスクリプト言語[用語解説]である。スクリプトのインタープリタ[用語解説]もPHPと呼ばれる場合が多い。データベースと連携するWebアプリケーションを容易に作成できるスクリプト言語として知られ,広く利用されている。

 特に,Apache用のPHPモジュールが用意されていることから,「Apache+PHP」を使用しているWebサーバーは非常に多い。もちろん,Apache以外のWebサーバーでも,PHPを使用していれば当然セキュリティ・ホールの影響を受ける。

 PHP は RFC 1867 に準拠した, HTTP POST メソッド経由のファイル・アップロード機能をサポートしている。この機能を利用すれば,ユーザーはWebブラウザからWebサーバーへファイルをアップロードして,例えば自分が管理する Web コンテンツの内容を更新できる。

 今回のセキュリティ・ホールは,このファイル・アップロード機能が原因である。この機能に含まれる,MIME エンコーディング[用語解説]されたファイルをデコード処理する部分に,バッファ・オーバーフロー[用語解説]の問題が複数存在する(正確には,「ヒープ・オーバーフロー」や「ワンバイト・オーバーフロー(通称「off-by-one」)」などが含まれる)。

 セキュリティ・ホールの影響を受けるのは,PHP のバージョン 3.0.10 から 3.0.18 および 4.0.1 から 4.1.1。セキュリティ・ホールを悪用すれば,Web サーバー・プログラムの実行権限(例えば,Web サーバー・プログラムが Apache であれば Apache の実行権限)で,任意のコードをリモートから実行できてしまう。

 影響が深刻な上に,このセキュリティ・ホールを悪用するプログラムが既に出回っている。管理者は早急に対策を施す必要がある。

 対策は,PHP 4.1.2へのアップグレードやパッチの適用。ただし,パッチを適用した場合には,再コンパイルしてバイナリを置き換える必要がある。

 バージョン 4.0.3 以降に限られるが,PHPの設定ファイルである「php.ini」中に,ファイルのアップロードを停止するよう記述する方法もある。ただし,ファイルのアップロード機能を前提として作成されたWebアプリケーションの場合には,この回避方法は採れない。対策方法は複数あるので,最も適当と思われるものを選択してほしい。

 実は,今回の問題が公表される前の2月23日,米SecurityFocusが運営する「vuln-dev」メーリング・リストにおいて,「Apache 1.3.22 用の攻撃プログラムが存在する」といううわさが流れた。2月25日には,H D Moore 氏によって,PHP にセキュリティ・ホールがあることが指摘された。そして2月27日になると,冒頭で書いたようにセキュリティ・ホールの詳細が公開された。

 今回の経緯を見ると,日ごろからメーリング・リストなどで情報を収集することの重要性を再確認できる。事前に「Apacheが危ない」という情報をつかんでいた管理者は,今回のセキュリティ・ホールにすぐに対応できただろう。最新の情報を入手するために「アンテナを高くしておく」ことの重要性を,改めて強調しておきたい。

ApacheのSSLモジュールにセキュリティ・ホール

 PHPのセキュリティ・ホールが公開された2月27日,Apache関連の別のセキュリティ・ホールが公開された。Apache に SSL を実装するモジュール「mod_ssl」で見つかった,バッファ・オーバーフローのセキュリティ・ホールである。Ed Moyle 氏により,「Bugtraq」メーリング・リストに投稿された

 mod_ssl は一般的に利用されている,Apache 用のモジュールであり,これを利用することで SSL 通信が可能となる。このモジュールが,信頼されたCA(Certificate Authority:認証局,認証機関)[用語解説]によって署名されたクライアント証明書[用語解説]を処理する際に,バッファ・オーバーフローを引き起こす恐れがある。

 Ed Moyle 氏の投稿によれば,影響を受けるのは,mod_ssl バージョン 2.8.7-1.3.23 未満。

 また,mod_ssl と同じ機能を持つ「Apache-SSL」にも同様の問題があることが指摘されている。Apache-SSL のバージョン apache_1.3.22+ssl_1.47 未満が影響を受ける。

 いずれの場合も,細工を施したクライアント証明書をクライアント(Webブラウザ)からWebサーバーへ送信することでバッファ・オーバーフローを発生させて,サービスを停止させたり,任意のコードを実行したりすることが可能となる。

 しかしながら,実際に攻撃を“成功”させるためには,いくつかの厳しい条件を満たす必要がある。そのため,攻撃を受ける可能性は低い。Ed Moyle 氏の投稿では,以下の3つの条件が挙げられている。

  1. Webサーバーが,SSLのクライアント認証を有効にしていること
  2. Webサーバーが,dbm あるいは共有メモリーによる「セッション・キャッシング」機能を有効にしていること
  3. クライアントから送信されるクライアント証明書が,サーバーが信頼している CA によって実際に署名されていること

 これらすべてを満たさなければ,攻撃者はこの問題を悪用することができない。特に,3 の条件を満たすことは困難である。攻撃用に細工したクライアント証明書に,例えば米VerisignといったCAが署名を施すことはあり得ない。

 ただし,これには“抜け道”がある。米CERT/CCが公開している「CERT Vulnerability Note VU#234971」は,次のように指摘をしている。

 「mod_ssl はテスト用の目的で『snake oil』という CA のサーバー証明書を含んでいる。このテスト用のサーバー証明書がそのまま利用されているような場合,攻撃者は容易に偽の証明書を作り出し,それを攻撃に利用することが可能である」

 つまり,mod_ssl のデフォルトでは,snake oil というダミーのCAを信頼するように設定されている。この設定を変更していないWebサーバーに対しては,snake oil から発行されたとするクライアント証明書を送り込むことで,攻撃を成功させることが可能となる。

 このように,可能性が低いとはいえ,絶対に攻撃を受けないとは言い切れない。対象となるプログラムを使用している場合には,自身が管理するサーバーの設定状況を改めて確認するとともに,プログラムをアップデートすることが賢明だろう。

IE 6に,ファイルを勝手にダウンロードして実行するホール

 最後に,筆者自身が2月13日に発見した,IE 6の深刻なセキュリティ・ホールを解説する(関連記事)。

 ユーザーの意思とは関係なく,自動的にファイルをダウンロードし,それを実行してしまうセキュリティ・ホールが IE 6 に見つかった。発見後,直ちに米Microsoft に報告したものの,1カ月を経過しても同社からは修正プログラム(パッチ)や回避方法が公開されない。

 そこで,筆者が所属する「LAC SNS」チームでは,この問題が多くのユーザーに影響をおよぼすことを懸念し,セキュリティ・ホールの存在のみを明らかにした

この問題は,ウイルスの感染を広げる手段としても悪用できるため,極めて深刻なものであると筆者は考えている。IE 6のユーザーは十分注意する必要がある。

 現状での対策は,設定を変更して,ファイルのダウンロードを無効にすること。「インターネットゾーン」をはじめ,ユーザー自身が対策を施すべきと考えるゾーンに対して,IE の「ツール」メニューから「インターネットオプション」を選択し,「ファイルのダウンロード」を無効にする。加えて,Outlook Express で使用されるゾーンに対しても,あらかじめこの設定にしておくことを推奨する。もちろん,IE 6 以外のブラウザを使用することも対策の一つである。

【3月25日筆者追記】
 Richard M. Smith氏 によって指摘されているように,Outlook/Outlook Express には,「ファイルのダウンロード」を無効にするように設定していても,ファイルをダウンロードしてしまう可能性がある。したがって,ユーザーは「受信トレイ」などのメール・フォルダをクリックした後,メニュー・バーの「表示」から「レイアウト」を選択し,「プレビューウィンドウを表示する」のチェックを外した上で,怪しい HTML メールは閲覧しないようにすることが,現状では最も望ましいであろう。


新井悠 (ARAI Yuu)
株式会社ラック コンピュータセキュリティ研究所
y.arai@lac.co.jp


 IT Proセキュリティ・サイトが提供する「今週のSecurity Check [一般編]」は,その週に起きたUNIX関連およびセキュリティ全般のニュースや動向をまとめた週刊コラムです。セキュリティ・ベンダーである「株式会社ラック」のスタッフの方を執筆陣に迎え,専門家の立場から解説していただきます。