セキュリティアドバイザリ
セキュリティ勧告: (BEA02-03.03)

作成者: BEA Systems Inc.

概要: コードが表示される脆弱性に対するパッチの提供

影響を受ける製品: BEA WebLogic ServerおよびWebLogic Express

このセキュリティ勧告(BEA02-03.03)のセクションIIには更新された情報が含まれます。具体的には、WebLogic Server 6.1 SP2、WebLogic Server 6.0 SP2 RP3、およびWebLogic Server 5.1 SP11用の新しいパッチが提供されています。このセキュリティ勧告(BEA02-03.03)はBEA00-03.00、BEA01-03.01、およびBEA01-03.02の各勧告を置き換えるものであるため、古い勧告は無視してください。

すべてのプラットフォームのBEA WebLogic ServerおよびWebLogic Expressの特定のバージョンにおいて、セキュリティ脆弱性の原因となる可能性がある、複数の問題が確認されました。これらの問題を修正するためのパッチが提供されています(後続のセクションIIを参照)。BEAでは、潜在的なセキュリティの問題を最も緊急度の高い問題として取り扱い、お客様のすべての資産のセキュリティを確保するために可能な限りの措置を講じます。結果として、弊社では以下の対処策を強く提案します。

      I. 以下の勧告に目を通します。

      II.対処方法を適用します。

      III.今後のセキュリティ勧告に関心をお持ちのユーザをご存知の場合は、この勧告に含まれる、登録に関する手順をぜひ転送してください。


I. 勧告

最近になって、未認可のクライアントがJSPおよびjHTMLページのソースコードを表示できる可能性がある潜在的なセキュリティ脆弱性が、BEA WebLogic ServerおよびWebLogic Expressにおいて報告されました。この開示はソースコードの表示のみに限られ、未認可のクライアントがJSPまたはjHTMLコードを変更または改悪する機会を提供することはありません。

この脆弱性の影響を受けるのは、BEA WebLogic ServerおよびWebLogic Expressの次に示すリリースです。

  • バージョン: BEA WebLogic Enterprise 5.1.x内のJ-Engine
  • バージョン: BEA WebLogic ServerおよびWebLogic Express 4.5x、5.1.x、および6.x

原因

JSPおよびjHTMLソースの意図しない表示に関連する脆弱性は、Fileサーブレットによって処理されるJSPおよびjHTMLファイルを取得しようとする際の一般的な方法に付け込むものです。WebLogic Serverでは、(1)Fileサーブレットに対する不正なマッピングを利用する(2)URLの解析におけるバグを悪用する、の2通りの方法でこの脆弱性を発生させることができます。

Fileサーブレットに対する不正なマッピング

WebLogic ServerおよびWebLogic Expressはデフォルトで、指定された特定のマッピングが存在しない任意のファイルタイプを扱えるようにFileサーブレットをコンフィグレーションします。コンフィグレーションによっては、Fileサーブレットを使用して、WebサーバのWebドキュメントルートディレクトリ内にある任意のファイルの内容を表示させることが可能です。また、ServerSideIncludeServletを使用することによっても、同じような種類の動作を引き起こさせることが可能です。

お使いのBEA WebLogic Server配布キットに付属するサンプルのweblogic.propertiesファイルで提供される、Fileサーブレットに対するサンプル登録をそのまま使用する場合、JSP/jHTMLファイルのソースをブラウザで表示することが可能です。

BEA WebLogic ServerおよびWebLogic Express配布キットに付属するサンプルの weblogic.propertiesファイルでは、FileサーブレットおよびServerSideIncludeサーブレットの使用を次のように定義します。
  1. FileServletを起動するために、「ConsoleHelp」という名前のサーブレットエイリアスが定義される
  2. FileServletを起動するために、「file」という名前のサーブレットエイリアスが定義される
  3. 「*.shtml」という仮想名の下でServerSideIncludeServletが定義される
現時点では、静的コンテンツ(HTMLファイル、画像など)および動的コンテンツ(JSP、jHTMLなど)を扱うために、単一のディレクトリ(一般にドキュメントルートと呼ばれる)が使用されます。そのため、 http://www.bea.com/ConsoleHelp/my.jspのようなURLでは結果的に、my.jspファイルを処理するためにFileServletが使用されます。同様に、 http://www.bea.com/*.shtml/my.jspのようなURLでは、ServerSideIncludeServletを使用してmy.jspファイルの処理を扱います。

不正なURL解析

ある種の不正なURLは、URL解析におけるバグを利用して、JSPまたはjHTMLのソースを表示させることができます。そのようなURLを構築する方法の1つに、HTTP 1.1仕様(
http://www.ietf.org/rfc/rfc2616.txtの「Hypertext Transfer Protocol -- HTTP/1.1」を参照)の定義に従って、URL内でパーセント記号(%)を使用するというものがあります。JSPファイル名のサフィックス内で「%」エスケープを使用することにより、Fileサーブレットにソースを表示させることができます。たとえば、 http://www.bea.com/my.jsp%00(「%00」はNULLのUnicodeエスケープ)や http://www.bea.com/my%2ejsp(「%2e」は「.」のUnicodeエスケープ)のようなURLは、my.jspを実行する代わりにそのソースを表示します。

II. 対処方法

BEAでは、以下の一連の対処方法に従うことを強く推奨します。

  1. 以下の適切なサービスパックを適用します。
    • バージョン: BEA WebLogic ServerおよびWebLogic Express 6.1(スタンドアロン版またはBEA WebLogic Enterprise 6.1の一部、全プラットフォーム対象)
    • バージョン: BEA WebLogic ServerおよびWebLogic Express 6.0(スタンドアロン版またはBEA WebLogic Enterprise 6.0の一部、全プラットフォーム対象)
    • バージョン: BEA WebLogic ServerおよびWebLogic Express 5.1(スタンドアロン版またはBEA WebLogic Enterprise 5.1.xの一部、全プラットフォーム対象)
    • バージョン: BEA WebLogic ServerおよびWebLogic Express 4.5.2(全プラットフォーム対象)
    • バージョン: BEA WebLogic ServerおよびWebLogic Express 4.5.1(全プラットフォーム対象)
      • 対処策: サービスパック15を適用します。


  2. 追加の予防措置として、さらに2つのステップを実行できます。
    • まず、JSPファイルをプリコンパイルし、コンパイルされた形式のJSPファイルだけをインストールすることにより、パフォーマンスが向上するとともに、存在しないときにJSPファイルが表示される可能性が完全に排除されます。
    • 次に、デフォルトのサーブレットをFileServlet以外のサーブレットに変更することにより、偶然によるファイルのダウンロードを防ぎます。
      • WebLogic 5.xおよびそれ以前のリリースでのデフォルトサーブレットの変更
        サービスパックが適用された後で、weblogic.propertiesファイルを確認し、次の変更が行われたことを確認します。

        weblogic.httpd.register.file=weblogic.servlet.FileServlet
        weblogic.httpd.initArgs.file=defaultFilename=index.html
        weblogic.httpd.defaultServlet=file


        上記の行が次のように変更されていることを確認します。

        weblogic.httpd.register.*.html=weblogic.servlet.FileServlet
        weblogic.httpd.initArgs.*.html=defaultFilename=index.html
        weblogic.httpd.defaultServlet=*.html


      • WebLogic 6.xでのデフォルトサーブレットの変更
      • 各Webアプリケーションで、web.xmlファイルに次の行を追加します。

        YourDefaultServlet

        サーブレット「YourDefaultServlet」を、デフォルトサーブレットにしたいサーブレットの名前に置き換えます。次に、Webブラウザに直接ダウンロードしたい各ファイルタイプ(HTMLファイルやGIFファイルなど)に対して、新しいservlet-mappingタグを追加する必要があります。たとえば、HTMLファイルをマップするには、次の行が必要になります。

        FileServlet*.html
BEA Systemsは、当社のすべてのセキュリティ勧告で推奨される修正をお客様が適用されることを強く提案します。またBEA Systemsは、お客様にすべてのサービスパックをリリース後直ちに適用していただくことも強く要請します。サービスパックには、以前の各サービスパックに加えて、製品の各バージョンに対するすべてのバグ修正が累積的に含まれています。サービスパックおよびサービスパックについての情報は次の場所で公開しています。
http://commerce.beasys.com/downloads/weblogic_server.jsp#wls

III. セキュリティに関する伝達方針

BEA製品にセキュリティ関連の問題が見つかった場合、BEA Systemsは勧告および適切な対策を示した指示を配信させていただく方針です。お客様のサイト、データ、およびコードのセキュリティは当社にとって最優先事項ですので、セキュリティ関連の問題はすべて包み隠さずはっきりとお伝えすることを約束します。

BEAは、製品のセキュリティに関する勧告のみを目的とした、パーミッションベースのメーリングリストを開設いたしました。ユーザがこのメーリングリストに参加しており、そのユーザが利用しているBEA製品にセキュリティ関連の問題が存在する場合、BEAは必要な勧告および指示を、適切な対処策とともに電子メールで配信させていただく方針です。