ヘッダーをスキップ

Oracle® Database Firewall管理ガイド リリース5.0 B65097-01 |
| 目次 | 索引

前 | 次 |

# A Oracle Database Firewallセキュリティ・ガイドライン

この付録の内容は、次のとおりです。

- セキュリティに関する一般的な推奨事項

- ネットワークベース・ソリューションのデプロイに関する考慮事項

- 様々なデータベース・アクセス・パスでのOracle Database Firewallの動作

- 特別な構成に関するセキュリティ上の考慮事項

## セキュリティに関する一般的な推奨事項

セキュリティについては、次の推奨事項に従うことをお薦めします。

- Database Firewallを使用して不要なトラフィックをブロックしている場合は、データベース・クライアントとデータベースの間のすべてのデータ・フローがDatabase Firewallを経由するようにします。これには、リクエストとレスポンスの両方が含まれます。

- サイトに適切なセキュリティ対策を使用してDatabase Firewallを実行しているコンピュータへのアクセスを制御し、アクセス権を(たとえば、レポートに使用するなど)特定のユーザーにのみ付与します。

- パスワードなどのユーザー資格証明がベスト・プラクティスに準拠していることを確認します。

- 表示のみの管理コンソール・ユーザー、ロギング管理者またはシステム管理者ロールをそれぞれの業務に応じて構成します。

- 業務を分離します(たとえば、管理者、Analyzerソフトウェアのユーザー、ログにアクセスする担当者などに分離します)。

## ネットワークベース・ソリューションのデプロイに関する考慮事項

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

- ネットワーク暗号化の処理

- サーバー側のSQLとコンテキストの構成処理

### ネットワーク暗号化の処理

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を経由しないようになります。

### サーバー側のSQLとコンテキストの構成処理

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の動作

次のタイプのデータベース・アクセス・パスでの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共有サーバー構成とディスパッチャの処理

- クライアントのIPアドレスによるTCP許可ノードへの影響

- 注意が必要なその他の動作

### Oracle共有サーバー構成とディスパッチャの処理

データベース・サーバーは、共有サーバー・アーキテクチャを使用して、少数のサーバー・プロセスを多数のユーザー・プロセスが共有できるようにしています。ディスパッチャ・プロセスは、受信した複数のネットワーク・セッション・リクエストを共通キューに送信し、次に、これらのセッション・リクエストを共有サーバーで使用可能な次のプロセスにリダイレクトします。デフォルトでは、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リファレンス』を参照してください。

### クライアントのIPアドレスによるTCP許可ノードへの影響

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で区別できません。