ヘッダーをスキップ

Oracle Database 2日でセキュリティ・ガイド
11g リリース1(11.1)

E05781-03
目次
目次
索引
索引

戻る 次へ

5 ネットワークの保護

この章の内容は次のとおりです。

ネットワークの保護について

『Oracle Database 2日でデータベース管理者』の「ネットワーク環境の構成」および使用しているプラットフォームの『Oracle Databaseインストレーション・ガイド』の手順に従って、Oracle Databaseインストール環境へのクライアント接続を構成できます。この章では、ネットワーク上を移動するデータを暗号化する方法を説明し、Oracle Databaseのネットワーク接続を保護するために従うことのできるガイドラインも示します。

ネットワーク上のクライアント接続の保護

ここでは、クライアント接続のセキュリティを高めて、完全な保護を確保する方法を説明します。SSLの使用は、これらのリストの重要な要素であり、認証と通信の厳密なセキュリティを可能にします。

ガイドラインは次のとおりです。

クライアント接続保護のガイドライン

インターネットを介したクライアント・コンピュータの認証には問題が多いため、通常は、かわりにユーザー認証が行われます。この方法により、偽造されたIPアドレス、危険にさらされたオペレーティング・システムまたはアプリケーション、偽造または盗用されたクライアント・システムIDがクライアント・システムで使用される問題を回避できます。また、次のガイドラインに従うことで、クライアント接続のセキュリティが向上します。

  1. アクセス制御を効果的に実施して、クライアントを厳密に認証します。

    デフォルトでは、オペレーティング・システムで認証されたログインのみがセキュア接続で許可され、Oracle Netおよび共有サーバー構成の使用は拒否されます。デフォルトで行われるこの制限により、リモート・ユーザーがネットワーク接続で他のオペレーティング・システム・ユーザーを装うことが阻止されます。

    初期化パラメータREMOTE_OS_AUTHENTTRUEに設定すると、データベースはセキュアでない接続を介して受信したクライアントのオペレーティング・システムのユーザー名を受け入れ、このユーザー名をアカウント・アクセスで使用します(初期化パラメータを変更するには、「初期化パラメータ値の変更」を参照してください)。コンピュータなどのクライアントは、オペレーティング・システムの認証を適切に実行していない場合があるため、この機能を使用するとセキュリティが非常に低下します。

    デフォルト設定REMOTE_OS_AUTHENT = FALSEにより、よりセキュアな構成が作成され、Oracle Databaseに接続するクライアントに対してサーバーベースの適切な認証が行われます。

    REMOTE_OS_AUTHENT初期化パラメータのデフォルト設定(FALSE)は、変更しないでください。

    このパラメータをFALSEに設定しても、ユーザーがリモートから接続できなくなるわけではありません。クライアントがすでに認証されていたとしても、データベースにより標準の認証プロセスが適用されるだけです。

  2. Secure Sockets Layer(SSL)を使用するように接続を構成します。

    SSL通信を使用すると、盗聴が困難になり、ユーザーとサーバーの認証に証明書を使用できます。SSLの構成方法は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

  3. クライアントおよびサーバーの証明書認証を設定します。

    証明書の管理方法の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

  4. システムにアクセスするユーザーを監視します。

    インターネットを介したクライアント・コンピュータの認証には問題が多いため、かわりにユーザー認証を行います。この方法により、偽造されたIPアドレス、ハッキングされたオペレーティング・システムまたはアプリケーション、偽造または盗用されたクライアント・システムIDがクライアント・システムで使用される問題が回避できます。また、次の手順を実行することで、クライアント・コンピュータのセキュリティが向上します。

    1. Secure Sockets Layer(SSL)を使用するように接続を構成します。SSL通信を使用すると、傍受が困難になります。また、ユーザーおよびサーバー認証で証明書を使用できます。SSLの構成方法については、『Oracle Database Advanced Security管理者ガイド』を参照してください。

    2. 次のようにして、クライアントおよびサーバーの証明書認証を設定します。

      • 組織は、部署と証明書の発行者により識別します。ユーザーは、識別名と証明書の発行者により識別します。

      • 証明書の期限が切れていないかテストします。

      • 証明書失効リストを監査します。

      証明書の管理方法の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

ネットワーク接続の保護のガイドライン

不適切なアクセスまたは変更からネットワークおよびトラフィックを保護することは、ネットワーク・セキュリティにおいて非常に重要です。データが移動するすべての経路を検討し、各経路およびノードに影響を与える脅威を評価します。次に、脅威およびセキュリティが侵害された場合の影響を抑制または排除する手順を実行します。また、監視および監査を実施し、脅威レベルの増加または侵入を検出します。

ネットワーク接続を管理するには、Oracle Net Managerを使用できます。Oracle Net Managerの使用の概要は、『Oracle Database 2日でデータベース管理者』を参照してください。『Oracle Database Net Services管理者ガイド』も参照してください。

次の手順を実行して、ネットワーク・セキュリティを強化します。

  1. リスナーのアクティビティを監視します。

    Oracle Enterprise Manager Database Controlを使用してリスナーのアクティビティを監視できます。Database Controlのホームページの「一般」で、使用しているリスナーのリンクをクリックします。「リスナー」ページが表示されます。このページには、生成されたアラートのカテゴリ、アラート・メッセージ、アラートがトリガーされた日時などの詳細な情報が含まれています。このページには、リスナーのパフォーマンス統計などの情報も含まれています。

  2. 管理者に対してlistener.oraファイルへの書込み権限およびリスナーのパスワードを要求して、オンライン管理を防止します。

    1. listener.oraファイルで、次の行を追加または変更します。

      ADMIN_RESTRICTIONS_LISTENER=ON
      
      
    2. RELOADを使用して構成をリロードします。

    3. 次のように、アドレス・リストの第1エントリをTCPSプロトコルにして、リスナーの管理にSSLを使用します。

      LISTENER=
        (DESCRIPTION=
          (ADDRESS_LIST=
            (ADDRESS=
              (PROTOCOL=tcps)
              (HOST = shobeen.us.example.com)
              (PORT = 8281)))
      
      

      リモートからリスナーを管理するには、クライアント・コンピュータ上のlistener.oraファイルでリスナーを定義します。たとえば、リスナーUSER281にリモートからアクセスする場合は、次の構成を使用します。

      user281 =
        (DESCRIPTION =
          (ADDRESS =
            (PROTOCOL = tcps)
            (HOST = shobeen.us.example.com)
            (PORT = 8281))
          )
        )
      
      

    listener.oraのパラメータの詳細は、『Oracle Net Servicesリファレンス・ガイド』を参照してください。

  3. リスナー・パスワードを設定しないでください。

    パスワードがlistener.oraファイルに設定されていないことを確認します。オペレーティング・システム認証によってリスナー管理が保護されます。パスワードが設定されていない場合、リモート・リスナー管理は無効です。

  4. 複数のNICカードに関連付けられている複数のIPアドレスがホストにある場合は、リスナーを特定のIPアドレスに設定します。

    これにより、リスナーはすべてのIPアドレスを監視できます。指定したIPアドレスを監視するように制限することもできます。これらのタイプのコンピュータでは、リスナーにすべてのIPアドレスを監視させるのではなく、IPアドレスを指定することをお薦めします。特定のIPアドレスの監視に制限することで、リスナー・プロセスからTCPエンドポイントが盗用されることを防止できます。

  5. リスナーの権限を制限して、データベースまたはOracleサーバーのアドレス空間のファイルを読取り/書込みできないようにします。

    この制限により、リスナー(またはエージェントが実行するプロシージャ)によって起動される外部プロシージャ・エージェントに、読取りまたは書込み操作の実行権限が継承されなくなります。この個別のリスナー・プロセスの所有者には、Oracleをインストールした所有者またはOracleインスタンスを実行する所有者(デフォルトの所有者であるORACLEなど)は指定しないでください。

    リスナーにおける外部プロシージャの構成の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  6. インターネットを介してデータを転送する場合は物理アドレスを保護できないため、このデータを保護する必要がある場合は暗号化を使用します。

    ネットワーク上のOracleデータを保護する方法については、「ネットワーク暗号化を使用したネットワーク上のデータの保護」を参照してください。ネットワークの暗号化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

  7. ファイアウォールを使用します。

    内部ユーザーにインターネット・アクセスを許可する場合は、ファイアウォールを適切に配置および構成することで、イントラネットへの外部アクセスを防止できます。

    • データベース・サーバーはファイアウォールの内側に配置してください。Oracle Databaseネットワーク・インフラストラクチャであるOracle Net(以前のNet8およびSQL*Net)は、様々なベンダーの各種ファイアウォールをサポートしています。サポートされるプロキシ対応のファイアウォールには、Network AssociatesのGauntletやAxentのRaptorなどが含まれます。サポートされるパケット・フィルタ型のファイアウォールにはCiscoのPIX Firewall、またサポートされるステートフル・インスペクション・ファイアウォール(より高機能なパケット・フィルタを実装したファイアウォール)には、CheckPointのFirewall-1が含まれます。

    • ファイアウォールは、保護するネットワークの外側に配置されている必要があります。

    • 安全性が確認されているプロトコル、アプリケーションまたはクライアント/サーバーのソースのみを受け入れるようにファイアウォールを構成します。

    • Oracle Connection Managerなどの製品を使用し、データベースへの単一のネットワーク接続を介して複数のクライアント・ネットワーク・セッションを多重化します。多重化する際に、送信元、送信先およびホスト名でフィルタ処理できます。この製品により、物理的に保護された端末または既知のIPアドレスのアプリケーションWebサーバーからの接続のみを受け入れるようにできます(IPアドレスは偽造可能なため、IPアドレスのみでフィルタ処理した認証では不十分です)。

  8. Oracleリスナーの不正な管理を防止します。

    リスナーの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  9. ネットワークIPアドレスをチェックします。

    Oracle Netの有効なノードの確認セキュリティ機能を利用すると、指定のIPアドレスを持つネットワーク・クライアントからOracleサーバー・プロセスへのアクセスを許可または拒否できます。この機能を使用するには、次のsqlnet.ora構成ファイル・パラメータを設定します。

    tcp.validnode_checking = YES
    
    tcp.excluded_nodes = {list of IP addresses}
    
    tcp.invited_nodes = {list of IP addresses}
    
    

    tcp.validnode_checkingパラメータで、機能を有効にします。tcp.excluded_nodesおよびtcp.invited_nodesパラメータは、特定のクライアントIPアドレスによるOracleリスナーへの接続の確立を拒否または有効にします。これにより、潜在的なサービス拒否(DoS)攻撃を防ぐことができます。

    Oracle Net Managerを使用して、これらのパラメータを構成できます。詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  10. ネットワーク・トラフィックを暗号化します。

    可能な場合は、Oracle Advanced Securityを使用して、クライアント、データベースおよびアプリケーション・サーバー間のネットワーク・トラフィックを暗号化します。Oracleネットワーク暗号化の概要は、「ネットワーク暗号化を使用したネットワーク上のデータの保護」を参照してください。ネットワーク暗号化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

  11. ホスト・オペレーティング・システム(Oracle Databaseが配置されているシステム)を保護します。

    オペレーティング・システムの不要なサービスをすべて使用禁止にして、ホスト・オペレーティング・システムを保護します。UNIXおよびWindowsの大部分のサービスは、標準的なデータベース構成では必要ありません。この種のサービスには、FTP、TFTP、TELNETなどがあります。使用を禁止している各サービスのUDPポートとTCPポートは、両方とも必ず閉じてください。いずれかのポートが使用可能になっていると、オペレーティング・システムが攻撃を受けやすくなります。

ネットワーク暗号化を使用したネットワーク上のデータの保護

情報は、データベース・レベルで暗号化して保護するだけでなく、ネットワークで送受信されるときにも保護する必要があります。

この項の内容は次のとおりです。

ネットワーク暗号化について

ネットワーク暗号化とは、クライアントとサーバー間のネットワークを移動するデータを暗号化することです。データベース・レベルだけでなくネットワーク・レベルでもデータを暗号化する必要があるのは、データベースで十分注意して暗号化したデータでもネットワーク・レベルで読み取られる可能性があるためです。たとえば、ネットワークを移動する情報がネットワーク・パケット・スニファを使用して傍受され、ファイルにスプールされて不正に使用される可能性があります。ネットワーク上のデータを暗号化することにより、このようなアクティビティを防止できます。

ネットワーク上のデータを暗号化するには、次のコンポーネントが必要です。

ネットワーク暗号化の設定

Oracle Net Managerを使用するか、sqlnet.oraファイルを編集して、ネットワーク暗号化を設定できます。このマニュアルでは、Oracle Net Managerを使用してネットワーク暗号化を設定する方法を説明します。

ネットワーク暗号化を設定するには、次のようにします。
  1. サーバー・コンピュータで、Oracle Net Managerを起動します。

    • UNIX: $ORACLE_HOME/binから、次のコマンドラインを入力します。

      netmgr
      
      
    • Windows: 「スタート」メニューから「すべてのプログラム」をクリックします。次に「Oracle - HOME_NAME」→「Configuration and Migration Tools」「Net Manager」の順にクリックします。

  2. Oracle Net Configurationのナビゲーション・ツリーで、「ローカル」を拡張してから「プロファイル」を選択します。


    画像の説明

  3. リストから「Oracle Advanced Security」を選択します。


    画像の説明

  4. 「Oracle Advanced Security」で、「暗号化」タブを選択します。

    「暗号化」設定ペインが表示されます。


    画像の説明

  5. 次の設定を入力します。

    • 暗号化: リストから「SERVER」を選択して、サーバーにネットワーク暗号化を設定します(クライアント・コンピュータの場合は「CLIENT」を選択します)。

    • 暗号化タイプ: 次の値のいずれかを選択して、暗号化および完全性のネゴシエーションをするときのサーバー(またはクライアント)の動作を指定します。

      • 適用: 一方の接続側で「必要」または「リクエスト」が指定されており、もう一方の接続側で矛盾のないアルゴリズムが使用可能になっている場合、サービスはアクティブになります。それ以外の場合、サービスはアクティブにはなりません。

      • 拒否: サービスはアクティブにはなりません。一方の接続側で必要な場合、接続は失敗します。

      • リクエスト: 一方の接続側で「適用」、「必要」または「リクエスト」が指定されており、もう一方の接続側で矛盾のないアルゴリズムが使用可能になっている場合、サービスはアクティブになります。それ以外の場合、サービスはアクティブにはなりません。

      • 必要: サービスはアクティブになります。一方の接続側で「拒否」が指定されている場合、または両立するアルゴリズムがない場合、接続は失敗します。

    • 暗号化シード: 最大256文字のランダムな文字列を入力します。Oracle Databaseは暗号化シードを使用して暗号化キーを生成します。暗号化または完全性のいずれかが有効な場合は必須です。

      暗号化シード・パラメータの一部にカンマ「,」、右括弧「)」などの特殊文字を使用する場合は、一重引用符で値を囲んでください。

    • 使用可能なメソッド: 次のアルゴリズムから1つ以上を選択し、移動ボタン(>)を使用して「選択メソッド」リストに移動します。「選択メソッド」リストに表示される順番により、ネゴシエーションの優先順位が決まります。つまり、最初に表示されるアルゴリズムが最初に選択されます。

      • AES256: Advanced Encryption Standard(AES)。AESはデータ暗号化規格(DES)にかわる暗号化規格として、米国標準技術局(National Institute of Standards and Technology: NIST)で認定されています。ASE256を使用すると、256ビットのブロック・サイズを暗号化できます。

      • RC4_256: Rivest Cipher 4(RC4)。Secure Sockets Layer(SSL)などのプロトコルを保護する、最も一般的に使用されるストリーム暗号です。RC4_256を使用すると、最大256ビットのデータを暗号化できます。

      • AES192: AESを使用して192ビットのブロック・サイズを暗号化できます。

      • 3DES168: 3キー・オプションによるトリプルDES。3DES168を使用すると、最大168ビットのデータを暗号化できます。

      • AES128: AESを使用して128ビットのブロック・サイズを暗号化できます。

      • RC4_128: RC4を使用して最大128ビットのデータを暗号化できます。

      • 3DES112: 2キー(112ビット)オプションによるトリプルDESを使用できます。

      • DES: 56ビットのData Encryption Standard(DES)キーです。DESは、米国標準技術局(National Institute of Standards and Technology: NIST)の推奨対象ではなくなりました。

      • RC4_40: RC4を使用して最大40ビットのデータを暗号化できます。

      • DES40: DESを使用して最大40ビットのデータを暗号化できます。

  6. 「ファイル」メニューから「ネットワーク構成の保存」を選択し、次に 「終了」を選択してOracle Net Managerを終了します。

  7. サーバーに接続するクライアント・コンピュータごとに、これらの手順を繰り返します。

    関連項目:

    • sqlnet.oraファイルのパラメータを変更してネットワーク暗号化を設定する詳細は、『Oracle Net Servicesリファレンス・ガイド』を参照してください。

    • ネットワークのデータ暗号化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

     

ネットワーク・セキュリティに使用される初期化パラメータ

表5-1に、ユーザー・アカウントを保護するために設定する初期化パラメータを示します。

表5-1    ネットワーク・セキュリティに使用される初期化パラメータ 
初期化パラメータ  デフォルト設定  説明 

OS_AUTHENT_PREFIX 

OPS$ 

データベースへの接続を試行するユーザーを認証するためにOracle Databaseで使用される接頭辞を指定します。Oracle Databaseは、このパラメータの値をユーザーのオペレーティング・システム・アカウント名およびパスワードの先頭に連結します。ユーザーが接続リクエストを試行すると、Oracle Databaseは接頭辞の付いたユーザー名をデータベース内のユーザー名と比較します。

旧バージョンとの下位互換性を保つために、このパラメータのデフォルト値はOPS$になっています。ただし、接頭辞の値を""(null文字列)に設定して、オペレーティング・システム・アカウント名に接頭辞を追加することを回避できます。 

REMOTE_LISTENER 

デフォルト設定なし 

Oracle Netリモート・リスナー(つまり、このインスタンスと同じコンピュータで実行されていないリスナー)のアドレスまたはアドレス・リストを解決するネットワーク名を指定します。アドレスまたはアドレス・リストは、tnsnames.oraファイル、またはシステムで構成されているその他のアドレス・リポジトリで指定されます。 

REMOTE_OS_AUTHENT 

FALSE 

リモート・クライアントがOS_AUTHENT_PREFIXパラメータの値で認証されるかどうかを指定します。 

REMOTE_OS_ROLES 

FALSE 

オペレーティング・システム・ロールがリモート・クライアントに対して許可されるかどうかを指定します。デフォルト値のFALSEを指定すると、Oracle Databaseはリモート・クライアントのロールを識別および管理します。 

初期化パラメータを変更するには、「初期化パラメータ値の変更」を参照してください。初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Database管理者ガイド』を参照してください。


戻る 次へ
Oracle
Copyright © 2007, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引