1 Oracle Audit Vault and Database Firewallの概要

Oracle Audit Vault and Database Firewallソフトウェア(Oracle AVDF)および収集プラグインについて学習します。

1.1 Oracle Audit Vault and Database Firewallの概要

Oracle Audit Vault and Database Firewallのコンポーネントおよび各コンポーネントの機能について学習します。

Oracle Audit Vault and Database Firewall (Oracle AVDF)は、ネイティブ・データベース監査データ収集およびネットワークベースのSQL監視をサポートし、包括的なデータベース・アクティビティ・モニタリング・ソリューションを提供します。次のコンポーネントで構成されます。

  • Audit Vault Server: Oracle Audit Vault and Database Firewallのアクティビティを管理する埋込みのOracle Databaseおよび他のソフトウェア・コンポーネントを含むサーバー。
  • Audit Vault Agent: リモート・ホストで実行され、Audit Vaultサーバーのコマンドに基づいて監査情報の収集を管理するJavaコンポーネント。エージェントは制御下の収集プラグインとやりとりして監査レコードを収集し、Audit Vault Serverに送信します。
  • Database Firewall: Database Firewallは、Database Firewallソフトウェアを実行する専用サーバーです。各Database Firewallは、データベース・クライアントからターゲット・データベースへのネットワーク上のSQLトラフィックを監視します。次に、Database Firewallは、各種レポートで分析するために、SQLデータをAudit Vault Serverに送信します。

Oracle Audit Vault and Database Firewallには事前にパッケージ化された複数の収集プラグインが付属しています。収集プラグインは、様々なタイプのターゲット・システムの監査データにアクセスして解釈する方法を認識するソフトウェア・プログラムです。収集プラグインは、ターゲット・システムで生成された監査証跡の監査データを収集し、Audit Vault Serverリポジトリに格納します。各収集プラグインは、特定タイプのターゲットの特定タイプの証跡に固有です。これらの収集プラグインにより、Oracle、SQL Server、Sybase ASE、DB2などのデータベースからデータが収集されます。

1.2 Oracle Audit Vault Serverおよびエージェントの動作方法

監査収集プラグインは、連続した監査レコードである監査証跡の形式で監査データを取得します。

監査収集プラグインは、連続した監査レコードである監査証跡の形式で監査データを取得します。監査証跡は、異なるターゲット・タイプごとに生成され、データベース表またはXML監査レコードに格納されます。

ターゲットは、1つ以上の監査証跡を書き込むことができます。各監査証跡は個別の場所に格納され、固有の書式を持つことができます。

次の用語について補足します。

  • ターゲット

    ターゲットは、監査証跡を生成するソフトウェア・コンポーネントです。ターゲットは、ターゲット・タイプのインスタンスで、接続資格証明や証跡タイプなどの特定のプロパティを持ちます。

  • ターゲット・タイプ

    ターゲット・タイプは、同じタイプの監査データを生成する、特定タイプのターゲットのコレクションを表します。たとえば、Oracle Databaseは、多数のインスタンスを持つことができるターゲット・タイプです。ただし、すべてのOracle Databaseは、同じ監査データを生成し、同じフィールドを記録します。

  • 監査証跡

    監査証跡は、監査データが存在する場所および書式を識別します。各監査証跡は、1つのターゲットのみによって生成されます。監査証跡の例は次のとおりです。

    • データをファイルに書き込むターゲットの場合、その証跡はディレクトリ・パスとファイル・マスクです。

    • 監査データをデータベース表に書き込むターゲットの場合、そのターゲットの証跡は表の名前です。Unified_Audit_Trailは、Oracleデータベースのデータベース表の監査証跡の例です。

1.3 監査収集プラグインのタイプ

監査収集プラグインの概要、監査証跡に使用する必要がある監査収集プラグイン、およびOracle Database Vaultで使用できるJavaベースの収集プラグインについて学習します。

1.3.1 監査収集プラグインの概要

監査収集プラグインについて学習します。

監査収集は、多くのデータベース・タイプからサポートされています。サポートされているデータベース・タイプおよびバージョンのリストは、製品の互換性マトリックスを参照してください。

特定のデータベース・タイプから即時利用可能な監査収集がサポートされていない場合、カスタム監査収集プラグインを作成して、監査証跡に格納されている監査データを取得できます。

収集プラグインは、監査証跡に格納される監査データを取得することで、Oracle Audit Vault and Database Firewallとともに出荷される事前にパッケージ化された各種収集プラグインと同様の機能を提供します。

Oracle Audit Vault and Database Firewallにより、開発者およびサード・パーティ・ベンダーはカスタム収集プラグインを作成できます。これらのカスタム・プラグインは、新しいターゲット・タイプから監査データを収集できます。

データベース表およびXMLファイルに格納された監査証跡を収集するか、またはその他の方法でアクセスできる収集プラグインを書き込むことができます。

リレーショナル・データベース、オペレーティング・システム、中間層システム、エンタープライズ・アプリケーションなどのターゲットをサポートできます。

個別の監査データを取得するために、カスタム収集プラグインを作成して、既存のOracle Audit Vault and Database Firewallインストールにデプロイできます。

1.3.2 Oracle AVDFプラグインのタイプについて

Oracle AVDFでは2つのタイプの収集プラグインを作成できます。作成する必要がある実際のタイプは、収集する監査証跡のプロパティによって異なります。

収集する監査データを指定するには、使用する収集プラグインのXMLファイル(マッパー・ファイルと呼ばれる)を作成します。Oracle Audit Vault Serverは、このファイルを使用して、収集する監査レコードにアクセスして解釈します。このタイプのプラグインのコードを記述する必要はありません。

Java APIを使用する、Javaベース・タイプの収集プラグインもあります。独自のJavaベースの収集プラグインを設計したり、Oracle Audit Vault and Database Firewallで事前にパッケージ化されているプラグインを使用することもできます。

1.3.3 作成する監査収集プラグイン・タイプの判断

使用する監査収集プラグインは、Oracle Audit Vault and Database Firewallで収集する監査証跡のタイプによって異なります。

収集する監査証跡が次のいずれかに格納される場合、マッパー・ファイル(テンプレート)および収集プラグインを簡単に定義できます。

  • データベース表: 特定の制約に準拠するデータベース表に格納されます

  • XML/JSON/CSVファイル: Oracle AVDF XML監査ファイル形式に基づいたXML/JSON/CSVファイルに格納されます

  • REST: JSON形式でデータを生成するRESTデータ・ソース。

1.3.4 Javaベースの収集プラグイン

収集する必要のある監査証跡が、収集プラグインで簡単に読み取ることができる形式ではない場合、JavaコードでJavaベースの収集プラグインを作成します。

提供されるJava APIを使用すると、より複雑なこれらの監査証跡を収集してAudit Vault Serverリポジトリに送信するコードを記述できます。

1.4 Audit Vault Serverのイベントとその属性

Oracle AVDFは、ターゲット・システムで発生するイベントの動向を監視します。

1.4.1 Audit Vault Serverのイベントとその属性について

Audit Vault Serverのイベント、フィールドおよび監査レコードについて学習します。

ターゲット・システムで発生するアクティビティのイベントの動向の監視は、Oracle Audit Vault and Database Firewallで最も重要な点です。これらのイベントは、フィールドで説明されます。ターゲット・システムで発生した1つのイベントを説明するフィールドのコレクションが、監査レコードです。

Oracle Audit Vault and Database Firewallには次が適用されます。

  • 各ターゲットは、そのターゲットで発生する監査イベントとしてイベントを記録します。監査レコードは監査イベントの情報を取得します。

  • 通常、監査レコードは、対象となるオブジェクト・タイプに発生した内容を説明するターゲット・タイプのイベント名を持ちます。発生したアクションのターゲットも含まれます。また、アクションが発生した時間、件名またはアクションを発生させた実行者は必ず含まれますが、その他のデータも含まれる場合があります。

    Audit Vault Serverでは、監査レコードのフィールドは、コア・フィールド、拡張フィールド、ラージ・フィールドおよびマーカー・フィールドのグループに分類されます。

1.4.2 コア・フィールドの理解

コア・フィールドの概要、およびOracle Audit Vault and Database Firewallのアクションにおけるその目的について学習します。

コア・フィールドはイベントを説明する基本フィールドで、ほとんどの監査レコードはこのフィールドの一部またはすべてを含みます。ただし、すべてのコア・フィールドが各監査レコードで必要なわけではありません。

Oracle Audit Vault and Database Firewallリリース12.1.1以降で、発生したアクションを説明するコア・フィールドは次のとおりです。

  • CommandClassフィールド: 監査レコードの生成の原因となったアクション。

  • UserNameおよびOsUserNameフィールド: 件名またはアクションを実行したユーザー。

  • EventTimeフィールド: アクションが発生した時間。

  • ClientHostNameClientIpおよび他の関連フィールド: アクションの発生場所。

  • TargetTypeTargetOwnerおよびTargetObjectフィールド: アクションのオブジェクト・タイプ、オブジェクト所有者またはターゲット。

関連項目:

コア・フィールドの完全なリストは、「コア・フィールド」を参照してください。

1.4.3 CommandClassおよびターゲット・タイプ

Oracle Audit Vault and Database Firewallのコア・フィールドCommandClassおよびTargetTypeについて学習します。

CommandClassフィールドおよびTargetTypeフィールドには、データベースやオペレーティング・システムなどの様々なドメインに属するターゲットで発生する一連の汎用イベントを示す周知の値が含まれます。

CommandClassの値の例としては、LogonSelectUpdateおよびShutdownなどがあります。

1.4.4 他のOracle Audit Vaultフィールド

コア・フィールドに加えて、Oracle Audit Vault Serverはラージ・フィールド、マーカー・フィールドおよび拡張フィールドを解釈できます

1.4.4.1 ラージ・フィールドについて

Oracle Audit Vault and Database Firewallでは、ラージ・フィールドは、大量のデータを任意で格納するフィールドです。

ラージ・フィールドは、大量のデータを任意で含むフィールドです。

関連トピック

1.4.4.2 拡張フィールドについて

Oracle Audit Vault and Database Firewallでは、拡張フィールドは、意味的に等しいOracle Audit Vaultフィールドがなく、コア・フィールドまたはラージ・フィールドにマップされないターゲット・フィールドを作成する方法を提供します。

開発者は、拡張フィールドの格納に使用する形式を決定できます。

関連トピック

1.4.4.3 マーカー・フィールドについて

Oracle Audit Vault and Database Firewallでは、マーカー・フィールドは、監査証跡のレコードの一意の識別子を提供します。

マーカー・フィールドは、監査レコードの1つ以上のフィールドから作成されます。

関連トピック

1.4.5 Audit Vaultにおける監査レコードの格納

Oracle Audit Vault and Database Firewallのプラグインを開発する場合は、監査レコードの格納に関するOracleのガイドラインに従うことをお薦めします。

プラグイン開発者は、ターゲット内で発生する様々なイベントをOracle Audit Vaultで許可された様々なフィールドにマップする必要があります。監査レコードのフィールドをAudit Vaultの名前付きフィールドのいずれか(コア、ラージまたはマーカー・フィールド)にマップする場合は、そのままマップします。監査レコードのフィールドを名前付きフィールドのいずれかにマップしない場合は、選択した拡張フィールドにマップできます。

ActionおよびTargetType Oracle Audit Vault Serverフィールドについては、フィールド値のリストを参照してください。監査レコードをこれらの値のいずれかに意味的にマップする場合、その該当する値を使用することをお薦めします。ただし、Oracle Audit Vault Serverフィールド以外の値は自由に使用できます。

Oracle Audit Vaultに値を格納する場合、次の基本ガイドラインに従うことをお薦めします。

  • ターゲット・データベースのオブジェクトを参照するIDを格納しないでください。Oracle Audit Vaultは、これらのオブジェクトへのアクセス権がありません。したがって、ターゲット・データベースのオブジェクトを参照する値に意味はありません。かわりに、監査者が理解できるように、オブジェクトのリテラル名を格納してください。
  • 定義されたAudit Vault表記規則に従ってください。たとえば、Oracle Audit VaultのすべてのACTIONフィールドとTARGET TYPEフィールドには大文字の値を使用します。この規則をターゲット・タイプに適用できず、Oracle Audit Vaultに格納されているデータが正しく解釈されない場合を除いて、この表記規則に従うことをお薦めします。
  • 可能な場合は、値にマップします。たとえば、TABLETargetTypeとしてリストに存在する場合、DATABASE TABLETargetTypeを使用して監査レコードを追加しないでください。

最後に、ターゲットの監査レコードのフィールドをコア・フィールドにする利点があると思われる場合は、このフィールドを確認してモデルに適切に追加できるようOracleに連絡することをお薦めします。

1.5 収集プロセス

Oracle Audit Vaultの収集プロセスの動作を学習します。

1.5.1 収集のフロー: ユーザー

Oracle Audit Vault and Database Firewallの収集プラグインを開発する場合、開発およびデプロイのプロセスには一貫したフローがあります。

収集プラグインは、このライフサイクルを進行します。

開発のフロー

  1. 開発者は、収集プラグインを作成して、ユーザーに提供します。

  2. ユーザーはプラグインをOracle Audit Vault Serverにデプロイします。プラグインをサーバーにデプロイすると、新しいバージョンのOracle Audit Vault Agentが作成されます。この新しいエージェントには、収集プラグインのコレクタ・コードが含まれます。

  3. 次に、ユーザーは、実行する必要があるホストに新しいエージェントをデプロイします。

    これでユーザーは、コレクタ・コードによってサポートされる監査証跡の収集を開始できます。

  4. ユーザーは、コレクタ・コードによってサポートされる監査証跡の収集を開始します。

収集のフロー

ユーザーが収集を開始すると、この図に示すように収集のフローが進行します。

図1-1 Oracle Audit Vault収集エージェントの収集のフロー


図1-1の説明が続きます
「図1-1 Oracle Audit Vault収集エージェントの収集のフロー」の説明

1.5.2 監査収集プラグイン内の制御のフロー

Oracle Audit Vault and Database Firewallの収集プラグインを開発すると、収集プラグインは監査証跡を収集する際に、このフローに従います。

収集プラグインは監査証跡にアクセスし、監査証跡から監査レコードとその関連フィールドを抽出します。次に、監査レコードをOracle Audit Vaultイベントにマップし、すべてのフィールドをOracle Audit Vaultフィールドにマップします。次に、収集プラグインは、Oracle Audit VaultイベントとフィールドをAudit Vault Agentに渡して、情報をOracle Audit Vault Serverに送信します。

収集のフロー

  1. Oracle Audit Vault Serverは、エージェント・フレームワークに指示して、特定の監査証跡を収集するためのスレッドを作成します。
  2. エージェントによって作成された新しいスレッドは、特定の監査証跡を収集し、スレッドの制御を収集フレームワークに渡します。
  3. スレッド内で、収集フレームワークはOracle Audit Vault Serverに接続し、収集する監査証跡の構成情報を問い合せます。また、その証跡に設定された最後のチェックポイントの情報をリクエストします。チェックポイントは、Oracle Audit Vault Serverのチェックポイント表に格納されます。
  4. 現在の情報を使用して、収集フレームワークは、正しい収集プラグイン内で正しいJavaクラスを起動するために、プラグインのマニフェスト・ファイルを参照します。構成情報をこのクラスに渡して、自身を初期化するリクエストを発行します。
  5. コレクタが自身を初期化したら、収集フレームワークは繰り返しループします。各ループ内で、収集フレームワークは次の処理を実行します。
    • コレクタに監査証跡の追加の監査レコードを要求します。

      コレクタは、追加の監査レコードをマッパー・ファイルで指定された監査レコードの形式に(マップによって)変換し、収集APIを通じて収集フレームワークに渡します。

    • エージェントは、収集プラグインから受け取ったチェックポイント情報およびその他のメトリック・データをAudit Vault Serverに送信します。Audit Vault Serverはこの情報をチェックポイント表に格納します。

  6. Audit Vault Serverが停止コマンドなどのコマンドを収集フレームワークに送信すると、収集フレームワークはそれを動作するコレクタに渡します。収集フレームワークがOracle Audit Vault ServerからSTOPコマンドを受け取ると、コレクタにレコードの送信を停止するよう通知します。次に、収集スレッドを終了し、自身を停止します。

1.5.3 収集の概念

Oracle Audit Vaultを使用するには、基本的なOracle Audit Valut基本概念を確認します。

1.5.3.1 収集スレッド

Oracle Audit Vaultの収集スレッドの実行方法について学習します。

エージェントはスレッドの収集を開始します。各スレッド内で、Audit Vault収集フレームワークは、収集プラグインで指定されたコードを実行します。収集フレームワークは、収集プラグインがやりとりする収集APIを公開するランタイム・インフラストラクチャです。収集プラグインは、必要に応じてユーティリティAPIも使用します。

1.5.3.2 収集フェーズ

収集フェーズは、Audit Vaultが監査証跡レコードを収集するフェーズです。

収集フェーズ中に、収集プラグインは、監査証跡にアクセスして新しいレコードを抽出します。監査証跡へのアクセス方法の正確なメカニズムは、監査証跡によって異なります。ターゲットの監査レコードが証跡から取得された後、収集プラグインはAudit Vault Serverに送信可能な監査レコードに変換(マップ)します。

収集プラグインは、ターゲット・レコードの文字セット、使用されるエンコーディングおよびタイム・スタンプに関連する問題の情報も取得する必要があります。これは、これらをAudit Vault Serverの要件にあわせるために行われます。

関連トピック

1.5.3.3 マッピング

ターゲットからAudit Vault Serverに必要なマッピングは、ターゲット・レコードのフィールドに応じて異なります。

Audit Vault Serverには、次のタイプのマッピングが必要です。

  • イベント・マッピング: ターゲット固有のイベントをAudit Vault Serverイベントにマップします。
  • フィールド・マッピング: ターゲット・レコードの様々なフィールドをAudit Vault Serverフィールドにマップします。
  • 値マッピング: 収集された様々なフィールド値を各フィールドの一連の正規化された値にマップします(たとえば、0および1は特定のフィールドのFALSEおよびTRUEにマップされる可能性があります)。
  • 複雑なマッピング: ターゲット・フィールドからAudit Vault Serverフィールド、またはターゲット監査イベントからAudit Vault Serverイベントへのマッピングが単純ではない場合、複雑なマッピングが使用されます。

    複雑なマッピングには、ターゲットからの追加のデータ、または収集プラグインに追加のプログラミング・コードが必要になる場合があります。

1.5.3.4 証跡のチェックポイント

チェックポイントまたは証跡のチェックポイントは、監査レコードがOracle Audit Vault Serverにコミットされた最後のポイントです。

収集プラグインは、再起動時に最後のチェックポイントから再開できるようにチェックポイントを定期的に設定します。

1.5.3.5 データ収集のリカバリ・フェーズ

Oracle AVDFが、チェックポイントおよびリカバリ・メカニズムによって監査レコードのリカバリを管理する方法を学習します。

リカバリは、収集の途中でエージェントが停止し、再起動が必要な場合に実行されます。この時点で、リカバリ・プロセスによって、Audit Vault Serverに重複レコードがないことが確認されます。

Audit Vault Serverでは、すべての監査レコードが確実に1回のみアーカイブされます。そのために、Audit Vault Serverでは、チェックポイントおよびリカバリ・メカニズムが実装されています。

データ収集のリカバリ・フェーズでは、収集プラグインが停止および再起動して、収集を再開します。収集プラグインは、以前に停止したチェックポイントから収集を再開します。

収集プラグインが監査証跡からレコードを収集していない場合、チェックポイントは最初のレコードの前になります。収集プラグインがレコードの収集を開始して停止した場合、チェックポイントは収集した最後のレコードの直後になります。

チェックポイントの直後で収集を再開すると、収集プラグインが任意のレコードを確実に検出します。リカバリ中に重複するレコードの収集を回避するため、収集プラグインは各レコードのマーカー・フィールドを確認します。

収集プラグインは、最後のチェックポイントの前に発生したレコードを収集してエージェントに渡しません。ただし、エージェントは、最後のチェックポイントの後にコミットされ、収集プラグインの再起動時に再収集されたレコードを自動的にフィルタ処理します。Oracle Audit Vault and Database Firewall SDKを使用して作成された収集プラグインは、EventTimeUTCフィールドを拡張子.atcのファイルに書き込みます。スクリプトは後でこのファイルを読み取り、必要に応じて監査レコードを削除できます。

関連トピック

1.5.3.6 監査証跡のクリーン・アップ

Audit Vault Server収集プラグインは、ターゲットのアーカイブされた監査証跡データをクリーン・アップできます。

監査証跡のクリーン・アップは、アーカイブされた後に監査レコードをクリーン・アップするために一部のターゲットが提供する機能です。このタイプの機能がターゲットに存在する場合、Audit Vault Server収集プラグインが統合して、ターゲットに監査証跡がアーカイブされた範囲を通知できます。監査証跡のどの部分がアーカイブされるかを指定すると、ターゲットはそのポイントまでの監査証跡をクリーン・アップ(元の監査データを削除)できます。これは、アーカイブされたデータをクリーン・アップしても、データが消失することがないためです。収集プラグインは、データが収集された最後のポイントのチェックポイントに関するクリーン・アップ・ユーティリティ情報を提供します。

収集プラグインは、機能の適切なインタフェースを起動して、ターゲット・システムのクリーン・アップ機能を通知できます。たとえば、システムは、ファイル・システムのファイルのタイムスタンプを読み取り、そのタイムスタンプまでの監査証跡をクリーンアップする場合があります。その場合、プラグインはそのファイルを定期的に書き込むことができます。

たとえば、Oracle DatabaseターゲットではDMBS_AUDIT_MGMTパッケージでこのタイプのユーティリティが提供され、Oracle Databaseに事前にパッケージ化された収集プラグインがそれを統合します。

1.6 監査収集プラグインを書き込む一般的な手順

監査収集プラグインを正しく開発するには、この手順に従います。

収集プラグインを書き込む一般的な手順は、次のとおりです。

  1. Oracle Audit Vault and Database Firewallに追加する機能、新しいターゲット・タイプまたは既存のターゲット・タイプの新しい監査証跡を把握します。
  2. 必要な処理を実行するプラグインが提供されているかどうかを確認します。提供されている場合は、それを使用します。

    必要なプラグインが存在しない場合のみ続行します。

    ノート:

    バージョン依存のターゲット・タイプは作成しないでください。バージョン依存のターゲット・タイプは、同じソフトウェアの異なるバージョンで使用するために作成された異なるターゲット・タイプです。バージョン依存のターゲット・タイプを作成する場合、異なるバージョンにアップグレードされると、Oracle Audit Vault and Database Firewallはターゲットから収集できません。

    たとえば、バージョン依存のターゲット・タイプSQL Server 2000およびSQL Server 2005と、SQL Server 2000ターゲットから監査証跡を収集する収集プラグインを作成するとします。そのターゲットをSQL Server 2005にアップグレードすると、Oracle Audit Vaultエージェントはその監査証跡を収集できません。

  3. ターゲット・タイプが書き込むイベントおよびフィールドを確認します。

    プラグインを書き込む際に、適切な既存のイベントおよびフィールドを使用します(既存のイベントおよびフィールドの例)。必要なイベントまたはフィールドを使用できない場合、拡張フィールドを使用できます。Oracleでは、Audit Vaultがサポートするフィールドのセットを評価し、ターゲット・タイプの幅広いセットに適用される場合に新しいフィールドを追加することがあります。使用しているフィールドがこの基準を満たす場合、Oracleサポートに連絡してください。

  4. 書き込む収集プラグインのタイプを決定します。
  5. 開発環境を設定します。
  6. 作成しているプラグインのタイプについて学習します。
    Javaベースのプラグインの詳細は、「Javaベースの監査証跡収集プラグイン」を参照してください
  7. 収集プラグインの次の内容を判断します。
    • ターゲットへの接続方法。

    • ターゲットに問い合せて認識する必要がある内容を学習する方法。

    • プラグインがサポートするプラットフォーム。

  8. プラグインが監査証跡のクリーンアップをサポートするかどうかを決定します。
  9. 収集プラグイン・パラメータを設定します。

    Javaベースのプラグインの場合は、関連するコードを記述します。

  10. プラグイン・マニフェスト・ファイルを作成して、収集プラグインを示します。
  11. avpackユーティリティを実行して、プラグインをパッケージ化します。
  12. ステージング環境でプラグインをテストします。
  13. プラグインが動作する場合は、開発環境にデプロイするために、コマンドラインのコマンドを使用してOracle Audit Vault管理者が使用できるようにします。