この付録の内容は、次のとおりです。
セキュリティについては、次の推奨事項に従うことをお薦めします。
Database Firewallを使用して不要なトラフィックをブロックしている場合は、データベース・クライアントとデータベースの間のすべてのデータ・フローがDatabase Firewallを経由するようにします。これには、リクエストとレスポンスの両方が含まれます。
サイトに適切なセキュリティ対策を使用してDatabase Firewallを実行しているコンピュータへのアクセスを制御し、アクセス権を(たとえば、レポートに使用するなど)特定のユーザーにのみ付与します。
パスワードなどのユーザー資格証明がベスト・プラクティスに準拠していることを確認します。
表示のみの管理コンソール・ユーザー、ロギング管理者またはシステム管理者ロールをそれぞれの業務に応じて構成します。
業務を分離します(たとえば、管理者、Analyzerソフトウェアのユーザー、ログにアクセスする担当者などに分離します)。
この項の内容は、次のとおりです。
Oracle Database Firewallは、データベース層とアプリケーション層の間にデプロイします。データベース層とアプリケーション層の間のSQLトラフィックが暗号化されていると、Database Firewallは、このSQLトラフィックに対する保護ポリシーを理解できず、強制できません。
この問題を解決するには、暗号化されたトラフィックを拒否または防止するようにデータベース・サーバーを構成します。Oracleデータベースの場合は、sqlnet.oraファイルのSQLNET.ENCRYPTION_SERVER
パラメータをREJECTED
に設定します。(この設定の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。)Database Firewallをサポートしているすべてのデータベース製品(Oracle Databaseを含む)では、SSLターミネーション・ソリューションを使用して、Database Firewallに到達する前にSQLトラフィックを終了できます。これにより、クリア・テキスト・トラフィックがDatabase Firewalを経由しないようになります。
Oracle Database Firewallポリシー強制は、データベース・クライアントとサーバー間のSQLトラフィックを取得して理解することに依存しています。Database Firewallではアプリケーション層とデータベース・サーバー間のネットワーク・トラフィックのみを分析するため、データベース・サーバー自体から直接起動されるSQLは確認できないことに注意してください。Database Firewallが確認できないSQL文の一般的なタイプには、ストアド・プロシージャやコールアウトから実行されるシステム付属のSQLやユーザー定義のSQL、Oracleデータベース内のDBMS_JOB
またはDBMS_SCHEDULER
PL/SQLパッケージによって作成されたSQLなどのバックグラウンド・ジョブから実行されるSQL、DDLや他のSQL文から間接的に実行されるSQLなどがあります。
Oracle Database Firewallは、その実行コンテキスト全体をネットワーク・トラフィックから取得した情報を使用して作成します。ただし、強制は、サーバー上のコンテキスト情報に基づています。このコンテキストの欠落は、ノベルティ・ポリシーで使用する識別子の解決方法に影響を与えます。
次のタイプのデータベース・アクセス・パスでのOracle Database Firewallの動作に注意してください。
SQL以外のプロトコルのアクセス。データベース・プラットフォームでは、データベースSQLベースのプロトコルの他に様々なネットワーク・プロトコルをサポートしています。たとえば、Oracle Databaseでは、データベースに格納されているデータに対してHTTP、FTP、アドバンスト・キューイング、ダイレクト・パスおよびNFSアクセスがサポートされています。Oracle Database Firewallでポリシー強制が適用されるのは、データベースへのSQLベースのアクセスに対してのみです。Database Firewallで理解可能なプロトコルは、Oracle TTC/Net、Microsoft SQL ServerやSybase ASEに使用されるTabular Data Stream (TDS)、およびIBM Distributed Relational Database Architecture (DRDA)です。
ローカル接続。Oracle Database Firewallには、ローカル接続に対する限定的な監視サポートが用意されています。bequeathプロトコルや共有メモリーの接続など、ローカル接続に対するブロッキング機能は用意されていません。bequeathプロトコルに関する詳細は、『Oracle Database Net Services管理者ガイド』を参照し、共有メモリー管理に関する詳細は、『Oracle Database管理者ガイド』を参照してください。
IPv6接続。Oracle Database Firewallでは、IPv6デプロイメントをサポートしていません。Database Firewallでは、IPv6接続からのすべてのトラフィックは自動的にブロックされます。
非TCPベースの接続。Oracle Database Firewallでは、TCPベースによるデータベース・サーバーへのネットワーク接続のみをサポートしています。Systems Network Architecture (SNA)、Internetwork Packet Exchange/Sequenced Packet Exchange (IPX/SPX)など、TCPでないプロトコルを使用したデータベース・サーバーへの接続は監視できません。
この項の内容は、次のとおりです。
データベース・サーバーは、共有サーバー・アーキテクチャを使用して、少数のサーバー・プロセスを多数のユーザー・プロセスが共有できるようにしています。ディスパッチャ・プロセスは、受信した複数のネットワーク・セッション・リクエストを共通キューに送信し、次に、これらのセッション・リクエストを共有サーバーで使用可能な次のプロセスにリダイレクトします。デフォルトでは、Oracle DatabaseでTCPプロトコルに対するディスパッチャ・サービスが1つ作成されます。init.ora
ファイルでは、この設定は次のようにDISPATCHERS
パラメータによって制御されます。
dispatchers="(PROTOCOL=tcp)"
デフォルトの構成では、動的ポートは、TCPプロトコルを使用して受信接続をリスニングします。共有サーバー構成では、多数のユーザー・プロセスがこの動的ポートでディスパッチャに接続します。このポートでの接続を監視するようにDatabase Firewallが構成されていない場合は、これらの接続にポリシーを強制することはできません。Database Firewallの接続を簡単に構成するには、DISPATCHERSパラメータにポート番号を明示的に指定してください。次に例を示します。
dispatchers="(PROTOCOL=tcp)(PORT=
nnnn
)"
nnnn
の値を選択し、そのアドレスを通常のリスナー・アドレスとともに保護するようにDatabase Firewallを構成します。
共有サーバーの管理に関する詳細は、『Oracle Database管理者ガイド』も参照してください。DISPATCHERS
パラメータに関する詳細は、『Oracle Databaseリファレンス』を参照してください。
Oracle Database Firewallがデータベース・ポリシー強制(ブロッキング)モードの場合、保護対象データベースは、Database FirewallのIPアドレス、つまりDatabase Firewallブリッジ(「ステップ7: スタンドアロンDatabase FirewallのブリッジIPアドレスの構成」で説明)に割り当てられているIPアドレスを認識するのみです。保護対象データベースのクライアントのIPアドレスは認識されないため、結果的に、ユーザーはこのデータベースに接続できません。
この問題は、sqlnet.ora
ファイルのTTC/NetパラメータTCP.INVITED_NODES
の設定に、Database FirewallブリッジIPアドレスを指定することで修正できます。データベースへのアクセスが許可されているクライアントのノードは、TCP.INVITED_NODES
パラメータで指定します。Database Firewallをデプロイする場合は、ポリシー・プロファイル機能を使用して、TCP.INVITED_NODES
によって提供されるネットワーク・アクセス制限と類似したアクセス制限を実装してください。Database Firewallのポリシー・プロファイル機能では、IPアドレス・セット、時刻、ユーザーなどの追加の要因をサポートしています。プロファイルに関する詳細は、『Oracle Database Firewallセキュリティ管理ガイド』を参照してください。
この項に説明されているように、データベース・サーバーが認識するクライアントIPアドレスは、Database Firewallのブリッジに割り当てられているアドレスです。この機能は、元のクライアントIPアドレスに依存しているデータベース・サーバーの機能に影響を与える可能性があります。クライアントIPアドレスに依存している可能性があるこの機能には、ログオン・トリガー、監査データの分析およびOracle Database Vaultファクタがあります。
クライアント側のコンテキスト。Oracle Database Firewallのポリシーは、クライアント・プログラム名、クライアントOSユーザー名など、クライアント側のコンテキスト情報を使用するように構成できます。クライアントがこの情報をデータベース・サーバーに送信すると、Database Firewallはその情報をネットワークから取得します。Oracle Database Firewallでは、クライアント側またはネットワークの整合性が制御または強制されないため、この情報を使用してセキュリティ・ポリシーを定義する場合は、事前に情報の整合性を考慮する必要があります。
複数のデータベースと共有リスナーでのサービス。Oracle Database Firewallでは、IPアドレスとポート番号に基づいてポリシーが強制されます。単一のリスナー・エンドポイント(IP_address
:
port
)が複数のデータベースで共有されている構成では、個々の各データベースに対するトラフィックをDatabase Firewallで区別できません。