7 Database Firewallポリシー
Database Firewallポリシーを作成および管理できます。
7.1 Database Firewallポリシーについて
Database Firewallポリシーを使用すると、Database Firewallが受信するSQLトラフィックに対して実行するアクションを構成できます。
Database Firewallを使用したネットワークベースのSQLトラフィック監視を読んで次のことを理解することをお薦めします:
- Database Firewallのネットワーク配置オプション
- 様々な保護モード
- Database Firewallポリシーの仕組みの概念
Database Firewallポリシーは、データベースに対するSQL操作をレポートし、クライアント・アプリケーション・アクセスを制御し、予想されるデータベース・アクセス動作を強制し、SQLインジェクションを防止し、アプリケーションのバイパスを制御し、悪意のあるSQL文によるデータベースへの影響を防止するように構成できます。
Database Firewallを使用すると、通過するSQL文の許可リストを作成したり、ブロックまたはアラートする拒否リストを作成できます。
Database Firewallポリシーは、ユーザー、ユーザーがデータに対して実行できるアクション、およびイベントが発生したときにDatabase Firewallが開始する必要があるアクションに基づいて定義されます。
7.2 Database Firewallのデプロイメント・モードとポリシーについて
Database Firewallのデプロイメント・モードおよび対応するポリシー・タイプについて学習します。
Database Firewallは、次のモードでデプロイできます。
- モニタリング(帯域外)
- モニタリング(ホスト監視)
- モニタリング/ブロック(プロキシ)
モニタリング(帯域外)またはモニタリング(ホスト監視)のデプロイメント・モードは、監視のみ、および潜在的なポリシー違反に関するアラートに使用できます。
モニタリング/ブロック(プロキシ)・モードは、監視およびアラートに加えて、特定のSQLアクティビティをブロックするためにデプロイできます。たとえば、ポリシー・ルールを定義して、ポリシー・ガイドラインに違反するSQL文をブロックできます。
Database Firewallポリシーを定義するシナリオを次に示します。
シナリオ | 説明 |
---|---|
特権ユーザーの監視 |
特権ユーザーによって実行されるすべてのSQL文を監視および取得するようにDatabase Firewallポリシーを構成します。特権ユーザーのリストを作成し、セッション・コンテキスト・ルールでこのリストを使用します。これにより、特定のターゲット・データベースに対してネットワーク経由で実行されるすべてのSQL文が提供されます。3つのモードのいずれかでDatabase Firewallをデプロイし、セッション・コンテキスト・ルールを使用します。 |
機密アプリケーション・データベースへのDBAアクセスのブロック |
Database Firewallをモニタリング/ブロック(プロキシ)・モードでデプロイします。DBA (データベース管理者)ユーザーのリストを作成し、これらのユーザーによって機密オブジェクトのリストに対して実行されるSQL文をブロックするように、データベース・オブジェクト・ルールを構成します。 |
ネットワーク経由の機密データとアクセスの監視 |
データベース・オブジェクト・ルールを使用して、ユーザー・アクセスおよびその機密データに対する操作を監視するようにDatabase Firewallポリシーを構成します。データベース・オブジェクト・ルールの構成中に、機密オブジェクト(表またはビュー)のリストを提供します。Database Firewallは、このシナリオの3つのモードのいずれかでデプロイできます。 |
不正アクセスのブロック |
Database Firewallをモニタリング/ブロック(プロキシ)・モードでデプロイし、データベース・オブジェクト・ルールを使用します。ユーザーのプロファイルを作成し、特定の機密データ(表またはビュー)に対する許可操作を構成します。2番目のデータベース・オブジェクト・ルールを作成することで、他のすべてのアクセスおよび操作をブロックします。ブロック・ルールがルール・リストの最後のルールであることを確認します。 |
信頼できるIPアドレスおよびアプリケーションからのSQL文の許可 |
Database Firewallをモニタリング/ブロック(プロキシ)・モードでデプロイします。セッション・コンテキスト・ルールを構成して、クライアント・アプリケーションとそのホストIPアドレスの許可リストからのSQLトラフィックを許可します。その他のアクセスは、デフォルト・ルールを使用してDatabase Firewallによって監視、アラートまたはブロックされる必要があります。このデータベース・アクセス・パターンを強制するには、セッション・コンテキスト・ルールで許可リストを作成し、他のSQL文をアラートまたはブロックするようにデフォルト・ルールを構成します。 |
SQLインジェクションの脅威またはゼロデイ・エクスプロイトの防止 |
Database Firewallをモニタリング/ブロック(プロキシ)・モードでデプロイします。アプリケーションおよびデータベース・ユーザーの信頼できるセットからSQL文を取得するようにDatabase Firewallを構成します。これはSQL文の許可リストです。Database Firewallは、SQL構文ベースのエンジンを使用して、類似したSQL文を解析し、クラスタにグループ化します。このようなクラスタのリストを作成し、特定のターゲットのリストと一致するすべてのSQL文にSQL文ルールを構成し、リストと一致しないクラスタを持つSQL文をアラートまたはブロックします。 |
潜在的なデータ流出の試みの検出 |
データベース・オブジェクト・ルールを使用して、 |
7.3 Database Firewallポリシーのタイプ
Database Firewallポリシーのタイプについて学習します。
Database Firewallポリシーは、次のカテゴリに分類されます。
- ユーザー定義Database Firewallポリシー
- 事前定義済のDatabase Firewallポリシー
ユーザー定義Database Firewallポリシー
Oracle AVDFでは、迅速かつ効率的に独自のポリシーを定義できます。これらのポリシーには、6種類のルールを作成できます。
ルール | 説明 |
セッション・コンテキスト |
クライアント・プログラム名、ホストIPアドレス、OSユーザー、データベース・ユーザーなどのクライアント・プログラム・セッション属性が、このルールでDatabase Firewallのアクションを定義するために使用されます。 |
SQL文 |
Database Firewallによって取得されたSQL文は、類似した文のグループにクラスタ化されます。このルールは、このようなSQLクラスタでのDatabase Firewallのアクションを定義します。 |
データベース・オブジェクト |
データベース・オブジェクト・ルールは、構成された表またはビューのリストに対するSQL文タイプ(DML、DDLなど)に基づいてDatabase Firewallのアクションを定義します。 |
ログイン/ログアウト |
ログインまたはログアウト・ルールは、ターゲット・データベースのクライアント・プログラムによるログインおよびログアウト・セッションに基づいてDatabase Firewallのアクションを定義します。 |
不明なトラフィック |
このルールは、次の理由により認識されないSQL文に対するDatabase Firewallのアクションを定義します。
ノート: Javaコードの解釈は、Database Firewallではサポートされていません。 |
デフォルト |
このルールでは、SQL文が以前に構成されたルールのいずれにも適合しない場合、Database Firewallはこのルールのアクションに従って動作します。 |
事前定義済のDatabase Firewallポリシー
Oracle AVDFには、事前定義済のDatabase Firewallポリシーが含まれています。これらが、SQL文をAudit Vault Serverのログに記録する頻度を定義します。これらはSQL文のみを監視し、アラートの発生や、SQL文のブロックは実行しません。SQL文をアラートまたはブロックするには、ユーザー定義Database Firewallポリシーを構成する必要があります。
ポリシー名 | 説明 |
デフォルト |
Database Firewallモニタリング・ポイントがターゲットについて構成されると、この「デフォルト」ポリシーが自動的に適用されます。これは、Oracle AVDFリリース20.7以降で使用できます。監査者は、この「デフォルト」ポリシーを既存のDatabase Firewallモニタリング・ポイントに割り当てることもできます。 「デフォルト」ポリシーは、次の3つのルールで構成されます。
さらに、機密データが誤ってログに記録されることがないように、データ・マスキングをオンにしてトラフィックがログに記録されます。このポリシーは、登録中に新しいターゲットすべてにデフォルトで適用されます。これには、後で特定のターゲット・データベースについて構成された新しいモニタリング・ポイントがすべて含まれます。 この「デフォルト」ポリシーは、他のポリシーと同様にコピーしたり、カスタマイズできます。 ノート: Oracle AVDF 20.7より前のリリースからアップグレードする場合、アップグレード前に作成されたDatabase Firewallモニタリング・ポイントには、アップグレード前のものと同じDatabase Firewallポリシーが割り当てられたままになります。アップグレード後に、この「デフォルト」ポリシーを適用できます。 |
すべてログに記録 |
オフライン分析のすべての文をログに記録します。すべての文がAudit Vault Serverのログに記録されます。 ノート: このポリシーが適用されると、ログに記録されたデータに大量のストレージを使用できます。 |
すべてログに記録 - マスクなし |
データをマスクせずに、オフライン分析のすべての文をログに記録します。すべての文が、データをマスクせずにAudit Vault Serverのログに記録されます。 ノート: このポリシーが適用されると、ログに記録されたデータに大量のストレージを使用できます。このポリシーを選択すると、機密情報がログに記録される場合があります。 |
サンプルをログに記録 |
オフライン分析の文の例をログに記録します。Audit Vault Serverのログに記録する頻度は、同じクラスタIDを持つ10番目の文ごとです。 ノート: このポリシーを適用すると、すべての文をログに記録するより少ない文が格納されます。ログに記録されたデータに大量のストレージを引き続き使用する可能性があります。 |
一意をログに記録 |
一意のSQLトラフィックのオフライン分析の文の例をログに記録します。一意の文がAudit Vault Serverのログに記録されます。SQL文は、次のパラメータに基づいて一意とみなされます。
ノート: このポリシーを適用すると、すべての文をログに記録するより少ない文が格納されます。ログに記録されたデータに大量のストレージを引き続き使用する可能性があります。 |
一意をログに記録 - マスクなし |
データをマスクせずに一意のSQLトラフィックをカバーするオフライン分析の文例をログに記録します。これは、データのマスキングを除いて一意をログに記録と同じです。 ノート: このポリシーを適用すると、すべての文をログに記録するより少ない文が格納されます。ログに記録されたデータに大量のストレージを引き続き使用する可能性があります。このポリシーを選択すると、機密情報がログに記録される場合があります。 |
すべて渡す |
すべての文を渡します。文はAudit Vault Serverのログに記録されません。 |
7.4 Database Firewallポリシーの開発
Database Firewallポリシーの開発について学習します。
Database Firewallポリシーの開発には、次のステップが含まれます。
- 新しいDatabase Firewallポリシーの作成。
- 作成されたDatabase Firewallポリシーの構成。
- Database Firewallポリシーの公開。
- ターゲットへのDatabase Firewallポリシーのデプロイ。
- Database Firewallポリシーのエクスポートおよびインポート
ノート:
- これらの操作はすべて、Audit Vault Serverコンソールを使用して実行されます。
- Oracle AVDF 20.3以降では、Database Firewallポリシーは作成後に自動的に公開されます。
7.6 作成されたDatabase Firewallポリシーの構成
すでに作成されたDatabase Firewallポリシーの構成について学習します。
データベース・ファイアウォール・ポリシーの構成には、次が含まれます。
- グローバル・ポリシー設定の構成。
- セットまたはプロファイルの作成。
- ユーザー定義ルールの構成。
7.6.1 Database Firewallのグローバル・ポリシー設定の構成
監査者が既存のDatabase Firewallポリシー設定を構成または定義する方法を学習します。
Database Firewallのグローバル・ポリシー設定は、特定のポリシーのすべてのルールに適用される構成設定を表します。
7.6.1.1 ログインおよびログアウト・イベントのポリシーの構成
ログインおよびログアウト・イベントのDatabase Firewallポリシーを構成する方法を学習します。
ログインおよびログアウト・ポリシーを構成するには:
7.6.1.2 機密データをマスクするためのポリシーの構成
機密データをマスクするためのDatabase Firewallポリシーの構成方法を学習します。
Database Firewallは、Audit Vault Serverのログに記録する前に、すべてのSQL文に対してパスワード、文字列リテラルおよび数値定数をデフォルトで不明瞭化します。さらに、選択的SQL文をマスクするためのルールを設定できます。データのマスキングは、クレジット・カード番号などの機密性の高いデータがログ・ファイル、レポート、およびアラートに表示されないようにします。ログに記録された文がデータ・マスキング・ポリシーと一致する場合は、ポリシーによってその文内のすべてのユーザー・データが自動的に置換されます。
Database Firewallは、データのタイプに応じてデータをマスクします。
- 区切り文字列は、「
#
」としてマスクされます。 - パスワードは
XXX
としてマスクされます。 - 文字列リテラルは、"
#
"としてマスクされます。文字列リテラルはユーザー名の場合があります。 - 浮動小数、16進数、10進数、整数およびバイナリ定数などの数値定数は、すべて"0"(ゼロ)としてマスクされます。数値定数はユーザーIDの場合があります。
ノート:
Database Firewallによってデータがマスクされた後は、マスクを解除できません。
データのマスキングのルールを設定するには:
-
基準に基づいてマスクすることを選択した場合は、次のように詳細を入力します。
列:
- リストから選択します。
- または、使用可能なオプションのリストからデータベースの列名を入力します。データ・マスキングは、これらの列を含む文に適用されます。
- 選択されている1つ以上の列名を削除するには、それらの横にあるクロス・マーク(「x」)をクリックします。それに従って、SQL文がマスクされます。
プロシージャ:
- プロシージャ名を入力し、使用可能なオプションのリストから選択してプロシージャ名を「プロシージャ」リストに追加します。データ・マスキングは、指定されたプロシージャを含む文に適用されます。
- 選択されている1つ以上のプロシージャ名を削除するには、それらの横にあるクロス・マーク(「x」)をクリックします。それに従って、SQL文がマスクされます。
7.6.1.3 不明なトラフィックのポリシーの構成
不明なトラフィックに対してDatabase Firewallポリシーを構成する方法を学習します。
Database Firewallポリシー・ルールは、考えられる次の理由で認識されないSQL文に対して構成できます。
- Database FirewallがSQL文を解析できません
- SQL文のセマンティクスが無効です
- クライアント・プログラムとターゲット・データベースで使用される通信プロトコルがDatabase Firewallでサポートされていません
ノート:
Javaコードの解釈は、Database Firewallではサポートされていません。不明なトラフィックのポリシー・ルールを設定するには:
7.6.1.4 ポリシー・パターン用のDatabase Firewallポリシーの構成
SQL文のパターン用のDatabase Firewallポリシー・ルールを構成する方法を学習します。
異なるパターン用のポリシー・ルールを設定するには:
- Audit Vault Serverコンソールに監査者としてログインします。
- 「ポリシー」タブを選択します。
- 左側のナビゲーション・メニューで「データベース・ファイアウォール・ポリシー」を選択します。
- 特定のポリシーの名前をクリックします。ポリシーの詳細がページに表示されます。
- 右上隅にある「構成」ボタンをクリックします。
- 「ポリシー・パターン」タブをクリックします。
-
このタブで、次の項目を構成します。
パターン・タイプ アクション ログ・パターン
オプションの「ログ・ファイルからのバイナリ・オブジェクトおよびコメントの削除」チェック・ボックスを選択して、Audit Vault Serverのログに記録する前に、SQL文からバイナリ・オブジェクトおよびコメントを削除します。
アクション・ルール・パターン
- 「しきい値アクションのリセット時間(分)」フィールドに分数を整数で入力します。ポリシー・ルールのいずれかにしきい値を設定し、そのルールの「しきい値アクション」が実行された場合、ここで指定された時間は、そのアクションは繰り返されません。これにより、同一のルールに対するブロック・アクションまたは警告アクションの数が制限されます。
- 「置換なしのアクション」フィールドで、Database Firewallポリシー・ルールのいずれかが
Block
に設定されていて、そのルールに代替文を指定していない場合は、アクション(No response
またはDrop connection
)のいずれかを選択します。
構文ルール・パターン
二重引用符で囲まれた文字列を識別子として扱うかどうかを選択します。これにより、SQL文に含まれる二重引用符で囲まれた文字列を識別子と定数のどちらとして扱うかが決まります。このチェック・ボックスの選択を解除すると、機密データ・マスキング(使用している場合)は二重引用符で囲まれたテキストをマスクします。
「大文字/小文字を区別した一致」の場合、このポリシーで次の項目に大/小文字を区別した一致を実行するかどうかを選択します:
- クライアント・プログラム名
- データベース・ユーザー名
- オペレーティング・システム・ユーザー名
- 「保存」をクリックします。
7.6.2 Database Firewallセットおよびプロファイルの作成と管理
監査者がDatabase Firewallのセットとプロファイルを作成および管理する方法を学習します。
Database Firewallポリシー・ルールを定義するときには、データベース管理者、クライアント・プログラム、実行できるアクション、実行できないアクションなどのアクターを考慮する必要があります。アクターとそのアクションに基づいて、関連するアクションを実行するDatabase Firewallポリシー・ルールを構成します。これらのアクターは、クライアント・プログラムがターゲット・データベースとのセッションを確立したときに、ネットワーク・トラフィックからDatabase Firewallによって取得されたセッション・コンテキスト属性にすぎません。
これらのセットを使用すると、クライアント・ホストIPアドレス、データベース・ユーザー、OSユーザー、データベース・オブジェクト、クライアント・プログラムなどのセッション・コンテキスト属性のリストを作成できます。SQLクラスタのセットを作成することもできます。SQLクラスタは、互いに類似したSQL文のグループです。プロファイルが、セットの名前付きの組合せです。
7.6.2.1 セットの作成
セットの種類と作成方法について学習します。
ルールで構成および使用できるセットのタイプを次に示します。
- IPアドレス・セット: クライアント・プログラムのIPアドレスのリスト(IPv4形式)。
- データベース・ユーザー・セット: データベース・ユーザー名のリスト。
- OSユーザー・セット: オペレーティング・システム・ユーザー名のリスト。
- クライアント・プログラム・セット(Oracle AVDF 20.3以前のデータベース・クライアント・セット): クライアント・プログラムのリスト。たとえば、SQL*Plus。
- データベース・オブジェクト・セット: ポリシーによって評価される表のリスト。
- SQLクラスタ・セット: SQLクラスタのリスト。SQLクラスタは、Database Firewallによってネットワーク・トラフィックから自動的に作成される、類似したSQL文のグループです。
ローカル・セットを作成するには:
- Audit Vault Serverコンソールに監査者としてログインします。
- 「ポリシー」タブを選択します。
- 左側のナビゲーション・メニューで「データベース・ファイアウォール・ポリシー」を選択します。
- 特定のポリシーの名前をクリックします。ポリシーの詳細がメイン画面に表示されます。
- 右上端の「セット/プロファイル」をクリックします。このページには、特定のポリシーについてすでに定義されているセットがリストされます。
-
次のいずれかをクリックします。
- IPアドレス・セット
- データベース・ユーザー・セット
- OSユーザー・セット
- クライアント・プログラム・セット(Oracle AVDF 20.3以前のデータベース・クライアント・セット)
- データベース・オブジェクト・セット
- SQLクラスタ・セット
- 「追加」をクリックして、新しいローカル・セットを追加します。
- ダイアログ・ボックスを使用して、新しいローカル・セットの追加を完了します。
ノート:
ファイルをインポートする場合は、UTF-8形式でエンコードする必要があります。 - 「保存」をクリックします。新しいローカル・セットが、特定のポリシーのページに表示されます。
- 特定のセットの「追加」ボタンをクリックすると、さらにセットを追加できます。
Oracle AVDF 20.9以降では、グローバル・セットを作成するには、グローバル・セット/データ検出の管理を参照してください。
7.6.2.2 SQLクラスタ・セットの作成と管理
Database FirewallポリシーでSQLクラスタ・セットを作成および管理する方法を学習します。
SQLクラスタ・セットは、SQLクラスタのグループです。SQLクラスタは、Database Firewallによってネットワーク・トラフィックから自動的に作成される、互いに類似したSQL文のグループです。
新しいSQLクラスタ・セットを作成することも、削除することもできます。これは定義のみを削除し、Database Firewallによって取得されたネットワーク・データは削除しません。
SQLクラスタ・セットを作成するには:
特定のセットについてSQLクラスタを追加または削除するには:
- 「SQLクラスタ・セット」サブタブをクリックします。
- レポートから特定のSQLクラスタ・セットを選択すると、クラスタ・セットの詳細が表示されます。
- 「追加」を選択し、手順に従って新しいクラスタを既存のセットに追加します。
- 同じダイアログで「削除」オプションを選択して、セットから1つ以上のクラスタを削除します。
- 「保存」をクリックします。
7.6.3 Database Firewallポリシー・ルール
Database Firewallポリシー・ルールについて学習します。
7.6.3.1 Database Firewallポリシー・ルールについて
Database Firewallポリシー・ルールのタイプについて学習します。
Database Firewallのルール・タイプは次のとおりです。
- セッション・コンテキスト
- SQL文
- データベース・オブジェクト
- デフォルト
Database Firewallによるポリシー評価
Database Firewallはマルチ・ステージ・エンジンであり、データベースへのSQLトラフィックを分析および検査し、トラフィックからSQL文を抽出し、ポリシーで指定されているとおりにSQL文を許可、アラートまたはブロックするかどうかを高い精度で決定します。SQL文は、Database Firewallで様々な分析ステージを通過します。これには、元のIPアドレス、データベース・ユーザー名、OSユーザー名、クライアント・プログラム名、SQL文のカテゴリ(DDL、DMLなど)、データベース表またはアクセス中のビューのチェックが含まれます。この情報を使用して、SQL文を許可するか、アラートを発する必要があるか、ブロックを必要とするかを決定できます。
すべてのステージにアクションが指定され、チェックが実行されます。一致する場合、ルールの評価は停止します。セッション・コンテキスト・ルールが最初に評価されます。次に、SQL文およびデータベース・オブジェクト・ルールが続きます。最後に、デフォルト・ルールがあります。
ノート:
Database Firewallポリシーのデータベース・オブジェクト・ルールのプロファイルは、Oracle AVDF 20.4から導入されています。7.6.3.2 ルールの評価順序
Database Firewallルールが評価または適用される順序について学習します。
1つのルール・タイプ内に複数のルールを含めることができます。次の表に、それらの適用または評価の順序を示します。
ルール・タイプ | Oracle AVDFリリース20.3以前 | Oracle AVDFリリース20.4以降 |
---|---|---|
セッション・コンテキスト |
セッション・コンテキスト・ルールは、ポリシーの概要ページにリストされている順序で適用されます。 |
セッション・コンテキスト・ルールは、ポリシーの概要ページにリストされている順序で適用されます。 |
SQL文 |
SQL文ルールは、ポリシー概要ページにリストされている順序で適用されます。 |
SQL文ルールは、ポリシー概要ページにリストされている順序で適用されます。 |
データベース・オブジェクト |
データベース・オブジェクトは、ANYまたはALLの表で構成できます。一致は、次のようにALLまたはANY演算子を使用して適用されます。
ANYルールが最初に評価され、次にALLルールが評価されます。 |
データベース・オブジェクト・ルールは、ポリシー概要ページにリストされている順序で適用されます。 |
デフォルト |
1つのルールのみを含めることができます。 |
1つのルールのみを含めることができます。 |
モニタリング/ブロック(プロキシ)・モードでは、Database FirewallはすべてのIPv6トラフィックを、所定のポリシーとは関係なくデフォルトでブロックします。
Oracle AVDF 20.4以降では、ルールの評価順序を変更できます。次のステップを実行します。
- 「評価順序」ボタンをクリックします。ダイアログ・ボックスが表示されます。
- 右側にある上矢印または下矢印を使用して、ルールの順序を変更します。
- 「保存」をクリックします。確認メッセージが画面に表示されます。更新されたルール順序がメイン・ページ上でリフレッシュされます。
7.6.3.3 セッション・コンテキスト・ルール
セッション・コンテキスト・ルールについて学習します。
ターゲット・データベースに接続しようとしているSQLクライアント・プログラムからのセッションには、ホストIPアドレス、データベース・ユーザー名、オペレーティング・システムのユーザー名およびクライアント・プログラム名などの情報が含まれます。これらはセッション・コンテキスト属性と呼ばれます。セッション・コンテキスト・ルールは、セッション・コンテキスト属性に適用されます。たとえば、信頼できる許可リスト・クライアントIPアドレス範囲からのSQL文を許可します。また、予想されるIPアドレス範囲外で発生したSQL文をブロックすることもできます。
次のセットが、セッション・コンテキスト・ルールを作成するときに使用されます:
- IPアドレス・セット
- DBユーザー・セット
- OSユーザー・セット
- クライアント・プログラム・セット(Oracle AVDF 20.3以前のDBクライアント・プログラム)
セッション・コンテキスト・ルールを作成するには:
7.6.3.4 SQL文ルール
SQL文ルールについて学習します。
Database Firewallは、ネットワーク・トラフィックからSQL文を抽出し、分析します。類似したSQL文をクラスタにグループ化します。このようなクラスタをさらにグループ化して、クラスタ・セットを形成できます。SQL文ルールは、クラスタ・セットに属するSQL文でDatabase Firewallが実行する必要があるアクションを構成するために使用します。
許可リスト(ホワイト・リスト)または拒否リスト・ベースのポリシーは、このルールを使用して作成できます。SQLクラスタの許可リストは、信頼できるアプリケーションから一定期間にわたって既知または予想されるSQL文を送信することで作成できます。SQL文ルールの作成時に、SQLクラスタ・セットの許可リストを含め、許可リストに属するクラスタを含むSQL文を許可するように構成します。
プロファイルを使用して拒否リスト・ベースのポリシーを作成します。たとえば、機密データのクラスタ・セットを作成してから、データベース管理者(DBA)のプロファイルを作成します。作成したクラスタ・セットと一致するクラスタを持つDBAプロファイル・ユーザーからのSQL文をブロックするようにルールを構成します。この場合、ルールは拒否リストとして機能します。
SQL文ルールを作成するには:
7.6.3.5 データベース・オブジェクト・ルール
データベース・オブジェクト・ルールについて学習します。
データベース・オブジェクト・ルールは、次のシナリオで使用できます。
データベース・オブジェクト・ルールは、表やビューなどの特定のデータベース・オブジェクトに対する特定のタイプのSQL文(DML、DDLなど)を許可、アラートまたはブロックするために使用されます。これらのルールは、機密アプリケーション・データへのアクセスを制御するために使用されることがよくあります。
- 機密表で関心のある特定の文タイプの監視。「任意」表フィールドを使用し、「文クラス」で
TRANSACTION COMPOSITE
を選択します。また、表AVG_COST
、BOOKS
およびBUSINESS_CONTACTS
を選択できます。このルールと一致する文はTRANSACTION COMPOSITE
であり、選択した表のいずれかを含めることができます。 - 機密表で関心のある特定の文タイプの監視(「すべて」表フィールドを使用)。「文クラス」で、
Procedural
およびComposite
を選択します。また、表AVG_COST
、BOOKS
およびBUSINESS_CONTACTS
を選択できます。このルールと一致する文は、Procedural
またはComposite
のいずれかであり、SQL文にはすべての表(AVG_COST
、BOOKS
およびBUSINESS_CONTACTS
)が必要です。 - 機密データの流出の試みの監視。この機能を使用するには、データベース・オブジェクト・ルールを作成して、
SELECT
問合せによって戻された行数を取得します。「文クラス」フィールドでData Manipulation Read only
を選択します。このオプションは、Data Manipulation Read only
文クラスでのみ使用できます。要件に応じて、「すべて」または「任意」の表を選択できます。このデータは、「すべてのアクティビティ」および「データベース・ファイアウォール・レポート」の選択でも使用できます。戻された行数がしきい値を超える場合にアラートを構成できます。
- Audit Vault Serverコンソールに監査者としてログインします。
- 「ポリシー」タブを選択します。
- 左側のナビゲーション・メニューで「データベース・ファイアウォール・ポリシー」タブをクリックします。
- 既存のユーザー定義ポリシーの名前をクリックします。そのポリシーに固有のページが表示されます。
ノート:
ページには、ユーザー定義のデータベース・ファイアウォール・ポリシーとOracle事前定義済のデータベース・ファイアウォール・ポリシーの両方が表示されますが、ユーザー定義のDatabase Firewallポリシーのみが変更可能です。 - 「データベース・オブジェクト」セクションを展開して、既存のデータベース・オブジェクト・ルールをクリックするか、「追加」をクリックします。「データベース・オブジェクト」ダイアログが表示されます。
- 「ルール名」を入力します。
- 「説明」を入力します。
- 「プロファイル」を選択します。-で示されているように、デフォルトはありません。
- 「文クラス」で、このルールを適用するためにSQL文が一致する必要がある文クラスのタイプを1つ以上選択します。
- ターゲット・タイプがOracle Databaseのときに、「文クラス」フィールドのいずれかの値が
「読取り専用のデータ操作」
(Oracle AVDFリリース20.4より前)またはSELECT
(Oracle AVDFリリース20.4以降)の場合は、フィールド「SELECT問合せに対して戻された行数の取得」をYes
に切り替えることができます。このフィールドをYes
に設定すると、ポリシーに応じてSELECT問合せの行数が取得され、「すべてのアクティビティ」と「データベース・ファイアウォール・レポート」の列「行数」に表示されます。この列は、レポートで選択できるようになります。アラートは、フェッチまたは問合せ対象の行数に応じて構成できます。 - モニターする表/ビューセクションで、モニターする表を選択します。すでにモニターする表が選択済の場合は、選択した表のプレビューが表示されます。
ノート:
指定しないかぎり、すべての表とビューがモニターされます。- モニターする表のリストを編集するには、テキスト・ボックスの右側にある鉛筆アイコンをクリックします。
- ダイアログ・ボックスでは、モニターする表のリストを3つのタブ、「値の入力」、「ファイルから」または「収集データから」から編集できます。
- 「値の入力」タブで、テキスト・ボックスに表名を入力します。各表またはビューを、個別の行に入力する必要があります。終了したら、「保存」をクリックします。
- 空のままにすると、Database Firewallにより分析されるすべての表が考慮されます。
- 完全修飾表名を含めます。ノート: 表
T1
およびMyschema.T1
は異なるとみなされます。したがって、必要に応じてすべての表名を含めます。
- 「ファイルから」タブで、「ファイルの選択」フィールドをクリックして、表またはビューの名前を含む
.txt
ファイルを、1行につき1つの名前でアップロードします。使用しているコンピュータのファイルのポップアップから、.txt
ファイルを選択します。終了したら、「保存」をクリックします。 - 「収集データから」タブで、「使用可能」列から表を選択し、中央のフィルタを使用して「選択済」列に移動します。ダイアログの左上にある検索ボックスに入力すると、表を検索できます。これにより、「使用可能」列の下に表示される表のリストが絞り込まれます。終了したら、「保存」をクリックします。
- (オプション)各タブの下部に、モニターする表/ビューという表があります。この表には、選択したモニター対象の表またはビューが含まれます。空のリストは、すべての表とビューがモニターされることを意味します。すべての表とビューを選択するには、「表/ビュー」列ヘッダーの左側にあるチェック・ボックスを選択します。任意の表とビューを選択するには、その表またはビューの「表/ビュー」列の左側にあるチェック・ボックスを選択します。選択した表またはビューをモニター対象のリストから削除するには、「削除」をクリックします。
- 「実行する処理」セクションで、適切なドロップダウン・リストから、このルールの「アクション」、「ロギング・レベル」および「脅威の重大度」を選択します。
- 「アクション」として
Block
を選択した場合、「置換SQL」フィールドが表示されます。ブロックされたSQL文を置換する文を入力します。 - 「保存」をクリックします。
- Audit Vault Serverコンソールに監査者としてログインします。
- 「ポリシー」タブを選択します。
- 左側のナビゲーション・メニューで「データベース・ファイアウォール・ポリシー」タブをクリックします。
- 既存のユーザー定義ポリシーの名前をクリックします。そのポリシーに固有のページが表示されます。
ノート:
ページには、ユーザー定義のデータベース・ファイアウォール・ポリシーとOracle事前定義済のデータベース・ファイアウォール・ポリシーの両方が表示されますが、ユーザー定義のDatabase Firewallポリシーのみが変更可能です。 - 「データベース・オブジェクト」セクションを展開して、既存のデータベース・オブジェクト・ルールをクリックするか、「追加」をクリックします。「データベース・オブジェクト」ダイアログが表示されます。
- 「ルール名」を入力します。
- 「説明」を入力します。
- 「プロファイル」を選択します。-で示されているように、デフォルトはありません。
- 「文クラス」で、このルールを適用するためにSQL文が一致する必要がある文クラスのタイプを1つ以上選択します。
- ターゲット・タイプがOracle Databaseのときに、「Statement Classes」フィールドのいずれかの値が
SELECT
の場合は、フィールド「SELECT問合せに対して戻された行数の取得」をYes
に切り替えることができます。このフィールドをYes
に設定すると、ポリシーに応じてSELECT問合せの行数が取得され、「すべてのアクティビティ」と「データベース・ファイアウォール・レポート」の列「行数」に表示されます。この列は、レポートで選択できるようになります。アラートは、フェッチまたは問合せ対象の行数に応じて構成できます。 - 「モニター対象の表/ビュー」セクションで、「DBオブジェクト・セット」ドロップダウンからグローバル・セットまたはローカル・セットのどちらかを選択します。
データベース・オブジェクト・セットは、グローバル・セットまたはローカル・セットのどちらかになります。グローバル・セットは、複数のデータベース・ファイアウォール・ポリシーで表示と適用が可能ですが、ローカル・セットは、そのセットが作成されたデータベース・ファイアウォール・ポリシーでのみ表示と適用が可能です。グローバル・セットは「データ検出」で作成できます。
ノート:
指定しないかぎり、すべての表とビューがモニターされます。- データベース・オブジェクト・セットを追加するには、テキスト・ボックスの右側にある「+」ボタンをクリックします。
- ダイアログ・ボックスでは、モニターする表のリストを3つのタブ、「値の入力」、「ファイルから」または「収集データから」から編集できます。
- 「値の入力」タブで、テキスト・ボックスに表名を入力します。各表またはビューを、個別の行に入力する必要があります。終了したら、「保存」をクリックします。
- 空のままにすると、Database Firewallにより分析されるすべての表が考慮されます。
- ポリシー評価は、スキーマとは無関係に表に対して実行されます。たとえば、ポリシーは修飾表名
Myschema.T1
とプレーン表名T1
を同じ方法で評価します。 - 表名には、表名に*を使用使用することで、ワイルドカード文字を含めることもできます。たとえば、
T*
にはT1
とT2
が含まれます。
- 「ファイルから」タブで、「ファイルの選択」フィールドをクリックして、表またはビューの名前を含む
.txt
ファイルを、1行につき1つの名前でアップロードします。使用しているコンピュータのファイルのポップアップから、.txt
ファイルを選択します。終了したら、「保存」をクリックします。 - 「収集データから」タブで、「使用可能」列から表を選択し、中央のフィルタを使用して「選択済」列に移動します。ダイアログの左上にある検索ボックスに入力すると、表を検索できます。これにより、「使用可能」列の下に表示される表のリストが絞り込まれます。終了したら、「保存」をクリックします。
- (オプション)各タブの下部に、モニターする表/ビューという表があります。この表には、選択したモニター対象の表またはビューが含まれます。空のリストは、すべての表とビューがモニターされることを意味します。すべての表とビューを選択するには、「表/ビュー」列ヘッダーの左側にあるチェック・ボックスを選択します。任意の表とビューを選択するには、その表またはビューの「表/ビュー」列の左側にあるチェック・ボックスを選択します。選択した表またはビューをモニター対象のリストから削除するには、「削除」をクリックします。
- 「値の入力」タブで、テキスト・ボックスに表名を入力します。各表またはビューを、個別の行に入力する必要があります。終了したら、「保存」をクリックします。
- 「実行する処理」セクションで、適切なドロップダウン・リストから、このルールの「アクション」、「ロギング・レベル」および「脅威の重大度」を選択します。
- 「アクション」として
Block
を選択した場合、「置換SQL」フィールドが表示されます。ブロックされたSQL文を置換する文を入力します。 - 「保存」をクリックします。
- Audit Vault Serverコンソールに監査者としてログインします。
- 「ポリシー」タブを選択します。
- 左側のナビゲーション・メニューで「データベース・ファイアウォール・ポリシー」タブをクリックします。
- 既存のユーザー定義ポリシーの名前をクリックします。そのポリシーに固有のページが表示されます。
ノート:
ページには、ユーザー定義のデータベース・ファイアウォール・ポリシーとOracle事前定義済のデータベース・ファイアウォール・ポリシーの両方が表示されますが、ユーザー定義のDatabase Firewallポリシーのみが変更可能です。 - 「データベース・オブジェクト」セクションを展開して、既存のデータベース・オブジェクト・ルールをクリックするか、「追加」をクリックします。「データベース・オブジェクト」ダイアログが表示されます。
- 「ルール名」を入力します。
- 「説明」を入力します。
- 「プロファイル」を選択します。-で示されているように、デフォルトはありません。
- 「コマンド」セクションで、このルールに追加する特定のコマンドを選択します
- ターゲット・タイプがOracle Databaseのときに、「コマンド」フィールドの値のいずれかが
SELECT
の場合は、フィールド「SELECT問合せに対して戻された行数の取得」を「はい」
に切り替えることができます。このフィールドをYes
に設定すると、ポリシーに応じてSELECT問合せの行数が取得され、「すべてのアクティビティ」と「データベース・ファイアウォール・レポート」の列「行数」に表示されます。この列は、レポートで選択できるようになります。アラートは、フェッチまたは問合せ対象の行数に応じて構成できます。 - 「モニター対象の表/ビュー」セクションで、「DBオブジェクト・セット」ドロップダウンからグローバル・セットまたはローカル・セットのどちらかを選択します。
データベース・オブジェクト・セットは、グローバル・セットまたはローカル・セットのどちらかになります。グローバル・セットは、複数のデータベース・ファイアウォール・ポリシーで表示と適用が可能ですが、ローカル・セットは、そのセットが作成されたデータベース・ファイアウォール・ポリシーでのみ表示と適用が可能です。グローバル・セットは「データ検出」で作成できます。
ノート:
指定しないかぎり、すべての表とビューがモニターされます。- データベース・オブジェクト・セットを追加するには、テキスト・ボックスの右側にある「+」ボタンをクリックします。
- ダイアログ・ボックスでは、モニターする表のリストを3つのタブ、「値の入力」、「ファイルから」または「収集データから」から編集できます。
- 「値の入力」タブで、テキスト・ボックスに表名を入力します。各表またはビューを、個別の行に入力する必要があります。終了したら、「保存」をクリックします。
- 空のままにすると、Database Firewallにより分析されるすべての表が考慮されます。
- ポリシー評価は、スキーマとは無関係に表に対して実行されます。たとえば、ポリシーは修飾表名
Myschema.T1
とプレーン表名T1
を同じ方法で評価します。 - 表名には、表名に*を使用使用することで、ワイルドカード文字を含めることもできます。たとえば、
T*
にはT1
とT2
が含まれます。
- 「ファイルから」タブで、「ファイルの選択」フィールドをクリックして、表またはビューの名前を含む
.txt
ファイルを、1行につき1つの名前でアップロードします。使用しているコンピュータのファイルのポップアップから、.txt
ファイルを選択します。終了したら、「保存」をクリックします。 - 「収集データから」タブで、「使用可能」列から表を選択し、中央のフィルタを使用して「選択済」列に移動します。ダイアログの左上にある検索ボックスに入力すると、表を検索できます。これにより、「使用可能」列の下に表示される表のリストが絞り込まれます。終了したら、「保存」をクリックします。
- (オプション)各タブの下部に、モニターする表/ビューという表があります。この表には、選択したモニター対象の表またはビューが含まれます。空のリストは、すべての表とビューがモニターされることを意味します。すべての表とビューを選択するには、「表/ビュー」列ヘッダーの左側にあるチェック・ボックスを選択します。任意の表とビューを選択するには、その表またはビューの「表/ビュー」列の左側にあるチェック・ボックスを選択します。選択した表またはビューをモニター対象のリストから削除するには、「削除」をクリックします。
- 「値の入力」タブで、テキスト・ボックスに表名を入力します。各表またはビューを、個別の行に入力する必要があります。終了したら、「保存」をクリックします。
- 「実行する処理」セクションで、適切なドロップダウン・リストから、このルールの「アクション」、「ロギング・レベル」および「脅威の重大度」を選択します。
- 「アクション」として
Block
を選択した場合、「置換SQL」フィールドが表示されます。ブロックされたSQL文を置換する文を入力します。 - 「保存」をクリックします。
次に、SELECT
問合せ機能の戻す行数を取得する際の注意点を示します。
- この機能は、リリースOracle AVDF 20.3のデータベース・オブジェクト・ルールに適用可能です。
- これは、Database Firewallがモニタリング/ブロック(プロキシ)モードでデプロイされている場合に適用可能になります。
- この機能は、Oracle Database (バージョン12c以降)でのみ使用できます。
- Oracle AVDF 20.3では、この機能を使用する予定がある場合は、「データベース・レスポンスの取得」フィールドを有効にしないことをお薦めします。この制限事項はOracle AVDF 20.4以降ではなくなりました。
- この機能は、カーソルおよび部分データ・フェッチの使用をサポートしていません。
- この機能は、すべての64ビット・オペレーティング・システムでサポートされます。
- この機能は、JDBCドライバ・ベースのクライアント、SQL*PlusなどのOracle DB OCIベースのクライアントで使用できます。
- 戻す行数の情報がレポートに表示されない場合は、トラフィック・ログ・タイマーを確認してください。詳細は、「行数の取得が機能しない」を参照してください。
- データベース・オブジェクト・ルールの構成時には、戻す行数の機能を有効にする必要がある表を考慮してください。単一の表に対して操作する
SELECT
問合せについては、戻す行数のオプションを有効にすることをお薦めします。複数の表に対する複合問合せでは、誤検出が発生する可能性があります。ANYまたはALLの選択を必要に応じて使用してください。 - 悪質なユーザーは、データ流出を隠蔽するために様々な方法を使用することがあります。そのうちの1つとして、結果セットの部分フェッチが考えられます。そのような場合、Database Firewallは行数に値
-1
のマークを付けます。この動作に基づいたアラートを構成するようにお薦めします。
7.6.3.5.1 Database Firewallポリシーについての文クラスからコマンドへのマッピング
Oracle AVDF 20.11以降、Database Firewallポリシーでは文クラスが使用されなくなりました。かわりに、INSERT
、UPDATE
、DELETE
などの特定のコマンドに基づいてポリシーを作成できます。この表は、どのコマンドがどの文クラスの一部であるかを特定するのに役立ちます。
文クラス | Oracle用のコマンド | SQL Server用のコマンド | MySQL用のコマンド | DB2 LUW用のコマンド | Sybase ASE用のコマンド |
---|---|---|---|---|---|
DCL | ADMINISTER、ALTER (DCL)、ALTER SESSION、ALTER SYSTEM、COMPRESSED、ENCRYPTED、CHANGE PASSWORD、GRANT、INVALID OPERATION、LOGIN、ORADEBUG、REVOKE、SET ROLE、SHUTDOWN |
ALTER AUTHORIZATION、DBCC、DENY、GRANT、LOGIN、REVOKE、SET、SETUSER、USE |
BINLOG、FLUSH、GRANT、INSTALL、KEYCACHE、KILL、PURGE、RESET、REVOKE、SET ROLE、UNINSTALL、USE |
GRANT、REVOKE、SET、TRANSFER |
DBCC、GRANT、KILL、LOAD、LOCK、MOUNT、REVOKE、SET、SETUSER、SYSTEM、TRANSFER、USE |
DDL | ALTER (DDL)、ALTER AUDIT POLICY、ALTER DATABASE、ALTER PROFILE、ALTER TABLE、ALTER TABLESPACE、ALTER USER、ANALYZE、ASSOCIATE、AUDIT、COMMENT、CREATE、DISASSOCIATE、DROP、NOAUDIT、RENAME、TRUNCATE |
ADD、ALTER(DDL)、ALTER DATABASE、ALTER TABLE、ALTER USER、CREATE、DISABLE、DROP、ENABLE、RECONFIGURE、TRUNCATE |
ALTER、CHECK、CHECKSUM、CREATE、DROP、PARTITION、RENAME、REPLACE、TRUNCATE |
ALLOCATE、ALTER、COMMENT、CREATE、DROP、RENAME、TRUNCATE |
ALTER、CREATE、DEALLOCATE、DROP、TRUNCATE |
DML | DELETE、EXECUTE CURSOR、EXPLAIN、FLASHBACK、INSERT、LOB WRITE、MERGE、PURGE、UPDATE |
BACKUP、DELETE、INSERT、MERGE、RESTORE、UPDATE、UPDATETEXT、WRITETEXT |
ANALYZE、DELETE、GET、INSERT、LOAD、OPTIMIZE、REPAIR、UPDATE |
DELETE、EXPLAIN、INSERT、MERGE、REFRESH、UPDATE |
DELETE、DUMP、EXECUTE CURSOR、INPUT、INSERT、MERGE、QUIESCE、REFRESH、REMOVE、REORG、UNMOUNT、UPDATE、WRITETEXT |
Procedural | PROCEDURAL |
PROCEDURAL |
PROCEDURAL |
PROCEDURAL |
PROCEDURAL |
選択 | SELECT |
SELECT |
SELECT |
SELECT |
SELECT |
Transaction | TRANSACTION |
TRANSACTION |
TRANSACTION |
TRANSACTION |
TRANSACTION |
ノート:
「コンポジット」および「トランザクションを含むコンポジット」文クラスには同等のコマンドがないため、それらは表示されません。Oracle AVDF 20.11以降にアップグレードする前にこれらの文クラスにポリシーがあった場合は、アップグレード中にコマンドがポリシーに自動的に追加されることはありません。7.6.3.6 デフォルト・ルール
デフォルト・ルールについて学習します。
デフォルト・ルールは、以前のポリシー・ルールの基準を満たさないSQL文のアクションを指定します。Database Firewallでそのような文が見つかると、デフォルト・ルールが適用されます。デフォルトの構成は、SQL文をAudit Vault Serverのログに記録せずに許可します。デフォルト・ルール内の別のアクションを代替文とともに適用できます(ブロック・アクションが考慮される場合はオプションです)。
デフォルト・ルールを構成するには:
-
オプションで、「エスカレート・アクションのしきい値の設定」フィールドを選択します(文がデフォルト・ルールと何回か一致した後に別のアクションを適用する場合)。次の項目を入力します。
-
「保存」をクリックします。
関連項目:
7.7 ファイアウォール・ポリシーの公開およびデプロイ
ファイアウォール・ポリシーを公開する方法およびデプロイする方法を学習します。
7.7.1 Database Firewallポリシーの公開および使用について
Database Firewallポリシーは、公開されるまで編集できます。
ポリシーを公開すると、ターゲットにデプロイできるようになります。
Database Firewallポリシーがターゲットにデプロイされた後は、編集できません。ただし、ポリシーをコピーして、別の名前で編集できます。Database Firewallポリシーを完全に編集した後、それを公開してターゲットに割り当てることができます。
7.7.2 Database Firewallポリシーの公開
Database Firewallポリシーを監査者として公開する方法を学習します。
次のステップに従って、Oracle AVDFリリース20.2以前でDatabase Firewallポリシーを公開します。
7.7.3 Database Firewallポリシーのデプロイ
「ポリシー」または「ターゲット」タブを使用してDatabase Firewallポリシーをデプロイする方法について説明します。
リリース20.8以降では、Database Firewallポリシーを「ポリシー」タブからデプロイできます。Database Firewallポリシーは、「ターゲット」タブからもデプロイできます。
7.7.3.1 「ポリシー」タブからのDatabase Firewallポリシーのデプロイ
ユーザー定義または事前定義済のDatabase Firewallポリシーのいずれかを、Oracle Audit Vault and Database Firewallの「ポリシー」タブから直接デプロイする方法について説明します。
7.7.3.2 「ターゲット」タブからのDatabase Firewallポリシーのデプロイ
「ターゲット」タブからDatabase Firewallポリシーをターゲット・データベースにデプロイする方法について説明します。
Database Firewallポリシーをデプロイするには:
- Audit Vault Serverコンソールに監査者としてログインします。
- 「ターゲット」タブをクリックします。
- 左側のナビゲーション・メニューで「データベース・ファイアウォール・モニタリング」タブをクリックします。
- 特定のターゲットの名前をクリックします。
- ターゲットの詳細ページで、「データベース・ファイアウォール・モニタリング」タブをクリックします。
- このセクションを下にスクロールし、「Database Firewall」セクションの編集アイコンをクリックします。
- ドロップダウン・リストから、ポリシーを選択します。
- チェック・マークをクリックします。
7.8 Database Firewallポリシーのエクスポートおよびインポート
1つ以上のDatabase Firewallポリシーをエクスポートおよびインポートする方法を学習します。
Oracle AVDFリリース20.7以降、1つのAudit Vault Serverインスタンスのユーザー定義Database Firewallポリシーをエクスポートし、後で別のAudit Vault Serverインスタンスにインポートできます。これにより、複数のAudit Vault Serverインスタンスにわたって同じポリシーを作成する時間を短縮できます。
たとえば、ユーザー定義Database Firewallポリシーは、次の間でエクスポートおよびインポートできます。
- テストAudit Vault Serverインスタンスと本番Audit Vault Serverインスタンス。
- プライマリAudit Vault ServerインスタンスとDR (障害時リカバリ) Audit Vault Serverインスタンス。
Database Firewallポリシーは、エクスポート時にOracle AVDFリリース20.7のJSON形式のファイルにダウンロードして格納することも、Oracle AVDFリリース20.8以降の独自の暗号化されたバイナリ形式で保存することもできます。このファイルにはすべてのデータが含まれており、後でインポートするために使用できます。このファイルは、ユーザーによって定義されたパスワードで保護されています。ポリシーの詳細を表示する場合、また、インポート・プロセス中にも、同じパスワードを入力する必要があります。
ノート:
この機能は、すべてのAudit Vault Serverインスタンスで使用可能であり、簡単に選択できるため、事前定義済のDatabase Firewallポリシーには適用できません。前提条件
- Database Firewallポリシーをエクスポートまたはインポートするには、ユーザーに監査者権限が割り当てられている必要があります。
- エクスポートするには、まずユーザー定義Database Firewallポリシーを公開する必要があります。
7.8.2 Database Firewallポリシーのインポート
1つ以上のDatabase Firewallポリシーをインポートする方法を学習します。
- Audit Vault Serverコンソールに監査者としてログインします。
- 「ポリシー」タブをクリックします。
- 左側のナビゲーション・メニューで「データベース・ファイアウォール・ポリシー」タブをクリックします。
- ページの右上隅にある「インポート」ボタンをクリックします。
-
「ポリシーのインポート」ダイアログで、クリックしてナビゲートし、Database Firewallポリシーのすべての詳細を含むJSONファイルを選択します。Oracle AVDFリリース20.7では、Database Firewallポリシーの詳細が含まれたJSONファイルは、パスワードで保護されたバンドル(
.zip
ファイル)です。Oracle AVDFリリース20.8以降、Database Firewallポリシーは、暗号化されたJSONファイル形式でエクスポートされます。同じ形式のポリシー・ファイルを、デプロイされたOracle AVDFリリースに従ってインポートする必要があります。 - 「パスワード」を入力します。これは、Database Firewallポリシーが以前にエクスポートされたときに設定されたものと同じパスワードです。
- Oracle AVDF 20.9以降では、「競合するポリシーに対するアクション」を選択します。これにより、インポートされたポリシーとセットが、データ検出からの既存のグローバル・ユーザーと機密オブジェクト・セットと相互作用する方法が決まります。オプションは次のとおりです。
- グローバル・セット名が確実に一意なるように新しいポリシーを作成する: 新規ポリシーを作成します。グローバルにインポートされたセット名は一意になります。
- 新規ポリシーを作成して、すべてのセットをローカルに保持する: 新しいポリシーを作成します。インポートしたすべてのセットは、この新しいポリシーにローカルになります。
- 既存のポリシーとポリシー・セットを置き換える: 既存のポリシーおよびセットを、インポート中のポリシーと同じ名前に置き換えます。
データベース・ユーザーとデータベース・オブジェクトのセットは、グローバル・セットにすることも、ローカル・セットにすることもできます。グローバル・セットは、複数のデータベース・ファイアウォール・ポリシーで表示と適用が可能ですが、ローカル・セットは、そのセットが作成されたデータベース・ファイアウォール・ポリシーでのみ表示と適用が可能です。グローバル・セットは「データ検出」で作成できます。
- 「保存」をクリックします。
インポート・プロセスの確認メッセージが表示されます。ユーザー定義Database Firewallポリシーがインポートされます。ポリシーの詳細がAudit Vault Serverインスタンスにコピーされ、ポリシーが公開されます。いずれかのポリシーと名前が競合する場合は、区別するために順序番号が追加されます。Audit Vault Serverによってファイル形式もチェックされ、JSONファイル、フィールドおよび値が検証されます。問題がある場合は、エラー・メッセージが表示されます。
インポート・プロセスはバックグラウンド・ジョブです。ジョブのステータスは「ジョブ」ダイアログに表示されます。ジョブの名前は
DBFW Policy Import
です。 - 新しくインポートされたポリシーがリストに表示されます。「インポート済」列は、ポリシーがインポートされたかどうかを示します。ポリシーに変更を加え、適宜保存します。インポートされたポリシーはデフォルトで公開され、Database Firewallにデプロイできます。さらに変更が必要な場合は、変更後に再度公開できます。
ノート:
Database FirewallポリシーにSQLクラスタ・セットがあり、関連するSQL文がAudit Vault Serverでまだ取得されていない場合、監査者がトラブルシューティングのためにクラスタでドリルダウンしたときに、SQLトラフィックの詳細は表示されません。
7.8.3 CLIを介したOracle AVDF 20.7 Database Firewallポリシーのインポート
CLI機能を使用してDatabase Firewallポリシーをインポートするタイミングについて説明します。
Oracle AVDFリリース20.7では、ユーザー定義Database Firewallポリシーの.zip
形式でのエクスポートがサポートされています。Oracle AVDFリリース20.8以降、Database FirewallポリシーはJSON
形式のファイルでエクスポートされます。同じ形式のポリシー・ファイルを、デプロイされたOracle AVDFリリースに従ってインポートする必要があります。Database Firewallポリシー・ファイルを.zip
形式でインポートするために、新しいCLIユーティリティが導入されています。
次の手順に従って、いくつかの前提条件を完了します。
-
Oracle AVDFリリース20.7でエクスポートされたDatabase Firewallポリシー・ファイルは
.zip
形式です。このDatabase Firewallポリシーの.zip
ファイルを、Audit Vault Serverアプライアンスにコピーします。 -
SSHを介してAudit Vault Serverにログインします。
-
次のコマンドを実行して、ユーザーをrootに切り替えます。
su root
- コピーしたDatabase Firewallポリシーの.zipファイルに対する読取りアクセス権を
oracle
ユーザーが持っていることを確認します。 -
次の手順を実行して、avsysユーザーのロックを解除します。
-
次のコマンドを実行して、ユーザーをdvaccountmgrに切り替えます。
su dvaccountmgr
-
次のコマンドを実行します。
sqlplus /
-
次のコマンドを実行します。
alter user avsys identified by <pwd> profile default account unlock;
ノート:
CLIユーティリティはoracleユーザーとして実行する必要があります。次の手順に従って、CLI機能を使用してDatabase Firewallポリシーをインポートします。
7.10 Database Firewallポリシーの編集
Database Firewallポリシーを編集する方法を学習します。
作成またはコピーしたDatabase Firewallポリシーと、デプロイされていないそれらのポリシーは編集できます。Database Firewallポリシーをターゲットにデプロイした後は、編集できません。ただし、ポリシーをコピーし、新しい名前で再定義して公開してから、同じポリシーをターゲットに割り当てることができます。
7.11 戻す行数を取得するためのDatabase Firewallポリシー
SELECT
問合せで戻す行数の取得方法を学習します。
Oracle AVDF 20.3以降では、Database Firewallがモニタリング/ブロッキング(プロキシ)またはモニタリング(ホスト・モニター)デプロイメント・モードでデプロイされている場合は、SELECT
SQL文について、戻された行数を取得できます。モニタリング/ブロッキング(プロキシ)モードでデプロイされている場合はこれに構成がさらに必要になることはありませんが、モニタリング(ホスト・モニター)モードでデプロイされている場合は、それを有効にしてデータベース・レスポンスを取得する必要があります。詳細は、Oracle AVDF管理者ガイドのデータベース・レスポンス監視の有効化を参照してください。戻された行数の詳細は、「すべてのアクティビティ」と「データベース・ファイアウォール・レポート」の列「行数」に表示されます。このフィールドをアラート・ポリシーで使用すると、想定よりも大量のデータを取得しようとする試みを検出できます。
フィールド「SELECT問合せに対して戻された行数の取得」は、Audit Vault ServerコンソールでDatabase Firewallポリシーのデータベース・オブジェクト・ルールを定義するときに使用できます。これは、ターゲット・タイプがOracle Databaseで、「文クラス」フィールドで「読取り専用のデータ操作」が選択されている場合に使用できます。「読取り専用のデータ操作」フィールドは、Oracle AVDF 20.4以降では「選択」に置き換えられています。このオプションを有効にすると、Database FirewallはSELECT
問合せに対して戻された行数を取得します。
ステップ | プロセス | 参照先 |
---|---|---|
1 |
戻す行数を取得するDatabase Firewallポリシーの構成 |
|
2 |
行数に基づいたアラート・ポリシーを構成します |
|
3 |
レポートで行数を確認します |
7.12 SQL文のファイアウォール・ポリシーの構成
データベースへのSQLトラフィックに使用できるポリシーについて学習します。
Database Firewallはマルチステージのファイアウォールで、データベースに向けられたSQLトラフィックを監視して、SQL文を許可、ログ、アラート、置換、またはブロックするかどうかを高い精度で判断します。SQLトラフィックは、IPアドレス、データベース・ユーザーまたはOSユーザー、プログラム名、SQL文のカテゴリ(DDLやDMLなど)、およびアクセスされるデータベース表についてチェックする複数のステージを通過します。ブロック・リストに登録されたSQLおよび許可リストに登録されていないSQLまたはSQL文をブロックおよびアラートします。これにより、信頼できるアプリケーション・パスからのSQLリクエストの許可リストに基づいてポリシー・ルールを構成するオプションが提供され、SQLインジェクション攻撃が防止されます。
Database Firewallを使用したSQL文の監視の成否は、効果的なファイアウォール・ポリシーの判断と適切なファイアウォール・デプロイメントの選択に依存します。
7.13 SQLのブロックおよび代替文の作成
SQL文をブロックし、代替としてサンプルSQL文を提供する方法を学習します。
Database Firewallは、モニタリング/ブロック(プロキシ)・モードでデプロイされたときにSQL文をブロックできます。Database Firewallは、SQL文をブロックでき、代替としてサンプルSQL文を指定できます。文がブロックされるときにデータベース・クライアントが適切なメッセージを確実に提示するには、代替文が必要になる場合があります。この代替文は、提供されたサンプルSQL文で悪意のあるユーザーを誤解させるのに役立つ場合があります。また、ブロックまたはアラートのしきい値を使用して構成することもできます。
次のSQLコマンドでは、代替文を適用できません。
LOGIN USERNAME
EXECUTE CURSOR
ENCRYPTED
SHUTDOWN
DESCRIBE
ORADEBUG
TRANSACTION
LOB
INVALID OPERATION
COMMENT
COMPRESSED
代替文を作成する場合は、クライアント・アプリケーションで結果を処理できることを確認します。次は、Oracle Databaseターゲットの適切な代替文の例です。
SELECT 100 FROM DUAL
SQL文が指定された回数発生した場合にブロックまたは警告できます。選択されたクラスタ内で指定された回数(しきい値)の文が繰り返される場合、SQL文をブロックするか、警告を生成するように選択できます。ブロックされた文のロギングは常に有効にする必要があります。