Oracle® Audit Vault and Database Firewall 開発者ガイド

リリース12.1.0

B71714-01(原本部品番号:E27779-01)

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 概要

- 1.1 Oracle Audit Vault and Database Firewallの概要

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

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

- 1.2.1 監査収集プラグインのタイプ

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

- 1.3 Audit Vaultイベントおよびフィールド

- 1.3.1 コア・フィールド

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

- 1.3.2 他のAudit Vaultフィールド

- 1.3.2.1 ラージ・フィールド

- 1.3.2.2 拡張フィールド

- 1.3.2.3 マーカー・フィールド

- 1.3.3 Audit Vaultの監査レコードの格納

- 1.4 収集プロセス

- 1.4.1 収集のフロー: ユーザー

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

- 1.4.3 収集の概念

- 1.4.3.1 収集スレッド

- 1.4.3.2 収集フェーズ

- 1.4.3.3 マッピング

- 1.4.3.4 証跡のチェックポイント

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

- 1.4.3.6 監査証跡のクリーンアップ

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

2 Oracle Audit Vault Server環境の設定

- 2.1 開発環境を設定する前に

- 2.2 開発環境の設定

- 2.3 監査収集プラグインのディレクトリ構造

- 2.3.1 一般的なディレクトリ構造

- 2.3.2 監査収集プラグインのディレクトリ構造

- 2.3.3 plugin-manifest.xmlファイルのステージング

3 監査収集プラグイン

- 3.1 監査収集プラグインについて

- 3.2 マッパー・ファイルについて

- 3.3 データベース表の収集プラグイン

- 3.3.1 データベース表の収集プラグインの要件

- 3.3.2 データベース表の収集プラグインの監査証跡の例

- 3.3.3 データベース表のマッパー・ファイルの作成

- 3.4 XMLファイルの収集プラグイン

- 3.4.1 XMLファイルの収集プラグインの要件

- 3.4.2 XMLファイルの収集プラグインの監査証跡の例

- 3.4.3 XMLファイルの監査収集のマッパー・ファイルの作成

- 3.5 セキュア・ターゲットの収集属性

- 3.6 監査データの前処理

4 監査収集プラグインのパッケージ化

- 4.1 パッケージ化のフロー

- 4.2 外部依存

- 4.3 監査収集プラグインの新しいバージョンの作成

- 4.4 プラグイン・マニフェスト・ファイルの説明

- 4.5 avpackツール

5 監査収集プラグインのテスト

- 5.1 監査収集プラグインをテストする要件

- 5.2 通常の監査収集プラグインのテスト・プロセス

- 5.3 Oracle Audit Vault Agentのデプロイ

- 5.4 Oracle Audit Vault Agentの再デプロイ

A Audit Vault Serverフィールド

- A.1 AVDFフィールド

- A.1.1 コア・フィールド

- A.1.2 ラージ・フィールド

- A.1.3 マーカー・フィールド

- A.1.4 拡張フィールド

- A.2 アクションおよびターゲット・タイプ

- A.2.1 アクション

- A.2.2 ターゲット・タイプ

B スキーマ

- B.1 plugin-manifest.xmlファイルのサンプル・スキーマ

- B.2 データベース表の収集プラグインのマッパー・ファイル

- B.3 XMLファイルの収集プラグインのマッパー・ファイルのスキーマ

C サンプル・コード

- C.1 データベース表の収集プラグインの例

- C.1.1 データベース表の収集プラグインのマッパー・ファイル

- C.1.2 データベース表の収集プラグインのマニフェスト・ファイル

- C.2 XMLファイルの収集プラグインの例

- C.2.1 XMLファイルの収集プラグインのマッパー・ファイル

- C.2.2 XMLファイルの収集プラグインのマニフェスト・ファイル

用語集

索引

例一覧

- 2-1 一般的なディレクトリ構造

- 2-2 収集プラグインのディレクトリ構造

- 3-1 XML監査レコードのサンプル

- B-1 plugin-manifest.xsdファイルのサンプル

- B-2 データベース表の収集プラグインのマッパー・スキーマ

- B-3 XMLファイルの収集プラグインのマッパー・スキーマ

- C-1 データベース表の収集プラグインのXMLマッパー・ファイルのサンプル

- C-2 データベース表の収集プラグインのマニフェスト・ファイルのサンプル

- C-3 XMLファイルの収集プラグインのマッパー・ファイルのサンプル

- C-4 XMLファイルの収集プラグインのマニフェスト・ファイルのサンプル

図一覧

- 1-1 収集のフロー

表一覧

- 3-1 AUD監査表データ・フィールドおよびマッピング

- 3-2 XML監査レコードの監査データ・フィールドおよびマッピング

Oracle® Audit Vault and Database Firewall

開発者ガイド

リリース12.1.0

B71714-01(原本部品番号:E27779-01)

2012年12月

Oracle Audit Vault and Database Firewall開発者ガイド, リリース12.1.0

B71714-01

Copyright © 2012, Oracle and/or its affiliates.All rights reserved.

原本著者:  Janis Greenberg

原本協力者: Tulika Das, Sheila Moore

原本協力者: Shyam Bellam, Raghav Hanumantharau, Srivatsan Kannan, Sayali Nafde, Sreekumar Seshadri, Vipul Shah, Madhusudhan Reddy Yellu

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

はじめに

『Oracle Audit Vault and Database Firewall開発者ガイド』では、Audit Vault and Database Firewallの監査収集プラグインの開発方法について説明します。

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

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

『Oracle Audit Vault and Database Firewall開発者ガイド』では、監査収集プラグインの開発者を対象としています。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

Oracleサポート・サービスでは、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

Oracle Audit Vault and Database Firewallの詳細は、次のドキュメントを参照してください。

- 『Oracle Audit Vault and Database Firewall管理者ガイド』

- 『Oracle Audit Vault and Database Firewall監査者ガイド』

- 『Oracle Audit Vault and Database Firewallインストレーション・ガイド』

Oracleドキュメントの検索エンジン

データベース・ドキュメントの検索エンジンにアクセスするには、次のWebサイトを参照してください。

http://tahiti.oracle.com/

Oracle Technology Network Japan(OTN)

リリース・ノート、インストール関連ドキュメント、ホワイト・ペーパーまたはその他の関連ドキュメントは、OTN(Oracle Technology Network Japan)から、無償でダウンロードできます。すでにOTNのユーザー名およびパスワードを取得している場合は、次のURLでOTN Webサイトのドキュメントのセクションに直接接続できます。

http://www.oracle.com/technetwork/index.html

セキュリティ固有の情報は、次のWebサイトを参照してください。

http://www.oracle.com/technetwork/topics/security/whatsnew/index.html

このマニュアルを含むOracleマニュアルの最新バージョンは、次のWebサイトを参照してください。

http://www.oracle.com/technetwork/documentation/index.html

Oracle Audit Vault and Database Firewall固有のサイト

Oracle Audit Vault and Database Firewall固有のOTN情報は、次のWebサイトを参照してください。

http://www.oracle.com/technetwork/database/audit-vault/overview/index.html

Oracle Audit Vault and Database Firewalディスカッション・フォーラムは、次のWebサイトを参照してください。

http://forums.oracle.com/forums/forum.jspa?forumID=391

Oracle Store

印刷されたマニュアルは次のURLのOracle Storeで入手できます。

https://shop.oracle.com

My Oracle Support(以前のOracleMetaLink)

セキュリティ・パッチ、動作保証およびサポート・ナレッジ・ベースについては、次のURLのMy Oracle Supportを参照してください。

https://support.oracle.com

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 概要

この章では、Audit Vault and Database Firewallの監査収集プラグインについて説明します。章の最初にOracle Audit Vault and Database Firewallソフトウェア(AVDF)を簡単に説明してから、収集プラグインを説明します。後続の章では、カスタム収集プラグインを作成してデータベース表、XMLファイルまたは他の場所に書き込まれた監査情報を収集する方法について説明します。

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

- Oracle Audit Vault and Database Firewallの概要

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

- Audit Vaultイベントおよびフィールド

- 収集プロセス

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

1.1 Oracle Audit Vault and Database Firewallの概要

Oracle Audit Vault and Database Firewallは、複数の分散された異機種システムの監査データを収集、統合、保護および分析するソフトウェア・システムです。次のコンポーネントで構成されます。

- Oracle Audit Vault Server: Oracle Audit Vault and Database Firewallのアクティビティを管理する組込みのOracleデータベースおよび他のソフトウェア・コンポーネントを含むサーバー。

- Oracle Audit Vault Agent: リモート・ホストで実行され、Audit Vaultサーバーのコマンドに基づいて監査情報の収集を管理するJavaコンポーネント。エージェントは制御下の収集プラグインとやりとりして監査レコードを収集し、Audit Vault Serverに送信します。

- Oracle 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 Audit Vault and Database Firewall管理者ガイド』の説明に従って、Oracle、SQL Server、Sybase ASE、DB2などのデータベースからデータを収集します。

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

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

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

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

- セキュア・ターゲット
セキュア・ターゲットは、特定の機能を実行するソフトウェアまたはハードウェア・システムです。この機能の実行の一部として、セキュア・ターゲット・システムは監査証跡を生成します。セキュア・ターゲットは、セキュア・ターゲット・タイプのインスタンスで、接続資格証明や証跡タイプなどの特定のプロパティを持ちます。

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

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

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

- 監査データをデータベース表に書き込むセキュア・ターゲットの場合、セキュア・ターゲットの証跡は表の名前です。SYS.AUD$は、Oracleデータベースのデータベース表の監査証跡の例です。

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

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

Oracle Audit Vault and Database Firewallリリース12.1.0以降、開発者およびサードパーティ・ベンダーは、カスタム収集プラグインを作成できます。これらの収集プラグインは、新しいセキュア・ターゲット・タイプの監査データを収集したり、AVDFがすでに認識しているセキュア・ターゲット・タイプによって書き込まれた新しい監査証跡をサポートしてユーザーが使用できるようにします。

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

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

このガイドでは、これらのカスタム収集プラグインを作成して既存のOracle Audit Vault and Database Firewallインストール環境にデプロイする方法について説明します。

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

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

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

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

この項では、2つのタイプの収集プラグインと、各タイプを使用するために必要なプロパティについて説明します。

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

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

- XMLファイル: Audit Vault XML監査ファイル形式に基づいたXMLファイルに格納されます

関連項目:

- 「データベース表の収集プラグインの例」

- 「XMLファイルの収集プラグインの例」

1.3 Audit Vaultイベントおよびフィールド

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

Oracle Audit Vault and Database Firewallリリース12.1.0では、Audit Vault 10.3と比べてイベントおよびイベント構造の表現が大幅に簡素化されています。

Oracle Audit Vault and Database Firewallリリース12.1.0では、次の内容が適用されます。

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

- 通常、監査レコードは、対象となるオブジェクト・タイプに発生した内容を説明するセキュア・ターゲット・タイプのイベント名を持ちます。発生したアクションのターゲットも含まれます。また、アクションが発生した時間、件名またはアクションを発生させた実行者は必ず含まれますが、その他のデータも含まれる場合があります。
Audit Vault Serverでは、監査レコードのフィールドは、コア・フィールド、拡張フィールド、ラージ・フィールドおよびマーカー・フィールドのグループに分類されます。

1.3.1 コア・フィールド

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

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

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

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

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

- ClientHostName、ClientIpおよび他の関連フィールド: アクションの発生場所。

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

コア・フィールドの完全なリストは、付録Aの第A.1.1項「コア・フィールド」にリストされているコア・フィールドを参照してください。

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

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

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

これらは付録Aの第A.2項「アクションおよびターゲット・タイプ」にリストされています。

1.3.2 他のAudit Vaultフィールド

コア・フィールド以外に、Audit Vault Serverは次のカテゴリを認識します。

- ラージ・フィールド

- マーカー・フィールド

- 拡張フィールド

1.3.2.1 ラージ・フィールド

ラージ・フィールドは、大量のデータを任意で含むことができるフィールドです。詳細は、第A.1.2項「ラージ・フィールド」を参照してください。

1.3.2.2 拡張フィールド

拡張フィールドは、意味的に等しいAudit Vaultフィールドがなく、コアまたはラージ・フィールドにマップされないセキュア・ターゲット・フィールドを使用可能にする方法を提供します。

開発者は、フィールドの格納に使用される書式を判断します。

詳細は、第A.1.4項「拡張フィールド」を参照してください。

1.3.2.3 マーカー・フィールド

マーカー・フィールドは、証跡のレコードの一意識別子です。監査レコードの1つ以上のフィールドから作成されます。

詳細は、第A.1.3項「マーカー・フィールド」を参照してください。

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

プラグイン開発者として、セキュア・ターゲット内で発生する様々なイベントをAudit Vaultで許可された様々なフィールドにマップする必要があります。

監査レコードのフィールドをAudit Vaultの名前付きフィールドのいずれか(コア、ラージまたはマーカー・フィールド)にマップする場合は、そのままマップしてください。

監査レコードのフィールドを名前付きフィールドのいずれかにマップしない場合は、選択した拡張フィールドにマップできます。

ActionおよびTargetType Audit Vault Serverフィールドについては、「アクションおよびターゲット・タイプ」のフィールド値のリストを参照してください。監査レコードをこれらの値のいずれかに意味的にマップする場合、その該当する値を使用することを強くお薦めします。付録にリストされていない値も使用できます。

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

- セキュア・ターゲット・データベースのオブジェクトを参照するIDを格納しないでください。Audit Vaultはこれらのオブジェクトにアクセスできませんが、格納された値は意味がありません。監査者が認識できるように、かわりにオブジェクトのリテラル名を格納してください。

- 定義されたAudit Vault表記規則に従ってください。たとえば、Audit VaultのすべてのACTIONフィールドおよびTARGET TYPEフィールドは大文字の値を使用します。使用するセキュア・ターゲット・タイプに適用できず、Audit Vaultに格納されたデータが正しく解釈されない場合を除いて、この表記規則に従ってください。

- 可能な場合、「アクションおよびターゲット・タイプ」に記載されている値にマップしてください。たとえば、TABLEがTargetTypeとしてリストに存在する場合、DATABASE TABLEのTargetTypeを使用して監査レコードを追加しないでください。

最後に、セキュア・ターゲットの監査レコードのフィールドをコア・フィールドにする利点がある場合、モデルに適切に追加できるようOracleに連絡してください。

1.4 収集プロセス

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

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

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

- 収集の概念

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

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

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

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

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

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

次の項では、ユーザーが収集を開始した後に収集プラグイン内で発生する内容について説明します。

図1-1 収集のフロー

「図1-1 収集のフロー」の説明

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

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

この項では、このプロセスを詳細に説明します。

1. Audit Vault Serverは、エージェント・フレームワークに指示してスレッドを作成し、特定の監査証跡を収集します。「収集スレッド」を参照してください。

2. エージェントで作成された新しいスレッドは、特定の監査証跡を収集します。
この時点で、制御は収集フレームワークに渡されます。「収集フェーズ」を参照してください。

3. スレッド内で、収集フレームワークはAudit Vault Serverに接続し、収集する監査証跡の構成情報を問い合せます。
また、その証跡に設定された最後のチェックポイントの情報をリクエストします。「証跡のチェックポイント」を参照してください。

4. 現在の情報を使用して、収集フレームワークは、プラグイン・マニフェスト・ファイルを通じて、正しい収集プラグイン内で起動する正しいJavaクラスを判断します。構成情報をこのクラスに渡して、自身の初期化を要求します。

5. 収集プラグインが自身を初期化したら、収集フレームワークは繰り返しループします。各ループ内で、収集フレームワークは次の処理を実行します。

- 収集プラグインに監査証跡の追加の監査レコードを要求します。
収集プラグインは、追加の監査レコードをAudit Vault Serverが予期する監査レコードの形式に変換(マップ)し、収集APIを通じて収集フレームワークに渡します。「マッピング」を参照してください。

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

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

1.4.3 収集の概念

この項では、収集プロセスに関連する概念の一部について説明します。

1.4.3.1 収集スレッド

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

1.4.3.2 収集フェーズ

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

収集プラグインは、セキュア・ターゲット・レコードのキャラクタ・セット、使用されるエンコーディングおよびタイム・スタンプに関連する問題の情報も取得して、Audit Vault Serverサーバー要件と一致させる必要があります。

1.4.3.3 マッピング

必要なマッピングは、セキュア・ターゲット・レコードによって異なります。

次のタイプのマッピングが必要です。

- イベント・マッピング: セキュア・ターゲット固有のイベントをAudit Vaultイベントにマップします。

- フィールド・マッピング: セキュア・ターゲット・レコードの様々なフィールドをAudit Vaultフィールドにマップします。

- 値マッピング: 収集された様々なフィールド値を各フィールドの一連の正規化された値にマップします(たとえば、0および1は特定のフィールドのFALSEおよびTRUEにマップされる可能性があります)。

- 複雑なマッピング: セキュア・ターゲット・フィールドからAudit Vaultフィールド、またはセキュア・ターゲット監査イベントからAudit Vaultイベントへのマッピングが単純ではない場合、複雑なマッピングが使用されます。

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

チェックポイントまたは証跡のチェックポイントは、監査レコードがAudit Vault Serverにコミットされたポイント(タイムスタンプ)です。収集プラグインは、再起動時に最後のチェックポイントから再開できるようにチェックポイントを定期的に設定します。

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

Audit Vaultは、各監査レコードがAudit Vault Serverで1回のみアーカイブされることを示す、1回のみの保証をユーザーに提供します。このため、チェックポイントとリカバリのメカニズムを実装しています。

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

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

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

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

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

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

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

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

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

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

1. Oracle Audit Vault and Database Firewallに追加する機能、新しいセキュア・ターゲット・タイプまたは既存のセキュア・ターゲット・タイプの新しい監査証跡を把握します。

2. 『Oracle Audit Vault and Database Firewall開発者ガイド』を確認して、必要な処理を実行するプラグインが提供されているかどうかを参照します。存在する場合はそれを使用し、開発しなおすことはしないでください。
必要なプラグインが存在しない場合のみ続行します。

注意:
バージョン依存のセキュア・ターゲット・タイプ、つまり同じソフトウェアの異なるバージョンのセキュア・ターゲット・タイプを作成しないでください。実行すると、AVDFは、異なるバージョンにアップグレードされるとセキュア・ターゲットから収集できません。
たとえば、バージョン依存のセキュア・ターゲット・タイプSQL Server 2000およびSQL Server 2005と、SQL Server 2000セキュア・ターゲットから監査証跡を収集する収集プラグインを作成するとします。このセキュア・ターゲットをSQL Server 2005にアップグレードすると、Oracle Audit Vaultエージェントは監査証跡を収集できません。

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

4. 「監査収集プラグインのタイプ」の説明に従って、書き込む収集プラグインのタイプを決定します。

5. 開発環境を設定します。第2章「Oracle Audit Vault Server環境の設定」を参照してください。

6. 作成しているプラグインのタイプの詳細は、第3章「監査収集プラグイン」を参照してください。

7. 収集プラグインの次の内容を判断します。

- セキュア・ターゲットへの接続方法。

- セキュア・ターゲットに問い合せて認識する必要がある内容を習得する方法。

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

8. 「監査証跡のクリーンアップ」の説明に従って、プラグインが監査証跡のクリーンアップをサポートするかどうかを決定します。

9. 収集プラグイン・パラメータを設定します。

10. プラグイン・マニフェスト・ファイルを作成して、収集プラグインを示します。第4章「監査収集プラグインのパッケージ化」を参照してください。

11. avpackユーティリティを実行して、プラグインをパッケージ化します(第4章「監査収集プラグインのパッケージ化」を参照してください)。

12. ステージング環境のプラグインをテストします(第5章「監査収集プラグインのテスト」を参照してください)。

13. プラグインが動作する場合、『Oracle Audit Vault and Database Firewall管理者ガイド』で説明されているコマンドライン・コマンドを使用して、開発環境にデプロイするためにAudit Vault管理者がプラグインを使用できるようにします。

2 Oracle Audit Vault Server環境の設定

この章では、Oracle Audit Vault Server開発環境を設定するプロセスについて説明します。

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

- 開発環境を設定する前に

- 開発環境の設定

- 監査収集プラグインのディレクトリ構造

2.1 開発環境を設定する前に

監査収集プラグインを開発するには、最初に開発環境を設定する必要があります。この設定により、収集プラグインを開発およびテストする一貫性のある環境が提供されます。

開発者環境を設定する前に、次のことを実行します。

- Oracle Audit Vault and Database Firewall 12.1.0.の取得およびインストール。収集プラグインの実行をテストし、セキュア・ターゲットから正しい監査レコードを取得してサーバーで使用可能かどうかを判断するには、このバージョンが必要です。また、早期にエンドツーエンドの統合テストを実行すると、接続性の問題およびコードの他の不具合を排除できます。詳細は、『Oracle Audit Vault and Database Firewallインストレーション・ガイド』を参照してください。

- 使用する収集プラグインのタイプを決定するには、「作成する監査収集プラグイン・タイプの判断」を参照してください。

2.2 開発環境の設定

収集プラグインを開発する環境を設定するには、次の手順を実行します。

1. Audit Vault Serverホーム・ディレクトリを指すようにORACLE_HOME環境変数を設定します。
次に例を示します。

$ export ORACLE_HOME=/opt/oracle/product/12.1.0/av

2. ORACLE_SID環境変数をAudit Vault ServerデータベースのSIDに設定します。
次に例を示します。

$ export ORACLE_SID=av

3. PATH環境変数をAudit Vault Serverのbinディレクトリに設定します。
次に例を示します。

$ export PATH=$ORACLE_HOME/bin:$PATH

この設定により、開発サイクル中に既存のスクリプトを使用できます。

4. 収集プラグイン・プロジェクトに関連するjarを含めるようにCLASSPATH環境変数を設定します。
次に例を示します。

$ export CLASSPATH=$ORACLE_HOME/av/jlib

5. 必要に応じてディレクトリを作成します。
使用するディレクトリ構造は、「監査収集プラグインのディレクトリ構造」を参照してください。

2.3 監査収集プラグインのディレクトリ構造

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

- 一般的なディレクトリ構造

- 監査収集プラグインのディレクトリ構造

- plugin-manifest.xmlファイルのステージング

2.3.1 一般的なディレクトリ構造

例2-1に、一般的なディレクトリ構造を示します。

例2-1 一般的なディレクトリ構造

STAGE_DIR_ROOT
plugin-manifest.xml
jars
mycoll.jar
myjdbc-lib.jar
config
mycoll.properties
bin
mycoll.exe
patches
p3653288_GENERIC.zip

例2-1では、STAGE_DIR_ROOTディレクトリは、収集プラグイン・ファイルをステージングするルート・ディレクトリです。このディレクトリに直接plugin-manifest.xmlを配置します。STAGE_DIR_ROOTディレクトリで、次のディレクトリを作成します。

- jars: Javaビルド・プロセスで生成されたすべてのバイナリを保持します。
jarsディレクトリにJavaベース・プラグインのコレクタ・バイナリを配置します。ファイル・システムに簡単にアクセスするため、様々なコレクタJavaクラスをjarファイルにパッケージ化する必要があります。収集プラグインでは、コア・エージェントの一部であり、エージェントで管理されるすべてのコレクタで自動的に使用可能になるため、Collector.jarをこのディレクトリにパッケージ化する必要はありません。

- config: 収集プラグインで機能する必要がある構成ファイルを保持します。これらの構成ファイルは、リソース・バンドル、プロパティ・ファイルなどです。

- bin: ネイティブ非Javaバイナリ実行可能ファイルを保持します。たとえば、コレクタ・コードでネイティブ非Javaバイナリを起動する場合、binディレクトリに配置します。
エージェントが複数のプラットフォームでサポートされているため、エージェントがサポートするすべてのプラットフォームの非Javaバイナリをビルドする必要があります。また、コレクタ・プロセスは実行プラットフォームに基づく適切なバイナリを検索およびロードするため、「プラグイン・マニフェスト・ファイルの説明」で説明されているようなネーミング規則を使用してください。

- patches: コレクタで機能する必要があるセキュア・ターゲット固有のイベント属性のOPatchパッチを保持します。コレクタが実行時に必要な新しいイベント属性を追加する場合は、Oracleサポートに連絡してください。Oracleサポートは、これらのイベントをAudit Vault Serverリポジトリに追加するパッチを提供します。複数のプラグインで他のイベント属性名との競合を回避するには、この承認プロセスが必要です。これらのパッチを取得した後、patchesディレクトリに配置します。収集プラグインのデプロイ中にサーバーに自動的に適用されます。

2.3.2 監査収集プラグインのディレクトリ構造

例2-2に、収集プラグインのステージ・ディレクトリの構造を示します。

例2-2 収集プラグインのディレクトリ構造

STAGE_DIR_ROOT
plugin-manifest.xml
templates
mycoll-template.xml
config
mycoll.properties
patches
p3653288_GENERIC.zip

「プラグイン・マニフェスト・ファイルの説明」を参照してください。

収集プラグインでは、例2-2に示すtemplatesディレクトリにすべてのマッパー・ファイルを配置します。このように配置すると、収集プラグインはファイルに含まれる情報に基づいて関連するテンプレート・ファイルをロードします。

2.3.3 plugin-manifest.xmlファイルのステージング

plugin-manifest.xmlファイルは、収集プラグインを説明して属性を定義するコアXMLファイルです。STAGE_DIR_ROOTディレクトリの直下のplugin-manifest.xmlファイルを次のようにステージングする必要があります。

- UNIXシステム: ステージ・ディレクトリが/opt/final-plugin-stage/の場合、/opt/final-plugin-stage/plugin-manifest.xmlでplugin-manifest.xmlファイルをステージングします。

- Microsoft Windowsシステム: ステージ・ディレクトリがc:\myplugin\final-stage-dirの場合、c:\myplugin\final-stage-dir\plugin-manifest.xmlでplugin-manifest.xmlファイルをステージングします。

関連項目:

- 属性の説明およびリストは、「プラグイン・マニフェスト・ファイルの説明」を参照してください。

- 完全なサンプル・ファイルは、付録C「サンプル・コード」を参照してください。

- 「plugin-manifest.xmlファイルのサンプル・スキーマ」

3 監査収集プラグイン

この章では、監査収集プラグインおよびその作成方法について説明します。

この章の項目は次のとおりです。

- 監査収集プラグインについて

- マッパー・ファイルについて

- データベース表の収集プラグイン

- XMLファイルの収集プラグイン

- セキュア・ターゲットの収集属性

- 監査データの前処理

3.1 監査収集プラグインについて

収集プラグインは、コードの記述を必要とせずにデータベース表またはXMLファイルの監査証跡に格納されている監査データを取得できます。

収集プラグインは、テンプレートベースの汎用コレクタです。ユーザーはマッパー・ファイルを指定して、証跡から監査データを収集する必要があります。

Audit Vault Serverフィールドへのセキュア・ターゲット・フィールドのマッピング情報、およびセキュア・ターゲット・タイプと監査証跡の他の詳細を指定するXMLマッパー・ファイルを準備することで、収集プラグインが作成されます。モデルXMLマッパー・ファイルは、「データベース表の収集プラグインのマッパー・ファイル」および「XMLファイルの収集プラグインのマッパー・ファイル」で説明されています。

このプロセスは、コーディングの必要はありません。Audit Vaultは、マッパー・ファイルの解釈に必要なすべてのコードを含み、それらを使用して監査証跡から監査データを適切に収集します。

収集プラグインは、2つのタイプの監査証跡をサポートします。

- データベース表: データベース表の収集プラグインは、マッパー・ファイルの情報を使用して、監査表から監査データを収集できます。

- XMLファイル: XMLファイルの収集プラグインは、マッパー・ファイルの情報を使用して、単一のディレクトリに存在するXML監査ファイルから監査データを収集できます。

データベース表またはXMLファイル証跡の収集プラグインを使用するには、次の手順を実行します。

1. セキュア・ターゲットの監査証跡のXMLマッパー・ファイルを作成します。この章では、一般的なマッパー・ファイルを説明し、「データベース表のマッパー・ファイルの作成」および「XMLファイルの監査収集のマッパー・ファイルの作成」で作成に重点を置いて説明します。

2. このセキュア・ターゲット・タイプのplugin-manifestファイルを作成します。「プラグイン・マニフェスト・ファイルの説明」を参照してください。

3. マッパー・ファイルおよびplugin-manifestファイルをパッケージ化して、収集プラグインを作成します。第4章「監査収集プラグインのパッケージ化」を参照してください。

セキュア・ターゲットおよびそのセキュア・ターゲットに必要な収集属性を追加した後に、Audit Vault Serverでこの収集プラグインをデプロイし、これを使用して監査データを収集できます。「セキュア・ターゲットの収集属性」を参照してください。

3.2 マッパー・ファイルについて

マッパー・ファイルは、主に監査証跡から収集する必要があるセキュア・ターゲット・フィールド、およびこれらのセキュア・ターゲットのAudit Vault Serverフィールドへのマップ方法の情報を含むXMLファイルです。マッパー・ファイルはセキュア・ターゲット・タイプに固有で、securedTargetTypeやsecuredTargetVersionなどのセキュア・ターゲット情報を含みます。

マッパー・ファイルには次のような詳細情報を記述します。

- サポートされているセキュア・ターゲット名およびセキュア・ターゲット・バージョン。

- セキュア・ターゲット・フィールドからAudit Vault Serverフィールドへのマッピング情報。

- 各監査レコードを一意に識別するマーカーを作成するセキュア・ターゲット・フィールド。

- 監査証跡タイプがデータベース表である場合の監査表およびデータソース・クラス名。

- 監査証跡タイプがXMLファイルである場合のイベント時間のタイムスタンプ形式。

収集プラグインの一部としてマッパー・ファイルをパッケージ化します。プラグインのパッケージ化プロセス時に、マッパー・ファイルをtemplatesフォルダに配置します。「監査収集プラグインのディレクトリ構造」を参照してください。

関連項目:

- データベース監査表から監査レコードを取得するマッパー・ファイルについては、「データベース表の収集プラグイン」を参照してください。

- XMLファイルから監査レコードを取得するマッパー・ファイルについては、「XMLファイルの収集プラグイン」を参照してください。

3.3 データベース表の収集プラグイン

データベース表の収集プラグインは、表タイプの証跡からの監査データの収集をサポートします。単一の監査表から監査データを収集します。マッパー・ファイルで監査表の詳細を指定できます。これらのマッパー・ファイルは、「データベース表の収集プラグインのマッパー・ファイル」に示したスキーマに準拠する必要があります。

この項の項目は次のとおりです。

- データベース表の収集プラグインの要件

- データベース表の収集プラグインの監査証跡の例

- データベース表のマッパー・ファイルの作成

3.3.1 データベース表の収集プラグインの要件

次の基準を満たしている場合、セキュア・ターゲットのデータベース表から監査証跡を読み取るためのデータベース表の収集プラグインを使用できます。

- 監査データは、単一のデータベース表に格納する必要があります。

- セキュア・ターゲット・システムには、この表に格納されている監査データを読み取る権限を持つユーザーが存在します。

- 監査表の列を様々なAudit Vaultコア・フィールドおよびラージ・フィールドにマップできます。
また、単一または複数のフィールドを拡張およびマーカー・フィールドにマップできます。Audit Vaultコア・フィールド、拡張フィールドおよびマーカー・フィールドにマップされるフィールドは、Stringデータ型であるか、Stringに変換できる必要があります。CLOBなどのラージ・データ型は使用できません。CLOBデータ型を指定した列は、CommandTextやCommandParamなどのAudit Vaultラージ・フィールドを使用する必要があります。

- 監査証跡は、CommandClass Audit Vaultコア・フィールドにマップされるフィールドを含む必要があります。
CommandClassコア・フィールドの値は、NULL以外である必要があります。NULLである場合、レコードが無効なレコードとみなされるため、適切なマッピングを指定する必要があります。

- 監査ファイルは、UserNameコア・フィールドにマップできるフィールドを持つ必要があります。レコードがNULLのUserNameフィールドを持つ場合、レコードは無効とみなされます。

- 収集プラグインは、ラージ・フィールドの発行されたコマンドのテキストおよびコマンドに渡されるパラメータを収集できます。他のフィールドはAVDFのラージ・フィールドにマップできません。

- 監査証跡は、単調に増加する、つまり新しい監査レコードが証跡に挿入されるたびにフィールドの値が増加するタイプTimestampのフィールドを含む必要があります。このフィールドはマッパー・ファイルのEventTimeUTCコア・フィールドにマップする必要があります。任意の監査レコードでこのフィールド値がNULLになると、コレクタは異常な状況とみなして停止します。

- 監査証跡は、各監査レコードを一意に識別する単一の列または列のグループを含む必要があります。

付録B「スキーマ」のスキーマを参照してください。

3.3.2 データベース表の収集プラグインの監査証跡の例

この項には、章全体でサンプルのマッパー・ファイルの作成および構造を示すために使用される監査証跡の列の詳細が含まれます。

表3-1に、表AUDの監査データを生成および格納する仮のセキュア・ターゲット・タイプDBSOURCEの構造を示します。

表3-1 AUD監査表データ・フィールドおよびマッピング

セキュア・ターゲット・フィールド

データ型

Audit Vault Serverフィールド

マップするフィールド・タイプ

USER_ID

varchar

UserName

コア・フィールド

OS_USER_ID

varchar

OSUserName

コア・フィールド

ACTION

int

CommandClass

コア・フィールド

STATUS

int

EventStatus

コア・フィールド

EVENT_TIME

timestamp

EventTimeUTC

コア・フィールド

OBJ_NAME

varchar

TargetObject

コア・フィールド

OBJ_CREATOR

varchar

TargetOwner

コア・フィールド

USER_HOST

varchar

ClientHostName

コア・フィールド

SQL_TEXT

clob

CommandText

コア・フィールド

SQL_BIND

clob

CommandParam

コア・フィールド

TERMINAL

varchar

拡張フィールド

拡張フィールド

DB_ID

varchar

拡張フィールド

拡張フィールド

INSTANCE

varchar

拡張フィールド

拡張フィールド

PROCESS

int

拡張フィールド

拡張フィールド

SESSION_ID

int

マーカー・フィールド

マーカー・フィールド

ENTRY_ID

int

マーカー・フィールド

マーカー・フィールド

すべてのセキュア・ターゲット・フィールドがコア・フィールドにマップされるわけではありません。コア・フィールドにマップされないセキュア・ターゲット・フィールドは、拡張フィールドまたは監査レコードの一意性をテストする、指定したマーカー・フィールドにマップされます。

3.3.3 データベース表のマッパー・ファイルの作成

この項では、データベース表の収集プラグインのXMLマッパー・ファイルの作成方法について説明します。このタイプのマッパー・ファイルに使用される各XML要素および属性について簡単に説明します。第A.1項「AVDFフィールド」で、すべてのフィールドの説明を読むことができます。

関連項目:

- 完全な例は、「データベース表の収集プラグインのマッパー・ファイル」を参照してください。

- 「データベース表の収集プラグインの監査証跡の例」

次に、データベース表の収集プラグインのマッパー・ファイルの作成方法を示す段階的な例を示します。

- 最上位要素

<AVTableCollectorTemplate securedTargetType="DBSOURCE" minSecuredTargetVersion="10.2.0"
maxSecuredTargetVersion="11.0" version="1.0" >

AVTableCollectorTemplateは、マッパー・ファイルの開始をマークする最上位要素です。securedTargetType、maxSecuredTargetVersionおよびversion属性は必須です。minSecuredTargetVersion属性はオプションです。

minSecuredTargetVersion、maxSecuredTargetVersionおよびversion属性の受け入れられる形式は、12.2,10.3.2、11.2.3.0などのピリオドで区切られた数値を使用します。

- 表名情報

<TableName>AUD</TableName>

監査表のTableNameを指定する必要があります。これは必須フィールドです。

- セキュア・ターゲット接続情報

<ConnectionInfo>

<Driver>platform.jdbc.dbsource.DBSourceDataSource</Driver>

</ConnectionInfo>

データソース・クラス名を指定する必要があります。これは必須フィールドです。

- フィールド・マッピング情報

<FieldMappingInfo>

FieldMappingInfoは、セキュア・ターゲット・フィールドから様々なAudit Vaultフィールドへのマッピング情報および値変換(存在する場合)を指定する必要があります。これは必須要素です。

フィールド・マッピングには、セキュア・ターゲット・フィールド名を保持する<Name>要素を含む<Map>要素およびセキュア・ターゲットがマップされるAudit Valueフィールド名を保持する<MapTo>要素が含まれます。

セキュア・ターゲット・フィールドからAudit Vault Serverフィールドへの多対1のマッピングは指定しないでください。たとえば、次の例は無効です。

<!-- Invalid code
<Map>
<Name>USER_ID</Name>
<MapTo>UserName</MapTo>
</Map>
<Map>
<Name>OS_USER_ID</Name>
<MapTo>UserName</MapTo>
</Map>  -->

次の項では、コア、ラージ、拡張およびマーカー・フィールドのマッピングについて説明します。

- コア・フィールド

<CoreFields>

CoreFieldsは、セキュア・ターゲット・フィールドからAudit Vault Serverのコア・フィールドへのマッピングを提供します。指定されたセキュア・ターゲット・フィールドのデータ型は、SQL stringデータ型またはStringに変換できるデータ型に属する必要があります。

次の要素は、「コア・フィールド」で説明されているコア・フィールドを含みます。

<Map>
<Name>EVENT_TIME</Name>
<MapTo>EventTimeUTC</MapTo>
</Map>

EventTimeUTCは、イベント時間のマッピング情報を提供します。このフィールドは必須です。

EVENT_TIMEセキュア・ターゲット・フィールドは、SQLデータ型Timestampである必要があります。

<Map>
<Name>USER_ID</Name>
<MapTo>UserName</MapTo>
</Map>

UserNameは、アクションを実行するユーザーを表します。マッピングが提供されていない場合、監査データ収集は引き続き正常に開始されますが、各監査レコードは無効とみなされます。

<Map>
<Name>OS_USER_ID</Name>
<MapTo>OSUserName</MapTo>
</Map>

<Map>
<Name>ACTION</Name>
<MapTo>CommandClass</MapTo>
</Map>

CommandClassは、イベントのアクションを表します。マッピングが提供されていない場合、監査データ収集は引き続き正常に開始されますが、すべての監査レコードは無効とみなされます。

<Transformation>
<ValueTransformation from="1" to="CREATE"/>
<ValueTransformation from="2" to="INSERT"/>
<ValueTransformation from="3" to="SELECT"/>
<ValueTransformation from="4" to="CREATE"/>
<ValueTransformation from="15" to="READ"/>
<ValueTransformation from="30" to="LOGON"/>
<ValueTransformation from="34" to="LOGOFF"/>
<ValueTransformation from="35" to="ACQUIRE"/>
</Transformation>
</Map>

CommandClassは、セキュア・ターゲットからAudit Vault CommandClassフィールドへのValueTransformation値を持つTransformationフィールドを含みます。これらの変換は必須です。

to属性は、「アクションおよびターゲット・タイプ」で説明するように、CommandClassフィールドの値です。イベントをこれらの値のいずれかに意味的にマップできる場合は、そうすることをお薦めします。できない場合は、監査イベントを生成したアクションを適切に反映する値を使用します。

<Map>
<Name> OBJ_NAME</Name>
<MapTo>TargetObject</MapTo>
</Map>

<Map>
<Name>USER_HOST</Name>
<MapTo>ClientHostName</MapTo>
</Map>

<Map>
<Name>OBJ_CREATOR</Name>
<MapTo>TargetOwner</MapTo>
</Map>

<Map>
<Name>STATUS</Name>
<MapTo>EventStatus</MapTo>
<Transformation>
<ValueTransformation from="0" to="FAILURE"/>
<ValueTransformation from="1" to="SUCCESS"/>
<ValueTransformation from="2" to="UNKNOWN"/>
</Transformation>
</Map>

EventStatusは、セキュア・ターゲットからAudit Vault EventStatusフィールドへのValueTransformation値を持つTransformationフィールドを含みます。これらの変換は必須です。

</CoreFields>

- ラージ・フィールド情報

<LargeFields>
<Map>
<Name>SQL_TEXT</Name>
<MapTo>CommandText</MapTo>
</Map>

<Map>
<Name>COMMAND_PARAMETER</Name>
<MapTo>CommandParam</MapTo>
</Map>

</LargeFields>

LargeFieldsは、CommandTextやCommandParamなどのAudit Vault Serverのラージ・フィールドにマップされるセキュア・ターゲット・フィールドです。指定されたセキュア・ターゲット・フィールドは、SQLデータ型CLOBまたはStringであるか、Stringに変換できる必要があります。

ラージ・フィールドは、「ラージ・フィールド」で説明されています。

- 拡張フィールド

<ExtensionField>
<Name>DB_ID</Name>
<Name>INSTANCE</Name>
<Name>PROCESS</Name>
<Name>TERMINAL</Name>
</ExtensionField>

ExtensionFieldは、Audit Vault Serverの拡張フィールドに名前/値ペアとして格納する必要があるセキュア・ターゲット・フィールド名です。ここで指定されるセキュア・ターゲット列は、String値または情報を失わずにStringに変換できる値を持つ必要があります。

「拡張フィールド」を参照してください。

- マーカー・フィールド

<MarkerField>
<Name>SESSION_ID</Name>
<Name>ENTRY_ID</Name>
</MarkerField>

MarkerFieldは、各監査レコードを一意に識別するセキュア・ターゲット・フィールド名のリストを含みます。指定されたセキュア・ターゲット・フィールドは、SQLデータ型Stringであるか、Stringに変換できる必要があります。MarkerFieldは必須です。

マーカー・フィールドは、「マーカー・フィールド」で説明されています。

- 終了タグ
ファイルを有効にするため、フィールド・タグを適切に閉じる必要があります。フィールド終了タグの例は次のとおりです。

</FieldMappingInfo>

</AVTableCollectorTemplate>

3.4 XMLファイルの収集プラグイン

XMLファイルの収集プラグインは、XMLファイル・タイプの証跡からの監査データの収集をサポートします。これらのXML監査ファイルは、すべて単一のディレクトリに存在する必要があります。マッパー・ファイルでXML監査データの詳細を指定できます。このXMLマッパー・ファイルは、スキーマ「XMLファイルの収集プラグインのマッパー・ファイルのスキーマ」に準拠する必要があります。

この項の項目は次のとおりです。

- XMLファイルの収集プラグインの要件

- XMLファイルの収集プラグインの監査証跡の例

- XMLファイルの監査収集のマッパー・ファイルの作成

3.4.1 XMLファイルの収集プラグインの要件

XMLファイルが次の基準を満たしている場合、XML監査レコード・ファイルから監査証跡を読み取る収集プラグインを使用できます。

- 監査証跡は、単一のディレクトリ・パスの1つ以上のXMLファイルに格納する必要があります。

- ユーザーは、XML監査ファイルを含むディレクトリの読取り権限を持つ必要があります。

- このディレクトリのXMLファイルは、有効な正しい形式のXMLドキュメントである必要があります。

- ファイルおよびレコード開始要素は、マッパー・ファイルで指定されたとおりである必要があります。

- すべての監査レコード要素は、監査XMLファイルの同じレベルである必要があります。

- 監査XMLファイルのすべての監査レコード要素は同じである必要があります。

- 各監査レコード要素下では、すべてのフィールド要素が同じレベルであるか、監査レコード開始要素の1つ下のレベルである必要があります。

- XML監査ファイルは、CommandClassコア・フィールドにマップできる要素値を持つ必要があります。レコードがNULLのCommandClassフィールドを持つ場合、レコードは無効とみなされます。

- XML監査ファイルは、UserNameコア・フィールドにマップできる要素値を持つ必要があります。レコードがNULLのUserNameフィールドを持つ場合、レコードは無効とみなされます。

- XMLファイルでは、各監査レコードは、要素値のいずれかとしてタイムスタンプを持つ必要があります。
タイムスタンプ要素の値は、単調に増加する、つまりフィールドの値が新しい監査レコードが証跡に挿入されるたびに増加する必要があります。タイムスタンプ値は、必ずNot Nullである必要があります。タイムスタンプ形式は、SimpleDateFormat Javaクラスに従う必要があります。

このフィールドはマッパー・ファイルのEventTimeUTCコア・フィールドにマップする必要があります。イベント時間のマッピングがマッパー・ファイルに指定されていないか、監査レコードのイベント時間のフィールド値でNULLが検出される場合、収集プラグインが停止します。

- 監査証跡は、XML監査ファイルの各監査レコードを一意に識別する監査レコードの単一の要素値または要素値のグループを含む必要があります。

- XMLファイルのすべての監査レコードで共有される共通情報は、監査レコード要素と同じレベルのファイル開始要素の下にあるXMLファイルの先頭に存在する必要があります。

- 監査データのセキュア・ターゲットが複数のXML形式を持つ監査ファイルを作成する場合、ユーザーは、異なる開始要素を持つ各監査ファイル形式の個別のマッパー・ファイルを指定する必要があります。

3.4.2 XMLファイルの収集プラグインの監査証跡の例

この項には、章全体でXMLファイルの収集プラグインのサンプルのマッパー・ファイルの作成および構造に使用される監査証跡の例が含まれます。

例3-1 XML監査レコードのサンプル

<?xml version="1.0" encoding="UTF-8"?>
<Audit>
<AuditRecord>
<Audit_type>1</Audit_type>
<User_id>scott</User_id>
<Os_user_id>usr1</Os_user_id>
<Action>select</Action>
<Status>0</Status>
<Event_time>2010-11-11 12:23:59.166</Event_time>
<Obj_name>emp</Obj_name>
<Terminal>t1</Terminal>
<Db_id>136</Db_id>
<Session_id>170191</Session_id>
<Entry_id>1</Entry_id>
</AuditRecord>
<AuditRecord>
<Audit_type>3</Audit_type>
<User_id>scott</User_id>
<Os_user_id>usr1</Os_user_id>
<Action>delete</Action>
<Status>1</Status>
<Event_time>2010-11-11 12:33:59.166</Event_time>
<Obj_name>emp</Obj_name>
<Terminal>t1</Terminal>
<Db_id>136</Db_id>
<Session_id>170191</Session_id>
<Entry_id>2</Entry_id>
</AuditRecord>
</Audit>

表3-2に、XML監査ファイルの監査データを生成および格納する仮のセキュア・ターゲット・タイプXMLSOURCEの監査レコード構造およびAudit Vault Serverフィールドへのマッピングを示します。

表3-2 XML監査レコードの監査データ・フィールドおよびマッピング

セキュア・ターゲット・フィールド

Audit Vault Serverフィールド

マップするフィールド・タイプ

USER_ID

UserName

コア・フィールド

OS_USER_ID

OSUserName

コア・フィールド

ACTION

CommandClass

コア・フィールド

STATUS

EventStatus

コア・フィールド

EVENT_TIME

EventTimeUTC

コア・フィールド

OBJ_NAME

TargetObject

コア・フィールド

OBJ_CREATOR

TargetOwner

コア・フィールド

USER_HOST

ClientHostName

コア・フィールド

SQL_TEXT

CommandText

コア・フィールド

SQL_BIND

CommandParam

コア・フィールド

TERMINAL

拡張フィールド

拡張フィールド

DB_ID

拡張フィールド

拡張フィールド

INSTANCE

拡張フィールド

拡張フィールド

PROCESS

拡張フィールド

拡張フィールド

SESSION_ID

マーカー・フィールド

マーカー・フィールド

ENTRY_ID

マーカー・フィールド

マーカー・フィールド

3.4.3 XMLファイルの監査収集のマッパー・ファイルの作成

この項では、XMLファイルの収集プラグインのマッパー・ファイルを作成するために従う必要があるプロセスについて説明します。完全な例は、「XMLファイルの収集プラグインの例」を参照してください。

このマッパー・ファイルの収集プラグインのマッピングを次のように指定する必要があります。

- 最上位要素

<AVXMLCollectorTemplate securedTargetType="XMLSOURCE" maxSecuredTargetVersion="11.0"

version="1.0">

AVXMLCollectorTemplateは最上位要素です。securedTargetType、maxSecuredTargetVersionおよびversion属性は必須です。minSecuredTargetVersion属性はオプションです。

minSecuredTargetVersion、maxSecuredTargetVersionおよびversion属性の受け入れられる形式は、12.2,10.3.2、11.2.3.0などのピリオドで区切られた数値を使用します。

- ヘッダー情報

<HeaderInfo>
<StartTag>Audit</StartTag>
</HeaderInfo>

HeaderInfoは必須です。監査レコード・ファイルの最上位要素の名前を付ける1つの子要素StartTagを含みます。

- レコード情報

<RecordInfo>
<StartTag>AuditRecord</StartTag>
</RecordInfo>

RecordInfoは、XML監査ファイルの監査レコードの開始要素を提供します。RecordInfoは必須です。

StartTagは、XML監査ファイルの各監査レコードの開始要素です。

- フィールド・マッピング情報

<FieldMappingInfo>

FieldMappingInfoは、子要素CoreFields、LargeFields、ExtensionFieldおよびMarkerFieldに含まれるセキュア・ターゲット・フィールドから様々なAudit Vaultフィールドへのマッピング情報を提供します。

フィールド・マッピングには、セキュア・ターゲット・フィールド名を保持する<Name>要素を含む<Map>要素およびセキュア・ターゲットがマップされるAudit Valueフィールド名を保持する<MapTo>要素が含まれます。

セキュア・ターゲット・フィールドからAudit Vault Serverフィールドへの多対1のマッピングは指定しないでください。たとえば、次の例は無効です。

<!-- Invalid code
<Map>
<Name>USER_ID</Name>
<MapTo>UserName</MapTo>
</Map>
<Map>
<Name>OS_USER_ID</Name>
<MapTo>UserName</MapTo>
</Map>  -->

- コア・フィールド

<CoreFields>

CoreFieldsは、セキュア・ターゲット・フィールドからAudit Vault Serverのコア・フィールドへのマッピングを提供します。コア・フィールド・マッピングで指定されているセキュア・ターゲット・フィールドは、SQLデータ型の文字列または文字列に変換できるデータ型である必要があります。

次の要素は、「コア・フィールド」で説明されているコア・フィールドを含みます。

<Map>
<Name>EVENT_TIME</Name>
<MapTo>EventTimeUTC</MapTo>
<TimestampPattern>yyyy-MM-dd HH:mm:ss.SSS</TimestampPattern>
</Map>

EventTimeUTCは、イベント時間のマッピング情報を提供します。TimestampPatternの値は、イベント時間のタイムスタンプ形式を指定します。EventTimeUTCおよびTimestampPatternは必須です。

<Map>
<Name>USER_ID</Name>
<MapTo>UserName</MapTo>
</Map>

UserNameは、アクションを実行したユーザーを表します。マッピングが提供されていない場合、監査データ収集は引き続き正常に開始されますが、各監査レコードは無効とみなされます。

<Map>
<Name>OS_USER_ID</Name>
<MapTo>OSUserName</MapTo>
</Map>

<Map>
<Name>ACTION</Name>
<MapTo>CommandClass</MapTo>
</Map>

CommandClassは、イベントのアクションを表します。マッピングが提供されていない場合、監査データ収集は引き続き正常に開始されますが、すべての監査レコードは無効とみなされます。

<Transformation>
<ValueTransformation from="1" to="CREATE"/>
<ValueTransformation from="2" to="INSERT"/>
<ValueTransformation from="3" to="SELECT"/>
<ValueTransformation from="4" to="CREATE"/>
<ValueTransformation from="15" to="READ"/>
<ValueTransformation from="30" to="LOGON"/>
<ValueTransformation from="34" to="LOGOFF"/>
<ValueTransformation from="35" to="ACQUIRE"/>
</Transformation>

CommandClassは、セキュア・ターゲットからAudit Vault Server CommandClassフィールドへのValueTransformation値を持つTransformationフィールドを含みます。これらの変換は必須です。

to属性は、「アクションおよびターゲット・タイプ」で説明するように、CommandClassフィールドの値です。イベントをこれらの値のいずれかに意味的にマップできる場合は、そうすることをお薦めします。できない場合は、監査イベントを生成したアクションを適切に反映する値を使用します。

<Map>
<Name>OBJ_NAME</Name>
<MapTo>TargetObject</MapTo>
</Map>

<Map>
<Name>USER_HOST</Name>
<MapTo>ClientHostName</MapTo>
</Map>

<Map>
<Name>OBJ_CREATOR</Name>
<MapTo>TargetOwner</MapTo>
</Map>

<Map>
<Name>STATUS</Name>
<MapTo>EventStatus</MapTo>
<Transformation>
<ValueTransformation from="0" to="FAILURE"/>
<ValueTransformation from="1" to="SUCCESS"/>
<ValueTransformation from="2" to="UNKNOWN"/>
</Transformation>
</Map>

EventStatusは、セキュア・ターゲットからAudit Vault EventStatusフィールドへのValueTransformation値を持つTransformationフィールドを含みます。これらの変換は必須です。

</CoreFields>

- ラージ・フィールド情報

<LargeFields>
<Map>
<Name>SQL_TEXT</Name>
<MapTo>CommandText</MapTo>
</Map>

<Map>
<Name>COMMAND_PARAMETER</Name>
<MapTo>CommandParam</MapTo>
</Map>

</LargeFields>

LargeFieldsは、Audit Vault Serverのラージ・フィールドにマップされるセキュア・ターゲット・フィールドです。指定されたセキュア・ターゲット・フィールドは、SQLデータ型CLOBまたはStringであるか、Stringに変換できる必要があります。

ラージ・フィールドは、「ラージ・フィールド」で説明されています。

- 拡張フィールド

<ExtensionField>
<Name>DB_ID</Name>
<Name>INSTANCE</Name>
<Name>PROCESS</Name>
<Name>TERMINAL</Name>
</ExtensionField>

ExtensionFieldは、Audit Vault Serverの拡張フィールドに名前/値ペアとして格納する必要があるセキュア・ターゲット・フィールド名です。指定されたセキュア・ターゲット・フィールドは、SQLデータ型CLOBまたはStringであるか、Stringに変換できる必要があります。

「拡張フィールド」を参照してください。

- マーカー・フィールド

<MarkerField>
<Name>SESSION_ID</Name>
<Name>ENTRY_ID</Name>
</MarkerField>

MarkerFieldは、各監査レコードを一意に識別するセキュア・ターゲット・フィールドのリストを含みます。指定されたセキュア・ターゲット・フィールドは、SQLデータ型CLOBまたはStringであるか、Stringに変換できる必要があります。MarkerFieldは必須です。

マーカー・フィールドは、「マーカー・フィールド」で説明されています。

3.5 セキュア・ターゲットの収集属性

Audit Vault Serverに収集プラグインをデプロイしてセキュア・ターゲットを登録した後でプラグインが監査証跡から収集を開始する前に、セキュア・ターゲットの収集属性を設定する必要があります。

AVCLIコマンドALTER SECURED TARGETを使用して、収集属性を定義します。

必要なセキュア・ターゲット属性は次のとおりです。

securedTargetVersion(必須): セキュア・ターゲットの現在のバージョン。このバージョン情報により、収集プラグインのtemplatesディレクトリに複数のマッパー・ファイルがある場合、監査証跡の正しいマッパー・ファイルを選択できます。

ATCIntervalTime: 収集プラグインは、監査データが証跡から収集された最後の時間をファイルに書き込みます。この情報は、証跡から監査データをクリーンアップする一部のサード・パーティ・ユーティリティに役立ちます。収集プラグインは監査データのクリーンアップを実行せず、この情報をファイルに書き込むだけなので注意してください。ATCTimeIntervalは、収集プラグインがファイルの時間情報を更新する頻度を指定します。属性の値は分単位です。

TimeZoneoffset(必須): UTCタイムゾーンのセキュア・ターゲットのイベント時間のオフセット。これにより、コレクタがタイムゾーンを調整してイベント時間をAudit Vault Serverに正しく報告できます。イベント時間自体にタイムゾーン情報が含まれる場合、この属性はXMLファイルの収集プラグインには必要ありません。

3.6 監査データの前処理

一般に、収集プラグインは、この章で示される要件に準拠する監査証跡を収集するためにのみ使用できます。

ただし、収集プラグインを使用して監査レコードを直接収集できない他の理由がある場合に、間接的に実行できます。

これらの監査証跡の前処理をして、収集プラグインで収集できる形式でデータベース表またはXMLファイルのエントリを生成できる場合があります。たとえば、Linux、UNIXおよびWindowsのIBM DB2では、db2auditプログラムを実行して、固有のバイナリ形式からテキスト・ファイルに監査レコードを抽出する必要があります。新しいレコードを抽出するため、DB2ソフトウェアを所有するユーザーとしてこのプログラムを定期的に実行する必要があります。

収集プラグインを定義してファイルを直接読み取ることはできませんが、ファイルを定期的に読み取り、新しい監査レコードを抽出し、ディレクトリの新しいXMLファイルに書き込むプログラムを記述できる場合があります。このプログラムを実行するたびに、新しいレコードのみを含む新しいXMLファイルを作成することができます。収集プラグインを定義してこれらのXMLファイルを読み取り、監査レコードをAudit Vault Serverに収集できます。

4 監査収集プラグインのパッケージ化

この章では、収集プラグインをパッケージ化するために必要な手順について説明します。

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

- パッケージ化のフロー

- 外部依存

- 監査収集プラグインの新しいバージョンの作成

- プラグイン・マニフェスト・ファイルの説明

- avpackツール

4.1 パッケージ化のフロー

前の章では、収集プラグインをパッケージ化できる点まで説明しました。

第2章では、ステージング領域のディレクトリ構造、JDBCドライバ(必要な場合)、マッパー・ファイル、実行可能ファイル、Oracle提供パッチなどのすべてのOracle提供オブジェクトについて説明しました。

第3章では、マッパー・ファイルについて説明しました。

これで、格納場所、AVDFの処理内容を指定するplugin-manifest.xmlファイルを作成し、.zipファイルにパッケージ化してAVDF管理者に送信する準備が整いました。

1. 収集プラグイン・プログラムのパッケージ化の準備が整ったら、「監査収集プラグインのディレクトリ構造」に示されているディレクトリ構造を作成します。

2. plugin-manifest.xmlファイルを作成します。必要な場合、「プラグイン・マニフェスト・ファイルの説明」を参照してください。このファイルでは、収集プラグインおよびAudit Vault収集フレームワークの必要な情報を指定して収集プラグインをインスタンス化および実行する関連パラメータを説明します。収集プラグインのタイプに固有のplugin-manifest.xmlファイルの例は、「サンプル・コード」を参照してください。

3. 収集プラグイン・ファイル、plugin-manifest.xmlファイルおよび収集プラグインが実行時に依存する追加のjarをパッケージ化します。

4. avpackツールを実行します。avpackツールは、収集プラグイン・パッケージを表す.zipパッケージを検証および生成します。「avpackツール」を参照してください。
avpackツールは、多数の妥当性チェック(ディレクトリ構造が正しく移入されているか、マニフェスト・ファイルが正しい形式か、エラーがないかなど)を実行し、デプロイ用にzipファイルの形式で収集プラグイン・パッケージを生成します。

4.2 外部依存

このパッケージ化プロセスで外部依存とは、実行時に必要ですが、収集プラグインをパッケージ化する際に使用できない可能性があるファイルのことです。たとえば、収集プラグインが、エンドユーザーがライセンスを付与するサード・パーティ・コンポーネント、またはライセンスまたは著作権に関連する問題を持つコンポーネントに依存する場合、そのコンポーネントをパッケージ化できない可能性があり、エンドユーザーは収集プラグインのデプロイ中に提供する必要があります。

これらのシナリオでは、plugin-manifest.xmlにunresolved-external要素を公開します。avpackはこの要素下のファイルをチェックしませんが、デプロイ時に$OH/av/dropinsフォルダにこれらのファイルが含まれない場合、avpackが収集プラグインのデプロイに失敗します。

次の例では、foo.jarは外部依存です。

<unresolved-external>
<file>foo.jar</file>
</unresolved-external>

デプロイ中に、avpackは、ファイルfoo.jarがAudit Vault Serverの$OH/av/dropinsフォルダに存在するかどうかを確認します。ファイルがない場合、avpackは収集プラグインのデプロイに失敗し、外部依存が満たされていないことを示します。

この問題を解決するには、ユーザーはファイルを取得して、$OH/av/dropinsフォルダで使用可能にする必要があります。これで、avpackは、収集プラグインを正常にデプロイできます。

4.3 監査収集プラグインの新しいバージョンの作成

収集プラグインの新しいバージョンを作成する場合、簡単にプラグインして、既存のバージョンを容易に置き換えることができます。

avcliコマンドライン・ツールを使用して、既存の収集プラグインを新しいバージョンに更新するための『Oracle Audit Vault and Database Firewall管理者ガイド』で説明されているDEPLOY PLUGINコマンドを使用できます。収集プラグインは性質上累積されます。すべての必要なファイルが作成および更新されます。

avcliツールおよび『Oracle Audit Vault and Database Firewall管理者ガイド』で説明されているUNDEPLOY PLUGINコマンドを使用して、収集プラグインを削除またはアンデプロイできます。このコマンドはアトミック、つまりすべてまたはゼロのトランザクションであるため、高度なシステムの安定性を維持できます。

4.4 プラグイン・マニフェスト・ファイルの説明

plugin-manifest.xmlファイルは、収集プラグインを説明して次の要素および属性を定義するコアXMLファイルです。

- plugin要素は、次の属性を持つプラグイン・オブジェクトを表します。

- Name: 収集プラグインの記述名。

- version: 収集プラグインの更新ごとにバージョンを更新し、順序付けスキームに基づいて単調に増加します。たとえば、AVDFは、ピリオドで区切られた5つの数値で構成されるバージョニング・スキームを使用します: majr.minr.minr.patch.hotfix。

- provider: 通常企業または組織のプロバイダの名前。

- copyright: 収集プラグインの著作権表示。

- TargetVersion: 収集プラグインと互換性があるOracle Audit Vault and Database Firewallバージョン。min属性は、ターゲットの最低バージョンを表します。

- extensionSet: 一連のextensionPoint。

- ExtensionPoint: 各extensionPointは、収集プラグインによって拡張されるAVDFの領域を一意に識別します。現在、AVDFは、type属性で指定されている1つの拡張ポイントsecuredTargetTypeをサポートします。

- fileList: 収集プラグインとともに提供されるすべてのファイルのリスト。

- jars: 要素fileで拡張子.jarを持つJavaファイルを含むディレクトリ。

- templates: 要素fileで収集プラグインのマッパー・ファイルを含むディレクトリ。

- bin: 要素fileで通常.exeが末尾に付く実行可能ファイルを含むディレクトリ。

- config: 要素fileでプラグイン固有の構成ファイルを含むディレクトリ。

- shell: 要素fileでシェルまたはバッチ・コマンド・ファイルを含むディレクトリ。

- patch: 要素fileで収集プラグインのイベント・パッチを含むディレクトリ。

- unresolved-external: なんらかの理由で収集プラグインとともにパッケージ化できないが実行時に必要なファイルを含むディレクトリ。パッケージ化には成功しますが、これらのファイルがOracle Audit Vault Serverの$OH/av/dropinsフォルダで使用可能になるまでプラグインのデプロイに失敗します。これらのファイルは要素fileにあります。詳細は、「外部依存」を参照してください。

- securedTargetTypeInfo: これは、この収集プラグインがサポートするソース・タイプを示す必須フィールドです。この要素の名前属性を入力して、ソース・タイプを指定します。

- trailInfo: 収集プラグインがサポートするこのソース・タイプの監査証跡のタイプを示す必須フィールド。

- trailType: このエントリで記述される証跡のタイプを示す必須フィールド。Oracle Audit Vault and Database Firewall 12.1.0.0.0は、TABLE、DIRECTORY、TRANSACTIONLOG、SYSLOGおよびEVENTLOGの証跡のタイプをサポートします。
trailTypeは任意の文字列も指定でき、その場合はカスタム証跡タイプとして処理されます。

- trailLocation: 証跡の場所を指定します。TABLEおよびCUSTOMタイプの証跡にのみ適用可能です。このフィールドは他の証跡タイプに対して設定を禁止され、設定すると無視されます。

- className: この証跡から監査データを取得するタスクを処理するJavaクラスを指定します。次の要素を使用します。
- データベース表の収集プラグインのoracle.av.platform.agent.collfwk.collector.table.DatabaseTableCollector。

- XMLファイルの収集プラグインのoracle.av.platform.agent.collfwk.collector.xml.XMLFileCollector。

同じソース・タイプの異なるソース・バージョンの監査証跡を処理するには、srcVersion属性をオプションで設定できます。

- eventPatch: これは、収集プラグインのデプロイの一部として適用する必要があるイベント・パッチを含むオプション・フィールドです。これらのパッチは、eventPatch要素内で、ファイル名としてname属性と、パッチを適用する順序を示すorder属性を指定しています。
追加するイベント属性は、Oracle Audit Vault and Database Firewallの開発で生成されるパッチを通じて拡張されます。パートナ開発者は、Oracle Audit Vaultイベント・ディクショナリに追加する特定のイベントおよび属性または両方をリクエストできます。リクエストは正当であるとコア開発チームが判断した場合、パッチを発行する可能性があります。プラグインのデプロイ中にアプリケーションの収集プラグインを使用して、これらのパッチをバンドルできます。

関連項目:

特定の収集プラグインのマニフェスト・プラグイン・ファイルのサンプルについては、次を参照してください。

- 「データベース表の収集プラグインのマニフェスト・ファイル」

- 「XMLファイルの収集プラグインのマニフェスト・ファイル」

4.5 avpackツール

avpackツールは、コード・ファイル、構成ファイルなどの様々な収集プラグイン・オブジェクトをパッケージ化するJavaで記述されたコマンドライン・ベース・ツールです。

「監査収集プラグインのディレクトリ構造」で推奨されているディレクトリ構造に従って、収集プラグイン・アーティファクトを配置する必要があります。次に、avpackを使用して、収集プラグイン・パッケージを生成できます。

avpackツールがアクセスできるディレクトリに収集プラグイン・ファイルをステージングできます。avpackツールはディレクトリ構造を検証し、plugin-manifest.xmlファイルを解析および検証します。plugin-manifest.xmlで指定されたすべてのファイルが対応するディレクトリにステージングされることの検証など、基本的な健全性チェックも実行できます。

plugin-manifest.xmlファイルを使用して、収集プラグインが実行する必要があるキー・ファイルを指定します。avpackユーティリティはこれらのファイルの存在をチェックしますが、stagedirに含まれるすべてを圧縮するため、avpackで検証する必要がないかぎり、各ファイルをリストする必要はありません。

検証が完了すると、ツールは、ファイルをOracle Audit Vault and Database Firewallのデプロイに適した.zipプラグイン・パッケージにパッケージ化します。

使用方法

avpack -stagedir <directory name> -o <archive filename> [-l <loglevel> ]

説明:

directory: 収集プラグイン・アーティファクトがステージングされるディレクトリ。このディレクトリのコンテンツは、生成されたプラグイン・アーカイブにアーカイブされます。

archive filename: 生成されたプラグイン・アーカイブ・ファイルの名前。.zip拡張子を持つ必要があります(たとえば、myplugin.zipなど)。

log level: オプション: ログ・レベルを指定されたレベルに設定します。サポートされているログ・レベルは、INFO、WARNING、ERRORおよびDEBUGです。デフォルトのログ・レベルはINFOです。

詳細なヘルプは、avpack -h出力を参照してください。

5 監査収集プラグインのテスト

この章では、収集プラグインに実行できるテストの一般的な説明を提供します。テストを必要とする他の問題については、データベースおよび監査証跡を分析してください。

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

- 監査収集プラグインをテストする要件

- 通常の監査収集プラグインのテスト・プロセス

- Oracle Audit Vault Agentのデプロイ

- Oracle Audit Vault Agentの再デプロイ

5.1 監査収集プラグインをテストする要件

次の内容を実行して、テストを準備する必要があります。

- 「開発環境を設定する前に」の説明に従って、Audit Vault ServerおよびAudit Vault Agentをデプロイします。

- 使用できるソース・システム、監査イベントを生成するシステムを用意します。

- 監査証跡をローカルで収集する必要がある場合(たとえば、オペレーティング・システム・ファイルに書き込まれる場合など)、エージェントが監査証跡があるコンピュータにデプロイされていることを確認します。

5.2 通常の監査収集プラグインのテスト・プロセス

通常のテスト・プロセスは次のとおりです。

1. 次の機能テストを実行します。

1. 第4章「監査収集プラグインのパッケージ化」で作成した.zipアーカイブの収集プラグインをOracle Audit Vault Serverテスト環境にデプロイします。

2. 「Oracle Audit Vault Agentの再デプロイ」の説明に従って、エージェント(更新されたプラグイン・アーティファクトを含む)をOracle Audit Vaultエージェントのテスト環境に再デプロイします。

3. AVCLIユーティリティを使用して、ソースを登録します。『Oracle Audit Vault and Database Firewall管理者ガイド』を参照してください。

4. AVCLI START COLLECTIONコマンドを発行して、この収集プラグインでサポートされる監査証跡のレコードの収集を開始します。『Oracle Audit Vault and Database Firewall管理者ガイド』を参照してください。

5. AVDFコンソールでデータ・レポートを参照してプロセスを検証し、次のことを確認します。
- ソースのレコードがOracle Audit Vault Server内にあります。

- データに意味があります。

- フィールドが正しくマップされています。

- 値が有効です。

6. AVCLI STOP COLLECTIONコマンドを発行します。『Oracle Audit Vault and Database Firewall管理者ガイド』を参照してください。

7. 収集プラグインをアンデプロイします。『Oracle Audit Vault and Database Firewall管理者ガイド』を参照してください。

8. 手順1bの説明に従って、エージェントを再デプロイします。

2. 失敗テストを実行して、発生した処理や様々なエラーの時間を確認します。
失敗例は、ネットワーク障害、収集中のソースの停止、電源停止および不正な形式の入力データなどです。すべての場合で、収集プラグインがクラッシュせず、正常にリカバリして停止した場所から収集を続行できる必要があります。提供する必要がある保証は、失敗に関係なく各監査レコードをAudit Vault Serverに1回だけ送信することです。

3. 収集プラグインが使用する次のコンポーネント数を確認して、パフォーマンスを分析します。
- CPU

- メモリー

- ディスクI/O

- ネットワークI/O

4. 負荷の高いパフォーマンスを確認します。
負荷の例は、30日間の継続使用、大量のイベント、同じホストおよび複数のホストでの複数のソースの証跡の同時収集などです。

5. セキュリティ・テスト(たとえば、HTMLまたはSQLをインジェクトできるかどうかの確認など)を実行します。

6. 国際化テストを実行します。複数の入力言語のデータを処理する機能をテストします。

7. 不具合が検出された場合、修正してこれらの手順を繰り返します。

5.3 Oracle Audit Vault Agentのデプロイ

このエージェントは、Audit Vault Serverと同じコンピュータまたは異なるコンピュータに配置できます。

エージェントをデプロイするには、次の手順を実行します。

1. AVCLIコマンドREGISTER HOSTを使用して、エージェント・ホストを登録します。『Oracle Audit Vault and Database Firewall管理者ガイド』を参照してください。

2. エージェント・ホストにディレクトリ($AGENT_HOME)を作成します。

3. Audit Vault Server $ORACLE_HOME/av/jlib/agent.jarから$AGENT_HOMEにagent.jarをコピーします。

4. 次のコマンドを使用して、エージェントをインストールします。

$ java -jar agent.jar -d $AGENT_HOME

5. 次のコマンドを使用して、アクティブ化リクエストをAudit Vault Server管理者に送信します。

$ $AGENT_HOME/bin/agentctl activate

Audit Vault Server管理者は、次のコマンドまたは管理者コンソールを使用して、アクティブ化リクエストを承認する必要があります。

avcli> activate host '<agent host>';

アクティブ化承認プロセス中に生成されたアクティブ化キーをエージェント管理者に送信する必要があります。

6. 次のようにAudit Vault管理者が指定するアクティブ化キーを使用して、エージェントを起動します。

$ $AGENT_HOME/bin/agentctl start -key <activation key>

この後、エージェントが起動すると、ユーザーはアクティブ化キーを指定する必要はありません。次のコマンドを使用して、エージェントを起動できます。

$ $AGENT_HOME/bin/agentctl start

7. 次のコマンドを使用して、エージェントをいつでも停止できます。

$ $AGENT_HOME/bin/agentctl stop

エージェントが完全に停止してエージェント・プロセスが停止する前に数秒かかる場合があります。

アクティブ化は1回だけです。再実行する必要はありません。

5.4 Oracle Audit Vault Agentの再デプロイ

収集プラグインのテスト中に様々な理由でエージェントを再デプロイする必要がある場合があります。エージェントがすでに設定され、ディレクトリが作成されていることが前提です。

エージェントを再デプロイするには、次の手順を実行します。

1. Audit Vault Serverからローカル・ディレクトリにagent.jarをコピーします。

2. 次のコマンドを使用して、エージェントを更新します。

$ java -jar agent.jar -d $AGENT_HOME

3. $AGENT_HOME/bin/agentctl起動コマンドを起動して、エージェントを起動します。

注意:
エージェントは、java -jar agent.jarコマンドに提供される宛先ディレクトリによってアップグレードまたは新しいインストールかどうかを自動的に判断します。

A Audit Vault Serverフィールド

この付録には、収集プラグインでマップできるAVDFイベントおよびフィールドが含まれています。

この付録の項目は次のとおりです。

- AVDFフィールド

- アクションおよびターゲット・タイプ

A.1 AVDFフィールド

この項では、様々なタイプのAVDF値について説明します。

- コア・フィールド

- ラージ・フィールド

- マーカー・フィールド

- 拡張フィールド

A.1.1 コア・フィールド

コア・フィールドは、すべてのソース・タイプの基本で、イベントの説明において非常に重要です。このフィールドは、ほとんどの監査レコードに存在し、レポート、フィルタ処理などに使用されます。

EventTimeUTC: 必須: イベントが発生した時間を示すタイム・スタンプ。イベントに複数のタイム・スタンプがある場合(たとえば、イベント開始タイム・スタンプとイベント終了タイム・スタンプなど)、収集プラグインは、タイム・スタンプをこのフィールドに割り当てる必要があります。このフィールドがNULLを含む場合、Oracle Audit Vaultは収集プラグインを停止します。

UserName: 必須: 監査レコードを生成したアプリケーションまたはシステムのアクションを実行したユーザー。このフィールドがNULLを含む場合、監査レコードは無効です。

CommandClass: 必須: イベントで実行したアクション(たとえば、SELECT、DELETEなど)。このフィールドがNULLを含む場合、監査レコードは無効です。「アクション」を参照してください。

OSUserName: 監査レコードを生成したオペレーティング・システムにログインしたユーザー。ユーザーがJOHNとしてオペレーティング・システムにログインし、SCOTTとしてアクションを実行した場合、このフィールドはJOHNとなり、User NameフィールドはSCOTTとなります。

TargetType: アクションを実行したターゲット・オブジェクトのタイプ。たとえば、ユーザーが表から選択した場合、ターゲット・タイプはTABLEです。「ターゲット・タイプ」を参照してください。

TargetObject: アクションを実行したオブジェクトの名前。たとえば、ユーザーが表から選択した場合、Target Objectフィールドはその表の名前になります。

TargetOwner: アクションが実行されたターゲットの所有者の名前。たとえば、ユーザーがユーザーJOHNによって所有されている表から選択した場合、「ターゲット所有者」フィールドはユーザー名JOHNになります。

ClientIP: ユーザーがアクションを開始したホスト(ホスト名)のIPアドレス。

ClientHostName: ユーザーがアクションを開始したホスト・コンピュータ。たとえば、ユーザーがサーバーのアプリケーションからアクションを実行した場合、このフィールドはそのサーバーの名前になります。

EventName: 監査証跡からのそのままのイベント名。

EventStatus: イベントのステータス。EventStatusには、SUCCESS、FAILUREおよびUNKNOWNの3つの値が使用できます。

ErrorId: アクションのエラー・コード。

ErrorMessage: アクションのエラー・メッセージ。

CommandText: SQL文、PL/SQL文などを指定できるイベントを発生させたコマンドのテキストを含みます。これはラージ・フィールドでもあります。

CommandParam: イベントを発生させたコマンドのパラメータを含みます。これはラージ・フィールドでもあります。

A.1.2 ラージ・フィールド

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

ラージ・フィールドでは、次を使用します。

- OriginalContent: セキュア・ターゲットの元の監査レコードを含みます。
収集された監査レコードの元のコンテンツが大きい場合、このフィールドを各監査レコードに移入しないことをお薦めします。監査レコードを正常に解析し、他のAudit Vaultフィールドにマップする関連情報を抽出できる場合、OriginalContentフィールドの同じ情報を取得する必要はありません。レコードが不正な可能性があるために実行できない場合でも、レコードをAudit Vaultに送信できます。その場合、レコードをINVALIDアクションにマップし、そのアクションのOriginalContentフィールドの完全なレコードを取得することをお薦めします。

- CommandText: SQL文、PL/SQL文などを指定できるイベントを発生させたコマンドのテキストを含みます。これはコア・フィールドでもあります。

- CommandParam: イベントを発生させたコマンドのパラメータを含みます。これはコア・フィールドでもあります。

A.1.3 マーカー・フィールド

レコードのマーカー・フィールド: マーカーは、証跡のレコードを一意に識別する文字列です。リカバリ・プロセス中に、Audit Vaultは、このフィールドを使用して、重複するレコードをフィルタ処理します。収集プラグインは、通常監査レコード・フィールドの連結したサブセットであるマーカー・フィールドを提供します。たとえば、Oracleデータベースでは、セッションIDおよびエントリID(セッション内の一意識別子)によりマーカーが定義されます。

A.1.4 拡張フィールド

拡張フィールドは、単一のAudit Vaultフィールド内のデリミタで区切られた名前/値ペアとしてコアまたはラージ・フィールドに対応できないフィールドを格納できます。

A.2 アクションおよびターゲット・タイプ

この項には、Audit Vaultが認識するターゲット・タイプおよびアクションのリストが含まれます。収集プラグインを作成している場合に、フィールドが意味的にマップされていたら、マッパー・ファイルでこれらのフィールドを使用する必要があります。それ以外の場合、独自の値を使用できます。

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

- アクション

- ターゲット・タイプ

A.2.1 アクション

Actionフィールドは、監査レコードの生成をトリガーするユーザー・アクティビティの性質を説明します。文の動詞と似ていて、動作を説明します。

Oracle Audit Vault and Database Firewallでは、ユーザー・アクティビティが意味的にマップされている場合、監査イベントをActionフィールドの適切な値にマップすることを強くお薦めします。Audit Vault Serverは、現在、次のアクションを認識します。

作成

読取り

選択

挿入

削除

除去

切捨て

更新

変更

実行

通信

設定

取得

確認

ログオン

ログオフ

認可

違反

獲得

リリース

有効化

無効化

バックアップ

リストア

オープン

クローズ

適用

付与

失効

拒否

一時停止

再開

コミット

セーブポイント

チェックポイント

ロールバック

ロールフォワード

コピー

移動

名前変更

分析

監査

監査なし

移行

検証

起動

停止

アンマウント

マウント

無効

関連付け

関連付け解除

拒否

プロキシ

初期化

不明

サブスクライブ

サブスクライブ解除

ユーザー構成可能イベント

DDL

制御

元に戻す

アクセス

デッドロック

DML

トランザクション制御

A.2.2 ターゲット・タイプ

TargetTypeフィールドは、ユーザー・アクションが動作するオブジェクトのタイプを説明します。ユーザー・アクションのオブジェクトを説明する名詞と似ています。

Oracle Audit Vault and Database Firewallでは、ユーザー・アクティビティが意味的にマップされている場合、監査イベントをTargetTypeフィールドの適切な値にマップすることを強くお薦めします。

Audit Vault Serverは、現在、次のターゲット・タイプを認識します。

DATABASE

OBJECT

OPERATOR

OUTLINE

PROCEDURE

PUBLIC DATABASE LINK

TYPE BODY

CONTROL FILE

FLASHBACK

BROKER QUEING

BUFFERPOOL

SCHEMA

SYSTEM

TRIGGER

PRIVILEGE

EVENT MONITOR

RULE

EVALUATION

USER

STATISTICS

METHOD

CONTEXT

MESSAGE

VIEW

CONNECTION

TAPE

SAVEPOINT

USER OR PROGRAM UNIT LABEL

APP ROLE

EDITION

FLASHBACK ARCHIVE

MATERIALIZED VIEW LOG

NODEGROUP

PACKAGE BODY

RESOURCE COST

ROLE

INDEXTYPE

USER_RECYCLEBIN

SAVEPOINT

ASSEMBLY

CLUSTER

FUNCTION

JAVA

MINING MODEL

PUBLIC SYNONYM

REWRITE EQUIVALENCE

SEQUENCE

SUMMARY

DEFAULT

AUTHORIZATION

INSTANCE

NODE

CHECKPOINT

EXPRESSION

DATABASE LINK

DIMENSION

INDEX

PACKAGE

SYNONYM

TABLE

TABLESPACE

TYPE

DIRECTORY

LIBRARY

RESTORE POINT

ALL TRIGGERS

APPLICATION

TRANSACTION

USER LOGON

REVOKE

UNKNOWN

MATERIALIZED VIEW

SESSION

TABLE OR SCHEMA POLICY

INDEXES

PROFILE

ROLLBACK SEG

TRACE

DBA_RECYCLEBIN

SUBSCRIPTION

B スキーマ

この章では、プラグイン・マニフェスト・ファイルおよび収集プラグインのスキーマについて説明します。

- plugin-manifest.xmlファイルのサンプル・スキーマ

- データベース表の収集プラグインのマッパー・ファイル

- XMLファイルの収集プラグインのマッパー・ファイルのスキーマ

B.1 plugin-manifest.xmlファイルのサンプル・スキーマ

これはplugin-manifest.xmlファイルのスキーマです。このスキーマを使用して、作成するplugin-manifest.xmlを検証してください。通常、収集プラグインのタイプでは、trailInfoセクションおよび他のセクションを変更する必要があります。収集プラグイン・タイプに固有の詳細は、付録C「サンプル・コード」を参照してください。

例B-1 plugin-manifest.xsdファイルのサンプル

<?xml version="1.0" encoding="utf-8"?>
<!-- This schema defines the structure of the Oracle Audit Vault Plugin -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://xmlns.oracle.com/av/plugin"
targetNamespace="http://xmlns.oracle.com/av/plugin"
elementFormDefault="qualified">
<xs:element name="plugin">
<xs:complexType>
<xs:sequence>
<xs:element name="targetVersion">
<xs:complexType>
<xs:attribute name="min" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="extensionSet">
<xs:complexType>
<xs:sequence>
<xs:element name="extensionPoint">
<xs:complexType>
<xs:sequence>
<xs:element name="fileList">
<xs:complexType>
<xs:sequence>
<xs:element name="jars" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0"
maxOccurs="0" maxOccurs="unbounded"
name="include">
<xs:complexType>
<xs:attribute name="file" type="xs:string"
use="required" />
<xs:attribute name="permission" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="templates" minOccurs="0"
maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="include">
<xs:complexType>
<xs:attribute name="file" type="xs:string"
use="required" />
<xs:attribute name="permission" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="bin" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="include">
<xs:complexType>
<xs:attribute name="file" type="xs:string"
use="required" />
<xs:attribute name="permission" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="config" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="include">
<xs:complexType>
<xs:attribute name="file" type="xs:string"
use="required" />
<xs:attribute name="permission" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="shell" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="include">
<xs:complexType>
<xs:attribute name="file" type="xs:string"
use="required" />
<xs:attribute name="permission" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="patch" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="include">
<xs:complexType>
<xs:attribute name="file" type="xs:string"
use="required" />
<xs:attribute name="permission" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="unresolved-external" minOccurs="0"
maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="include">
<xs:complexType>
<xs:attribute name="file" type="xs:string"
use="required" />
<xs:attribute name="permission" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="securedTargetTypeInfo">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="required" />
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="trailInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="trailType" type="xs:string" />
<xs:element minOccurs="0" name="trailLocation"
type="xs:string" />
<xs:element maxOccurs="unbounded" name="className">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="required" />
<xs:attribute name="srcVersion" type="xs:decimal"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="eventPatch">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="required" />
<xs:attribute name="order" type="xs:unsignedByte"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="type" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="version" type="xs:string" use="required" />
<xs:attribute name="provider-name" type="xs:string" use="required" />
<xs:attribute name="copyright" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:schema>

関連項目:
「plugin-manifest.xmlファイルのステージング」

B.2 データベース表の収集プラグインのマッパー・ファイル

例B-2 データベース表の収集プラグインのマッパー・スキーマ

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--Existing Set of Core Fields-->
<xsd:simpleType name="CoreFieldValues">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="EventTimeUTC"/>
<xsd:enumeration value="UserName"/>
<xsd:enumeration value="OSUserName"/>
<xsd:enumeration value="CommandClass"/>
<xsd:enumeration value="TargetObject"/>
<xsd:enumeration value="ClientHostName"/>
<xsd:enumeration value="ClientIP"/>
<xsd:enumeration value="TargetOwner"/>
<xsd:enumeration value="ErrorId"/>
<xsd:enumeration value="ErrorMessage"/>
<xsd:enumeration value="EventStatus"/>
<xsd:enumeration value="EventName"/>
<xsd:enumeration value="TargetType"/>
</xsd:restriction>
</xsd:simpleType>

<!--Existing Set of Large Fields-->
<xsd:simpleType name="LargeFieldValues">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="CommandText"/>
<xsd:enumeration value="CommandParam"/>
</xsd:restriction>
</xsd:simpleType>

<!-- XML Document Structure-->
<xsd:element name="AVTableCollectorTemplate" >
<xsd:complexType>
<xsd:all>
<!-- Audit table name -->
<xsd:element name="TableName" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<!-- Database connection information -->
<xsd:element name="ConnectionInfo" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<!-- Datasource class-->
<xsd:element name="Driver" type="xsd:string"  minOccurs="1"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Source to AV server fields Mapping for Core, Large, Extension fields
and Marker-->
<xsd:element name="FieldMappingInfo" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:all>
<!-- Core Field Mapping -->
<xsd:element name="CoreFields" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Map" minOccurs="1" maxOccurs ="13">
<xsd:complexType>
<xsd:all>
<xsd:element name="Name" type="xsd:string" />
<xsd:element name="MapTo" type="CoreFieldValues" />
<xsd:element name="Transformation" minOccurs="0"
maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ValueTransformation"
minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="from" type="xsd:string"
use="required"/>
<xsd:attribute name="to" type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Large Field Mapping -->
<xsd:element name="LargeFields" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Map" minOccurs="0" maxOccurs="2">
<xsd:complexType>
<xsd:all>
<xsd:element name="Name" type="xsd:string" />
<xsd:element name="MapTo" type="LargeFieldValues" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- List of fields to be mapped to extension fields-->
<xsd:element name="ExtensionField" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" minOccurs="0"
maxOccurs ="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- List of fields which uniquely identify each audit record-->
<xsd:element name="MarkerField" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"  minOccurs="1"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:all>
<!-- Source Type-->
<xsd:attribute name="securedTargetType" type="xsd:string" use="required"/>
<!-- Max source version supported by the template-->
<xsd:attribute name="maxSecuredTargetVersion" type="xsd:string" use="required"/>
<!-- Min source version supported by the template-->
<xsd:attribute name="minSecuredTargetVersion" type="xsd:string"/>
<!-- Template file version-->
<xsd:attribute name="version" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>

B.3 XMLファイルの収集プラグインのマッパー・ファイルのスキーマ

例B-3 XMLファイルの収集プラグインのマッパー・スキーマ

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--Existing Set of Core Fields-->
<xsd:simpleType name="CoreFieldValues">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="EventTimeUTC"/>
<xsd:enumeration value="UserName"/>
<xsd:enumeration value="OSUserName"/>
<xsd:enumeration value="CommandClass"/>
<xsd:enumeration value="TargetObject"/>
<xsd:enumeration value="ClientHostName"/>
<xsd:enumeration value="ClientIP"/>
<xsd:enumeration value="TargetOwner"/>
<xsd:enumeration value="ErrorId"/>
<xsd:enumeration value="ErrorMessage"/>
<xsd:enumeration value="EventStatus"/>
<xsd:enumeration value="EventName"/>
<xsd:enumeration value="TargetType"/>
</xsd:restriction>
</xsd:simpleType>

<!--Existing Set of Large Fields-->
<xsd:simpleType name="LargeFieldValues">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="CommandText"/>
<xsd:enumeration value="CommandParam"/>
</xsd:restriction>
</xsd:simpleType>
<!-- XML Document Structure-->
<xsd:element name="AVXMLCollectorTemplate" >
<xsd:complexType>
<xsd:all>
<xsd:element name="HeaderInfo"  minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:all>
<!-- StartTag tag contains Root element of XML Audit data file-->
<xsd:element name="StartTag" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:element name="RecordInfo"  minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:all>
<!-- start tag of xml audit record in XML audit file-->
<xsd:element name="StartTag" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
<!-- Source to AV server fields Mapping for Core, Large, Extension fields
and Marker-->
<xsd:element name="FieldMappingInfo" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:all>
<!-- Core Field Mapping-->
<xsd:element name="CoreFields" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Map" minOccurs="1" maxOccurs ="13">
<xsd:complexType>
<xsd:all>
<xsd:element name="Name" type="xsd:string" />
<xsd:element name="MapTo" type="CoreFieldValues" />
<xsd:element name="TimestampPattern" type="xsd:string"
minOccurs="0" maxOccurs="1" />
<xsd:element name="Transformation" minOccurs="0"
maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ValueTransformation"
minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="from" type="xsd:string"
use="required"/>
<xsd:attribute name="to" type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Large Field Mapping -->
<xsd:element name="LargeFields" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Map" minOccurs="0" maxOccurs="2">
<xsd:complexType>
<xsd:all>
<xsd:element name="Name" type="xsd:string" />
<xsd:element name="MapTo" type="LargeFieldValues" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- List of fields to be mapped to extension fields-->
<xsd:element name="ExtensionField" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" minOccurs="0"
maxOccurs ="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- List of fields which uniquely identify each audit record-->
<xsd:element name="MarkerField" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"  minOccurs="1"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:all>
<!-- Source Type-->
<xsd:attribute name="securedTargetType" type="xsd:string" use="required"/>
<!-- Max source version supported by the template-->
<xsd:attribute name="maxSecuredTargetVersion" type="xsd:string" use="required"/>
<!-- Min source version supported by the template-->
<xsd:attribute name="minSecuredTargetVersion" type="xsd:string"/>
<!-- Template file version-->
<xsd:attribute name="version" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>

C サンプル・コード

この付録には、異なるタイプの収集プラグインの例が含まれています。

- データベース表の収集プラグインの例

- XMLファイルの収集プラグインの例

C.1 データベース表の収集プラグインの例

この項の項目は次のとおりです。

- データベース表の収集プラグインのマッパー・ファイル

- データベース表の収集プラグインのマニフェスト・ファイル

C.1.1 データベース表の収集プラグインのマッパー・ファイル

次の属性およびフィールドは必須です。

- securedTargetType

- maxSecuredTargetVersion

- version

- TableName

- Driver

- EventTimeUTC

- CommandClass変換

- EventStatus変換

- MarkerField

次のAudit Vault Serverフィールドにマップするソース名は必須ではありませんが、情報が指定されずにデータ収集が開始されると、すべての監査レコードが無効とみなされます。

- UserName

- CommandClass

関連項目:
フィールドおよびイベントのリストは、付録A「Audit Vault Serverフィールド」を参照してください。

例C-1 データベース表の収集プラグインのXMLマッパー・ファイルのサンプル

<AVTableCollectorTemplate securedTargetType="DBSOURCE" minSecuredTargetVersion="10.2.0"
maxSecuredTargetVersion="11.0" version="1.0" >
<!--Example Template for a database Collector-->
<!-- Attributes: securedTargetType, maxSecuredTargetVersion,
and version are mandatory;
minSecuredTargetVersion attribute is optional -->
<!-- Accepted Format for min/maxSecuredTargetVersion and
version attribute value is numbers separated by
dots (For example: 12.2,10.3.2, 11.2.3.0 etc..)-->
<!-- Audit Table Information  -->
<!-- Name of Audit Table: Mandatory information -->
<TableName>dummy_auditTable</TableName>
<!-- Source Connection Information -->
<ConnectionInfo>
<!--Datasource class name for current secured target type:
Mandatory information -->
</ConnectionInfo>
<!-- This Gives Mapping Information of Source Fields to various AV
Fields(core and large fields)  -->
<!-- There should be no many-to-one mappings from source fields to
AV Server fields -->
<FieldMappingInfo>
<!-- Mapping of Source Fields to Core Fields of AV server  -->
<!-- Source fields specified in core field mappings must be of SQL
Datatype: String OR convertible to String-->
<CoreFields>
<Map>
<!-- Mandatory: EventTime mapping information -->
<Name>EVENT_TIME</Name>
<MapTo>EventTimeUTC</MapTo>
</Map>
<Map>
<!-- If UserName core field mapping is not provided, Audit Data
Collection still starts successfully, but every audit record
will be treated as invalid -->
<Name>USER_ID</Name>
<MapTo>UserName</MapTo>
</Map>
<Map>
<Name>OS_USER_ID</Name>
<MapTo>OSUserName</MapTo>
</Map>
<Map>

<!-- If source name, the ACTION field, for CommandClass core field
mapping is not  provided, Audit Data Collection still starts
successfully, but all audit records are treated as invalid -->

<Name>ACTION</Name>
<MapTo>CommandClass</MapTo>

<!-- Mandatory: value transformation from secured target field value
to command class field value. Value of "to" Attribute is from AV
Event set  -->

<Transformation>
<ValueTransformation from="1" to="CREATE"/>
<ValueTransformation from="2" to="INSERT"/>
<ValueTransformation from="3" to="SELECT"/>
<ValueTransformation from="4" to="CREATE"/>
<ValueTransformation from="15" to="READ"/>
<ValueTransformation from="30" to="LOGON"/>
<ValueTransformation from="34" to="LOGOFF"/>
<ValueTransformation from="35" to="ACQUIRE"/>
</Transformation>
</Map>
<Map>
<Name> OBJ_NAME</Name>
<MapTo>TargetObject</MapTo>
</Map>
<Map>
<Name>USER_HOST</Name>
<MapTo>ClientHostName</MapTo>
</Map>
<Map>
<Name>OBJ_CREATOR</Name>
<MapTo>TargetOwner</MapTo>
</Map>
<Map>
<Name>STATUS</Name>
<MapTo>EventStatus</MapTo>

<!-- Value transformation for "STATUS" source field value.
Mandatory: EventStatus value transformation.
There are three possible values for EventStatus:
SUCCESS, FAILURE, UNKNOWN -->
<Transformation>
<ValueTransformation from="0" to="FAILURE"/>
<ValueTransformation from="1" to="SUCCESS"/>
<ValueTransformation from="2" to="UNKNOWN"/>
</Transformation>
</Map>
</CoreFields>

<!-- Mapping of Source Fields to Large Fields of AV server i.e fields
with huge content  -->
<!-- Secured target fields specified in large field mappings must be
of SQL Datatype:CLOB OR SQL Datatype:String OR convertible to
String -->
<LargeFields>
<Map>
<Name>SQL_TEXT</Name>
<MapTo>CommandText</MapTo>
</Map>
<Map>
<Name>COMMAND_PARAMETER</Name>
<MapTo>CommandParam</MapTo>
</Map>
</LargeFields>

<!-- These secured target fields are collected in a single extension
field, all name-value pairs separated by standard delimiter -->
<!-- Secured target fields specified in extension field mapping must
be of SQL Datatype:String OR convertible to String -->
<ExtensionField>
<Name>DB_ID</Name>
<Name>INSTANCE</Name>
<Name>PROCESS</Name>
<Name>TERMINAL</Name>
</ExtensionField>

<!-- Mandatory: Secured target fields for MarkerField -->
A group of secured target fields to uniquely identify each Audit
Record -->
<!-- Secured target fields specified to be used as MarkerField mapping
must be of SQL Datatype:String OR convertible to String -->
<MarkerField>
<Name>SESSION_ID</Name>
<Name>ENTRY_ID</Name>
</MarkerField>
</FieldMappingInfo>
</AVTableCollectorTemplate>

C.1.2 データベース表の収集プラグインのマニフェスト・ファイル

これは、データベース表の収集プラグインのマニフェスト・ファイルのサンプルです。

例C-2 データベース表の収集プラグインのマニフェスト・ファイルのサンプル

<?xml version="1.0"?>

<plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/av/plugin plugin-manifest.xsd"
xmlns="http://xmlns.oracle.com/av/plugin"
name="HRMS-Template"
id="com.oracle.av.plugin"
version="1.0"
provider-name="Oracle Corp."
copyright="Copyright Oracle Corp. 2011">

<!-- targetVersion: Version of Oracle Audit Vault supported by this
plugin. This is represented by the "min"  attribute of
<targetVersion> tag      -->
<targetVersion min="11.1.0.0.0"/>

<extensionSet>
<extensionPoint type= "securedTargetType">
<!-- Tag: fileList: Lists all files that ship with the plugin   -->
<fileList>
<jars></jars>
<templates>
<include file="DBSource-Mapper.xml"/>
</templates>
<bin></bin>
<config></config>
<shell></shell>
<patch></patch>
<unresolved-external>
</unresolved-external>
</fileList>
<!-- Tag:  securedTargetTypeInfo: Contains secured target type and
trail information  -->
<securedTargetTypeInfo name="DBSOOURCE"/>

<!-- Tag:  trailType: contains trail type, location , classname for
source type testSource -->
<trailInfo>
<trailType>TABLE</trailType>
<className name="oracle.av.platform.agent.
collfwk.Collector. table.DatabaseTableCollector"/>
</trailInfo>

<!-- eventPatch: OPTIONAL field that indicates any event patches
that need to be applied as part of plugin deployment
The files listed here must be present in the <patch>
tag entries. The order in which the patches need to
applied can be controlled via the "order" attribute
Patches with lower "order" value will be applied
first             -->
<eventPatch name="p6753288_11.1.2.0.0_GENERIC.zip" order="2"/>
</extensionPoint>
</extensionSet>
</plugin>

C.2 XMLファイルの収集プラグインの例

この項の項目は次のとおりです。

- XMLファイルの収集プラグインのマッパー・ファイル

- XMLファイルの収集プラグインのマニフェスト・ファイル

C.2.1 XMLファイルの収集プラグインのマッパー・ファイル

次の属性およびフィールドは必須です。

- securedTargetType

- maxSecuredTargetVersion

- version

- HeaderInfo

- RecordInfo

- EventTimeUTC

- CommandClass変換

- EventStatus変換

- MarkerField

次のAudit Vault Serverフィールドにマップするソース名は必須ではありませんが、情報が指定されずにデータ収集が開始されると、すべての監査レコードが無効とみなされます。

- UserName

- CommandClass

関連項目:
フィールドおよびイベントのリストは、付録A「Audit Vault Serverフィールド」を参照してください。

例C-3 XMLファイルの収集プラグインのマッパー・ファイルのサンプル

<AVXMLCollectorTemplate securedTargetType="XMLSOURCE"
maxSecuredTargetVersion="11.0"
version="1.0">
<!--Example Template for XML template collector-->
<!-- Attributes: "securedTargetType", "maxSecuredTargetVersion" and
"version" are mandatory attributes, "minSecuredTargetVersion"
attribute is optional -->
<!-- Accepted Format for min/maxSecuredTargetVersion and version
attribute value is numbers separated by dots (For example:
12.2,10.3.2, 11.2.3.0 etc..)-->
<!-- Header Information like XML Header start tag  -->
<HeaderInfo>
<!-- Mandatory: HeaderInfo-->
<!-- Value in this tag gives Root tag of the XML audit file-->
<StartTag>Audit</StartTag>
</HeaderInfo>

<!-- Record Information like Record Start tag and conformation to hold
original record  -->
<RecordInfo>
<!-- Mandatory: RecordInfo -->
<!-- Provides starting tag of audit record in XML audit file -->
<StartTag>AuditRecord</StartTag>
</RecordInfo>

<!-- Gives Mapping Information of Source Fields to various  AV Fields
(core and large fields)  -->
<!-- Not Allowed: many-to-one mapping from source field to
AV Server fields -->
<FieldMappingInfo>
<!-- Mapping of Source Fields to Core Fields of AV server
Source fields specified in core field mappings must be of SQL
Datatype: String OR convertible to String -->
<CoreFields>
<Map>
<Name>EVENT_TIME</Name>
<MapTo>EventTimeUTC</MapTo>
<TimestampPattern>yyyy-MM-dd HH:mm:ss.SSS</TimestampPattern>
</Map>
<Map>
<!-- If UserName core field mapping is not provided, Audit Data
Collection still starts successfully, but every audit record
will be treated as invalid -->
<Name>USER_ID</Name>
<MapTo>UserName</MapTo>
</Map>
<Map>
<Name>OS_USER_ID</Name>
<MapTo>OSUserName</MapTo>
</Map>
<Map>
<!-- If source name, the ACTION field, for CommandClass core field
mapping is not provided, Audit Data Collection still starts
successfully, but all audit records are treated as invalid -->
<Name>ACTION</Name>
<MapTo>CommandClass</MapTo>
<!-- Mandatory: value transformations from source to Action
field value. Value of "to" Attribute is from AV Event set  -->
<Transformation>
<ValueTransformation from="1" to="CREATE"/>
<ValueTransformation from="2" to="INSERT"/>
<ValueTransformation from="3" to="SELECT"/>
<ValueTransformation from="4" to="CREATE"/>
<ValueTransformation from="15" to="READ"/>
<ValueTransformation from="30" to="LOGON"/>
<ValueTransformation from="34" to="LOGOFF"/>
<ValueTransformation from="35" to="ACQUIRE"/>
</Transformation>
</Map>
<Map>
<Name> OBJ_NAME</Name>
<MapTo>TargetObject</MapTo>
</Map>
<Map>
<Name>USER_HOST</Name>
<MapTo>ClientHostName</MapTo>
</Map>
<Map>
<Name>OBJ_CREATOR</Name>
<MapTo>TargetOwner</MapTo>
</Map>
<Map>
<Name>STATUS</Name>
<MapTo>EventStatus</MapTo>
<!-- Specifying value transformation for Status source field value.
Mandatory: EventStatus value transformation.
There are three possible values for EventStatus:
SUCCESS, FAILURE, UNKNOWN -->
<Transformation>
<ValueTransformation from="0" to="FAILURE"/>
<ValueTransformation from="1" to="SUCCESS"/>
<ValueTransformation from="2" to="UNKNOWN"/>
</Transformation>
</Map>
</CoreFields>

<!-- Mapping of Source Fields to Large Fields of AV server i.e fields
with huge content  -->
<!-- Source fields specified in large field mappings must be of SQL
Datatype:CLOB OR SQL Datatype:String OR convertible to String -->
<LargeFields>
<Map>
<Name>SQL_TEXT</Name>
<MapTo>CommandText</MapTo>
</Map>
<Map>
<Name>COMMAND_PARAMETER</Name>
<MapTo>CommandParam</MapTo>
</Map>
</LargeFields>

<!-- These Source fields will be collected in a single extension
field, all name-value pairs are separated by standard delimiter -->
<!-- Source fields specified in extension field mapping must be of
SQL Datatype:String OR convertible to String -->
<ExtensionField>
<Name>DB_ID</Name>
<Name>INSTANCE</Name>
<Name>PROCESS</Name>
<Name>TERMINAL</Name>
</ExtensionField>

<!-- This is group of source fields for uniquely identifying each
Audit Record Marker -->
<!-- Source fields specified to be used as Marker field mapping must
be of SQL Datatype:String OR convertible to String -->
<!-- Mandatory: Source fields for MarkerField -->
<MarkerField>

<Name>SESSION_ID</Name>
<Name>ENTRY_ID</Name>
</MarkerField>
</FieldMappingInfo>
</AVXMLCollectorTemplate>

C.2.2 XMLファイルの収集プラグインのマニフェスト・ファイル

これは、XMLファイルの収集プラグインのマニフェスト・ファイルのサンプルです。

例C-4 XMLファイルの収集プラグインのマニフェスト・ファイルのサンプル

<?xml version="1.0"?>

<plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/av/plugin plugin-manifest.xsd"
xmlns="http://xmlns.oracle.com/av/plugin"
name="Oracle-XML-Template"
id="com.oracle.av.plugin"
version="1.0"
provider-name="Oracle Corp."
copyright="Copyright Oracle Corp. 2011">

<!-- targetVersion: Version of Oracle Audit Vault supported by
this plugin. This is represented by the "min" attribute of
targetVersion> tag                 -->
<targetVersion min="11.1.0.0.0"/>

<extensionSet>
<extensionPoint type= "securedTargetType">
<!-- fileList: Lists *all* the files that ship with the plugin  -->
<fileList>
<jars></jars>
<templates>
<include file="XMLSource-Mapper.xml"/>
</templates>
<bin></bin>
<config></config>
<shell></shell>
<patch></patch>
<unresolved-external></unresolved-external>

</fileList>

<!-- securedTargetTypeInfo: Contains source type and trail information
-->
<securedTargetTypeInfo name="oracle"/>

<!-- trailType: contains trail type, location , classname for
source type testSource -->
<trailInfo>
<trailType>DIRECTORY</trailType>
<className name="oracle.av.platform.agent.collfwk.
Collector.xml.XMLFileCollector"/>
</trailInfo>

<!-- eventPatch: OPTIONAL field that indicates any event patches
that need to be applied as part of plugin deployment-->
The files listed here must be present in the <patch>-->
tag entries. The order in which the patches need to -->
applied can be controlled via the "order" attribute -->
Patches with lower "order" value will be applied    -->
first                                               -->
<eventPatch name="p6753288_11.1.2.0.0_GENERIC.zip" order="2"/>
</extensionPoint>
</extensionSet>
</plugin>

用語集

収集プラグイン

監査証跡収集機能をOracle Audit Vault and Database Firewallに追加するプラグイン。マッパー・ファイルから監査レコード・セマンティクスを取得し、監査表またはXML監査ファイルから監査レコードを読み取ります。

監査レコード

データベース・イベントを表すレコード。

監査レコードのフィールド

監査レコードのコンポーネント。各監査レコード・フィールドは、レコードが表すイベントの属性を表します。レコードが表にある場合、フィールドは列です。

監査証跡

セキュア・ターゲットの監査レコードの場所。次に例を示します。

- セキュア・ターゲットが監査レコードをファイル(監査ファイルと呼ばれる)に書き込む場合、ディレクトリ・パスとファイル・マスクが監査証跡です。

- ソースが監査レコードをデータベース表(監査表と呼ばれる)に書き込む場合、表の名前が監査証跡です。

- ソースが一部の監査レコードをディレクトリx、データベース表yおよびディレクトリzに書き込む場合、ソースは、3つの異なる監査証跡(ディレクトリxとファイル・マスク、表yおよびディレクトリzとファイル・マスク)を持ちます。

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

Audit Vault Serverリポジトリに格納された後にセキュア・ターゲットから監査レコードを削除するプロセス。収集プラグインは、ソースまたはソースのレコードを削除する権限を持つユーティリティへのチェックポイントを提供し、ソースまたはユーティリティは元のレコードを削除します。

Audit Vault Serverフィールド

セキュア・ターゲットの監査レコード・フィールドに対して、Oracle Audit Vault and Database Firewallの監査レコード・フィールド(「収集プラグイン」を参照してください)。Audit Vault Serverフィールドは、コア・フィールド、拡張フィールドまたはラージ・フィールドのいずれかです。

チェックポイント

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

コマンド・テキスト・フィールド

イベントを発生したコマンドのテキストを含むラージ・フィールド。

コマンド・パラメータ・フィールド

イベントを発生したコマンドのパラメータを含むラージ・フィールド。

コア・フィールド

ほぼすべてのソースで生成される監査レコードの対応するフィールドを含むAudit Vault Serverフィールド。つまり、ほぼすべての収集プラグインは、ソース監査レコード・フィールドを各コア・フィールドにマップします。Oracle Audit Vault and Database Firewallは、フィルタ処理およびレポートにコア・フィールドを使用します。コア・フィールドは、「コア・フィールド」で説明しています。

拡張フィールド

コア・フィールドではないがOracle Audit Vault Serverに格納する必要があるAudit Vault Serverフィールド。

ラージ・フィールド

データ型CLOBのAudit Vault Serverフィールド(『Oracle Database SQL言語リファレンス』を参照)。ラージ・フィールドは、元のコンテンツ・フィールド、コマンド・テキスト・フィールドまたはコマンド・パラメータ・フィールドのいずれかです。

マッパー・ファイル

特定のセキュア・ターゲットが監査表またはXML監査ファイルに書き込む監査レコードを説明するXMLファイル。マッパー・ファイルは、ソースから収集する監査レコード・フィールド、そのAudit Vault Serverフィールドへのマップ方法およびリカバリに使用するフィールドを指定します。マッパー・ファイルでは、セキュア・ターゲット・タイプ、マッパー・ファイルがサポートするソース・タイプの最大バージョンおよびマッパー・ファイル・バージョンを常に指定します。マッパー・ファイルでは、サポートされるソース・タイプの最小バージョンおよびチェックポイントを計算する増分フィールドも指定できます。増分フィールドのデフォルトは、イベント時間フィールドです。

マーカー・フィールド

監査証跡内のレコードを一意に識別する監査レコード・フィールド。収集プラグインは、マーカー・フィールドを使用して、リカバリ中の重複するレコードの収集を回避します。

元のコンテンツ・フィールド

セキュア・ターゲットから元の監査レコードを含むラージ・フィールド。

プラグイン

機能を別のアプリケーションに追加するアプリケーション(通常、独立して実行できません)。

リカバリ

停止および再起動した収集プラグインがチェックポイントに達しようとしているデータ収集のフェーズ。チェックポイントの直後に収集を再開すると、コレクタが任意のレコードを確実に検出します。リカバリ中に重複するレコードの収集を回避するため、コレクタは各レコードのマーカー・フィールドを確認します。

セキュア・ターゲット

セキュア・ターゲットは、Audit Vault AgentまたはDatabase Firewallあるいは両方を使用して保護するサポートされているデータベースまたはデータベース以外の製品です。

セキュア・ターゲット・タイプ

監査ソースのカテゴリ。たとえば、Oracle Databaseは、セキュア・ターゲット・タイプで、同じフィールドを使用して監査レコードを生成するOracle Databaseインスタンスのコレクションです。セキュア・ターゲット・タイプは、意味的に同じ監査レコード(つまり、同じフィールドを持つ監査レコード)を生成します。

索引

A  C  D  E  F  G  M  O  P  R  S  T  U  W  X

A

監査収集プラグインについて, 3.1

XMLマッパー・ファイルについて, 3.2

エージェント

再デプロイ, 5.4

ATCIntervalTime, 3.5 監査収集プラグイン, 1.2

パッケージ化, 4

開発環境の設定, 2

監査収集プラグイン

タイプ, 1.2.1

監査収集プラグイン

使用する対象の判断, 1.2.1.1

監査収集プラグイン, 3.1 監査収集プラグイン

書込み, 1.5

監査レコード, 1.3

格納,1.3.3

監査証跡, 1.1.1

クリーンアップ, 1.4.3.6

Audit Vault Agent

動作, 1.1.1

Audit Vault Server

動作, 1.1.1

Audit Vault Serverイベント

概要, 1.3

Audit Vault Serverフィールド

概要, 1.3

avcliコマンド , 5.2 AVCLIコマンド, 3.5 avpackツール

使用方法, 4.5

C

チェックポイント

証跡, 1.4.3.4

クリーンアップ

監査証跡, 1.4.3.6

収集の概念, 1.4.3 収集プラグイン

アップグレード(新しいバージョンの作成), 4.3

収集プラグインのディレクトリ構造, 2.3 収集プラグイン

概要, 1.2

収集プロセス

プロセス全体の概要, 1.4

収集スレッド, 1.4.3.1 データベース表のマッパー・ファイルの作成, 3.3.3 XMLファイルの監査収集のマッパー・ファイルの作成, 3.4.3

D

データ収集

リカバリ・フェーズ, 1.4.3.5

データベース表の収集プラグイン, 3.3

要件, 3.3.1

データベース表のマッパー・ファイル

作成, 3.3.3

プラグインのデプロイ・コマンド, 4.3 開発環境, 2.3

ディレクトリ構造, 2.3.1

収集プラグイン, 2.3.2

plugin-manifest.xmlファイルのステージング, 2.3.3 要件, 2.1 設定, 2.2 ディレクトリ構造, 2.3.2

収集プラグイン, 2.3

収集プラグイン, 2.3

概要, 2.3.1

E

データベース表の収集プラグインの監査証跡の例, 3.3.2

xmlファイルの収集プラグインの監査証跡の例, 3.4.2

外部依存要素, 4.2

F

制御のフロー

収集プラグインの内部, 1.4.2

G

一般的な手順

収集プラグインの書込み, 1.5

M

マッピング

セキュア・ターゲットからAudit Vault Server, 1.4.3.3

My Oracle Support

概要, はじめに

O

Oracle Audit Vault and Database Firewall

説明, 1.1, 1.1

Oracle MetaLink

「My Oracle Support」を参照

P

パッケージ化, 4

プラグインID, 4.4

plugin-manifest.xmlファイル

概要, 2.3.3

説明, 4.4

ステージング, 2.3.3, 2.3.3

プラグイン

エージェントの再デプロイ, 5.4

テストの要件, 5.1

テスト手順, 5.2

監査データの前処理, 3.6

R

リカバリ・フェーズ

データ収集, 1.4.3.5

データベース表の収集プラグインの要件, 3.3.1 xmlファイルの収集プラグインの要件, 3.4.1

S

セキュア・ターゲット, 1.1.1

セキュア・ターゲットの収集属性, 3.5

セキュア・ターゲット・タイプ, 1.1.1

securedTargetVersion(必須), 3.5

開発環境の設定, 2

ステージング

plugin-manifest.xmlファイル, 2.3.3

監査レコードの格納, 1.3.3

T

TimeZoneoffset(必須), 3.5

証跡

チェックポイント, 1.4.3.4

U

プラグインのアンデプロイ・コマンド, 4.3

unresolved-externalタグ, 4.2

アップグレード

収集プラグイン, 4.3

W

収集プラグインの概要, 1.2

収集プラグインの書込み

一般的な手順, 1.5

X

xmlファイルの監査収集のマッパー・ファイル

作成, 3.4.3

xmlファイルの収集プラグイン

監査証跡の例, 3.4.2

xmlファイルの収集プラグイン

要件, 3.4.1

XMLファイルの収集プラグイン, 3.4 XMLマッパー・ファイル, 3.1

概要, 3.2

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.