文書番号 47875 最終更新日 2004-05-25 公開区分 一般公開 文書タイプ PROBLEM
製品名(バージョン)[コンポーネント] SQL*Net (7.3.4 - 9.0.1.3) [SQL*Net]
SQL*Net (9.2.0.1 - 9.2.0.1) [SQL*Net]
プラットフォーム(バージョン) すべてのプラットフォーム ( - )
関連文書 62627  
概要 #40: Oracle Net Listener の潜在的な脆弱性
内容:
[問題]
以下の2つの潜在的なセキュリティの脆弱性が Oracle Net Listener で発見されました。

  1. 悪意あるユーザーにより、リモートから、Oracle Net Listener の構成ファイル(listener.ora)に、
     不正なデータが追加される可能性があります。 その結果、次回 Oracle Net Listener を起動しようと
     した時、Listener 制御ユーティリティ(LSNRCTL)がクラッシュする可能性があります。

  2. Oracle Net Listener 制御ユーティリティ(LSNRCTL)に対して不正なデータが入力された場合、
     起動時に Listener がクラッシュする可能性があります。

[対象リリース]
 - Oracle9i Database Release2 9.2.0.1
 - Oracle9i Database Release 9.0.1.x
 - Oracle8i Database Release 8.1.x
 - Oracle8 Database Release  8.0.x
 - Oracle7 Database Release  7.x (SQL*Net V2)

[対象プラットフォーム]
全てのプラットフォーム

[修正リリース]
9.2.0.2
9.0.1.4

[回避策]
パッチをご適用頂くことで回避できます。
パッチがご適用頂けない場合は以下の 1 2 両方の手順を行うことで Oracle Net TNS Listener 
に対するアクセスを制限することでご対応下さい。


  1. 以下のパラメータを  listener.ora に記述し Oracle Net TNS Listener を再起動
     することで Oracle Net TNS Listener のパスワードを設定することで不正なアクセスを
     防ぐことが可能です。

           PASSWORDS_リスナー名=xxxx

     上記の代替方法として、8.1.6.3 8.0.6.3 及び 8.1.7 以上のリリースでは、以下の
     パラメータを listener.ora に記述し Oracle Net TNS Listener を再起動することで 
     Oracle Net TNS Listener のパラメータを実行中に変更できないように設定可能です。

           ADMIN_RESTRICTIONS_リスナー名=ON


     複数 TNS Listener を使用している場合は、それぞれに対してこちらの対処を行って頂く
     必要がございます。 例えばリスナー名がデフォルトの LISTENER 及び LISTENER2 の2つを
     使用している場合、上記記述例は以下のようになります。

       - PASSWORDS_リスナー名=xxxx の例
           PASSWORDS_LISTENER=xxxx
           PASSWORDS_LISTENER2=xxxx
 
       - ADMIN_RESTRICTIONS_リスナー名=ON の例
           ADMIN_RESTRICTIONS_LISTENER=ON
           ADMIN_RESTRICTIONS_LISTENER2=ON


  2. OS でパーミッションの設定が可能な場合、パーミッションを変更することで listenrer.ora 
     に対して不正なアクセスを防ぐことが可能です。

        - Unix の場合
           以下の例のように、パーミッションを変更することが可能です。

           $ chmod 600 $ORACLE_HOME/network/admin/listener.ora

        - WindowsNT4.0/2000 の場合
           以下の例のように、必要なユーザーに対してのみ権限を付与することが可能です。

           コントロールパネルのサービスより、TNS Listener のサービスをダブルクリックし、
           ログオンアカウントを確認します。
           listener.ora ファイルを右クリックし、プロパティを選択し、セキュリティタブから
           アクセス権を選択します。 例えば TNS Listener 起動ユーザーがシステムアカウント
           の場合、システムアカウント及び、listener.ora ファイルを編集する必要がある
           ユーザーアカウントに対してのみ権限を付与します。

[パッチ情報]
日本でリリースされている全てのプラットフォームに対して、現在フルサポート期間にある
9.2.0、9.0.1、8.1.7 の最新パッチレベルに対応するパッチを作成する予定です。
現在提供させて頂いてますパッチの情報については、以下の URL の "対応パッチの入手方法"
をご参照き、そちらよりパッチのダウンロードを行って下さい。

   http://otn.oracle.co.jp/security/020819_2/top.html


[よくある質問とその回答]

  Q. 普通に使用している状態で、この障害が発生する可能性はあるでしょうか。
  A. 悪意あるユーザーにより意図的な操作が行われない限り、通常の使用方法ではこの問題は
     発生しません。


  Q. 今回の問題はどのような環境で発生するのでしょうか?
  A. 通常のインターネットシステムにおいては、Oracle Net TNS Listener はファイアーウォールの
     内側に存在することが多いため、この問題には遭遇することはないと考えられます。
     Oracle Net TNS Listener とデータベースが共にファイアーウォールの外側にある環境の場合、
     悪意あるユーザーにより不正な操作が意図的に行われた場合に発生する可能性があります。
     しかしこの構成の場合、データベースがファイアーウォールに守られている構成とは言い難いため、
     ファイアーウォールの内側に再構成することをお勧めします。


  Q. この障害の為にOracle Net TNS Listener が正常に動作しなくなりました。応急処置を教えて下さい。
  A. 以下の方法で Oracle Net TNS Listener を再起動して下さい。

       - Unix プラットフォーム
         ps -ef |grep tns 等で リスナープロセスの PID を確認しプロセスを Kill します。
         以下のコマンドでリスナーを起動します。

            lsnrctl start [リスナー名]

       - WindowsNT4.0
         コントロールパネルのサービスから以下のサービスを停止・起動します。
       - Windows2000
         コントロールパネルの管理ツールのサービスから以下のサービスを停止・起動します。

            Oracle[%ORACLE_HOME_NAME%]TNSListener[リスナー名]


  Q. 今回の障害に対して特に注意する必要があるシステム環境を教えて下さい。
  A. 社外から直接Oracle Net TNS Listener に接続する可能性がある場合には注意が必要です。
     例えば、以下の何れかに該当する場合にはパッチの適用をご検討下さい。

       - 社外からOracle Net TNS Listener が起動している IP ADDRESS とポート番号に対して接続できる
       - Oracle Net TNS Listener が起動している IP ADDRESS とポート番号の情報が公開されている
       - Oracle Net TNS Listener がデフォルトのポート番号である1521, 1526を使用している


  Q. この障害から回避する為に、パッチはクライアント側に適用する必要がありますか。
  A. Oracle Net TNS Listener がインストールされているサーバーマシンに適用頂くことで
     回避可能です。 クライアント側に適用頂く必要はありません。


  Q. 本現象を発生させる具体的な方法について教えて下さい。
  A. セキュリティに関する情報のため、公開は控えさせて頂いております。


[謝辞]
  オラクル社はこの脆弱性に関する情報を提供していただきました Next Generation Security Software
  Limited 社の David Litchfield 様に深く感謝をいたします。


[更新履歴]
 2004/05/25 文書管理情報を更新
 2002/12/13 パッチ情報の URL の変更@SNL_DATE=0209