この章の内容は、次のとおりです。
直接データベース問合せ(DDI)を使用すると、Database Firewallがサポート対象のデータベースに対して特定の情報を問い合せることができます。収集される情報は、データベースのタイプによって異なります。
DDIを使用すると、SQL文を作成したデータベース・ユーザーの名前、オペレーティング・システムおよびクライアント・プログラムの情報を、その文自体から取得できない場合に、Microsoft SQL ServerとSybase SQL Anywhereの監視対象データベースに問い合せて取得できます。この情報は、Database Firewallレポートで使用できます。
これらの2つのデータベースに対してDDIを構成する手順は、次のとおりです。
提供されているスクリプトを実行し、保護対象データベースの既存のユーザー・アカウントに権限を付与します。「SQL ServerとSybase SQL Anywhereのデータベースに対するDDIの構成」を参照してください。
保護対象データベースを監視する強制ポイントでDDIを有効にします。「直接データベース問合せの有効化」を参照してください。
Oracle Advanced Securityの暗号化を使用するOracleデータベースを監視している場合には、そのデータベースに送信される文や、データベースから受信される応答を復号化するためにDDIを使用する必要があります。
Oracle Advanced Securityを使用するOracleデータベースに対するDDIの構成
Oracle Advanced Securityを使用するOracleデータベースに対してDDIを構成するには、次の手順が必要です。
保護対象のOracleデータベースにパッチを適用します。「指定されたパッチのOracleデータベースへの適用」を参照してください。
Database Firewallから保護対象のOracleデータベースに公開鍵を指定します。「Oracleデータベースへの公開鍵の指定」を参照してください。
データベースを監視する強制ポイントでDDIを有効にします。「直接データベース問合せの有効化」を参照してください。
Oracleデータベースの文の復号化に関する制限
Oracle Advanced Securityを使用してトラフィックを復号化するようにDatabase Firewallを構成する際には、次の制限があります。
サポートされるOracle Databaseのバージョンは、10.x、11.1、11.2です。
Oracle Advanced Securityのチェックサムを使用する場合、Database Firewallで文の置換は行われません。
Oracle Advanced SecurityのRC4暗号はサポートされません。
Oracle RACやクラスタはサポートされません。
この項の内容は、次のとおりです。
Microsoft SQL Server (2005または2008バージョン)データベースのユーザー・アカウントを設定する手順は、次のとおりです。
Oracle Database Firewall製品のCD (Oracle Database Firewall Utilities 5.1
)から、スクリプトを実行するサーバーにdatabase
ディレクトリをコピーします。
スクリプトを実行するコンピュータにsqlcmd.exe
ユーティリティがインストールされていることを確認します。
このサーバーで、database/ddi
ディレクトリに移動し、sqlserver
圧縮ファイルをsqlserver
というディレクトリ(推奨)に解凍します。このディレクトリには、ddi_add_user.sql
という解凍されたファイルが格納されます。
ddi_add_user.sql
スクリプトには、次の情報に関する設定が含まれています。
$(username)
は、直接データベース問合せを担当するユーザー・アカウントです。このユーザー・アカウントは、ストアド・プロシージャおよびユーザー・ロール監査(ddi_auditor
など)用に指定したユーザー・アカウントとは異なるユーザー・アカウントにすることが理想的です。
$(password)
は、このユーザー・アカウントのパスワードです。
ユーザーの作成およびユーザー権限の設定を行う権限が付与されたユーザーとして、SQL Serverデータベースに対してddi_add_user.sql
スクリプトを実行します。
構文は、次のとおりです。
sqlcmd -S server_name -U sa -P sa_password -i ddi_add_user.sql -v username="username" password="password"
詳細は、次のとおりです。
server_name
: 保護対象データベースが存在するデータベース・サーバーの名前またはIPアドレスを入力します。この引数を使用するのは、リモート・サーバーからスクリプトを実行する場合のみです。このスクリプトをローカルで実行する場合は、この引数を省略できます。
sa
: システム管理者のユーザー名を入力します。
sa_password
: システム管理者のパスワードを入力します。
username
: ddi_add_user.sql
スクリプトに$(username)
で指定された、直接データベース問合せ用に作成するユーザー・アカウントを入力します。このユーザー名は二重引用符で囲みます。
password
: ddi_add_user.sql
スクリプトに$(password)
で指定された、直接データベース問合せ用のユーザー・アカウントのパスワードを入力します。このパスワードは二重引用符で囲みます。
次に例を示します。
sqlcmd -U sa -P sa_password -i ddi_add_user.sql -v username="ddi_auditor" password="abcd1234" sqlcmd -S my_server -U sa -P sa_password -i ddi_add_user.sql -v username="ddi_auditor" password="abcd1234"
ddi_add_user.sql
スクリプトでは、直接データベース問合せ用のユーザー・アカウントに次の権限が付与されます。
VIEW ANY DEFINITION
およびVIEW SERVER STATE
(SQL Server 2005以降)
master.dbo.sysdatabases
表に対するSELECT
Sybase SQL Anywhereデータベースの直接データベース問合せのユーザー権限を設定する手順、次のとおりです。
Oracle Database Firewall製品のCD (Oracle Database Firewall Utilities 5.1
)から、スクリプトを実行するサーバーにdatabase
ディレクトリをコピーします。
このサーバーで、database/ddi
ディレクトリに移動し、sqlanywhere
圧縮ファイルをsqlanywhere
というディレクトリ(推奨)に解凍します。このディレクトリには、解凍されたddi_add_user.sql
というファイルが含まれます。
このスクリプトには、次の情報に関する設定が含まれています。
$(username)
は、直接データベース問合せを担当するユーザー・アカウントです。このユーザー・アカウントは、ストアド・プロシージャおよびユーザー・ロール監査(ddi_auditor
など)用に指定したユーザー・アカウントとは異なるユーザー・アカウントにすることが理想的です。
$(password)
は、このユーザー・アカウントのパスワードです。
ユーザーの作成およびユーザー権限の設定を行う権限が付与されたユーザーとして、SQL Anywhereデータベースに対してddi_add_user.sql
スクリプトを実行します。
構文は、次のとおりです。
isql -S server_name -U sa -P sa_password -i ddi_add_user.sql -v username="username" password="password" database="protected_database"
詳細は、次のとおりです。
server_name
: この引数を使用するのは、データベースがリモートの場合のみです。サーバーまたはそのIPアドレスの名前を入力できます。スクリプトをローカルで実行する場合は、-S server_name
引数を省略できます。
sa
: システム管理者のユーザー名を入力します。
sa_password
: システム管理者のパスワードを入力します。
username
: ddi_add_user.sql
スクリプトに$(username)
で指定された、直接データベース問合せ用に作成するユーザー・アカウントを入力します。このユーザー名は二重引用符で囲みます。
password
: ddi_add_user.sql
スクリプトに$(password)
で指定された、直接データベース問合せ用のユーザー・アカウントのパスワードを入力します。このパスワードは二重引用符で囲みます。
database="
protected_database
"
: ddi_add_user.sql
スクリプトに$(database)
で指定された、このサーバー内の保護対象データベースの名前を入力します。このデータベース名は二重引用符で囲みます。
次に例を示します。
isql -U sa -P sa_password -i sddi_add_user.sql -v username="ddi_auditor" password="abcd1234" database="sales_db" isql -S my_server -U sa -P sa_password -i sddi_add_user.sql -v username="ddi_auditor" password="abcd1234" database="sales_db"
ddi_add_user.sql
スクリプトでは、直接データベース問合せ用のユーザー・アカウントに次の権限が付与されます。
CONNECT
システム表に対するSELECT
sys.sysuser sys.sysuserauthority sys.sysremoteuser sys.sysloginmap sys.sysgroup
「直接データベース問合せの有効化」の手順に従って、Microsoft SQL ServerまたはSybase SQL Anywhereのデータベースに対するDDIの設定を完了します。
この項の内容は、次のとおりです。
Oracle Advanced Securityを使用するOracleデータベースに、この項で指定したパッチを適用する必要があります。
パッチを適用する手順は、次のとおりです。
Oracleデータベースを停止します。
次のコマンドを実行します。
$ORACLE_HOME/OPatch/opatch apply
path_to_patchfile
.zip
このパッチのIDは、バグ番号13051081
です。したがって、パッチ・ファイルはp13051081_
OracleVersion
_
Platform
.zip
という形式になります。
Oracle Databaseを起動します。
Oracle Database Firewall製品のCD (Oracle Database Firewall Utilities 5.1
)から、スクリプトを実行するDatabase Firewallサーバーにdatabase
ディレクトリをコピーします。
このサーバーで、database/ddi
ディレクトリに移動し、oracle
圧縮ファイルをoracle
というディレクトリ(推奨)に解凍します。
このディレクトリには、解凍されたadvanced_security_integration.sql
というファイルが含まれます。
次のコマンドの実行
sqlplus / as sysdba @advanced_security_integration
username
password
直接データベース問合せを使用するデータベース・トラフィックを復号化するためには、Oracle Advanced Securityを使用するOracleデータベースに公開鍵を指定する必要があります。
この公開鍵をコピーする手順は、次のとおりです。
Oracleデータベースを監視するDatabase Firewallの管理コンソールで「System」タブをクリックし、「System」メニューで「Public Keys」をクリックします。
「Oracle Advanced Security Decryption」の下にある公開鍵をコピーし、Oracleデータベースに指定します。
「直接データベース問合せの有効化」の手順に従って、Oracle Advanced Securityを使用するOracleデータベースに対するDDIの設定を完了します。
Database Firewallで直接データベース問合せを有効にする手順は、次のとおりです。
Management Server管理コンソールにログインします。
詳細は、「管理コンソールへのログイン」を参照してください。
「Monitoring」タブをクリックします。
デフォルトでは、「Enforcement Points」ページが表示されます。表示されない場合は、ページの左側の「Enforcement Points」メニューで「List」をクリックします。
問合せされる保護対象データベースを監視する強制ポイントを検索し、その強制ポイントの「Settings」ボタンをクリックします。
「Monitoring Settings」ページが表示されます。
「Database Interrogation」領域まで下にスクロールし、「Activate Database Interrogation」チェック・ボックスをクリックします。
「Activate Database Interrogation」領域が展開され、必要な認証の詳細を入力できます。
「Monitoring Settings」ページの最後までスクロールし、「Save」ボタンをクリックします。
直接データベース問合せを一時的に無効化できます。Oracle Database Firewallでは、作成した構成情報が、次回直接データベース問合せを有効化したときのために保存されます。直接データベース問合せの構成およびソフトウェアを削除する場合は、『Oracle Database Firewallインストレーション・ガイド』を参照してください。
直接データベース問合せを無効にする手順は、次のとおりです。
Management Server管理コンソールにログインします。
詳細は、「管理コンソールへのログイン」を参照してください。
「Monitoring」タブを選択します。
デフォルトでは、「Enforcement Points」ページが表示されます。
DDIを無効にするデータベースを監視する強制ポイントの「Settings」ボタンをクリックします。
「Monitoring Settings」ページが表示されます。
「Direct Database Interrogation」領域まで下にスクロールします。
「Activate Database Interrogation」チェック・ボックスの選択を解除します。
「Monitoring Settings」ページの最後までスクロールし、「Save」ボタンをクリックします。