2 開発環境の設定

Oracle Audit Vault Server開発環境を設定するプロセスについて学習します。

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

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

開発者環境を設定する前に、次のタスクを完了する必要があります。

  • Obtain and install Oracle AVDF 20の取得とインストール: 収集プラグインの実行をテストし、ターゲットから正しい監査レコードを取得してサーバーで使用可能かどうかを判断するには、このバージョンが必要です。また、早期にエンドツーエンドの統合テストを実行すると、接続性の問題およびコードの他の不具合を排除できます。

  • 使用する収集プラグインのタイプの決定。

関連項目:

Oracle Audit Vault and Database Firewallのインストールの詳細は、Oracle Audit Vault and Database Firewallインストレーション・ガイドを参照してください。

2.2 開発環境の設定

開発環境を設定するには、最初にOracle Audit Vault and Database Firewall SDKをダウンロードしてから、オペレーティング・システム環境を設定する必要があります。

収集プラグインを開発するための環境を設定するには、次のステップに従ってSDKをダウンロードし、オペレーティング・システムのフォルダ、環境変数およびパスを構成する必要があります。

SDKをダウンロードするには、次のことを実行します。

  1. Audit Vault Serverコンソールに管理者としてログインします。

  2. 「設定」タブをクリックします。

  3. 左側のナビゲーション・メニューの「システム」タブをクリックします。

  4. メイン・ページの「モニタリング」セクションで、「プラグイン」リンクをクリックします。

  5. 「プラグイン」ダイアログで、「SDKのダウンロード」をクリックします。

  6. 空のディレクトリにSDKを解凍します。

  1. AV_SDK_HOME変数にSDKの抽出先のディレクトリを設定します。

    次に例を示します。

    $ export AV_SDK_HOME=/home/username/avsdk

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

    次に例を示します。

    $ export PATH=$AV_SDK_HOME/bin:$PATH

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

  3. 収集プラグイン・プロジェクトの$AV_AGENT_HOME/av/jlib/agentre.jarを含めるようにCLASSPATH環境変数を設定します。

    次に例を示します。

    $ export CLASSPATH=$AV_SDK_HOME/av/jlib/av.jar:$AV_SDK_HOME/av/jlib/av-common.jar:$AV_AGENT_HOME/av/jlib/agentre.jar

  4. 必要に応じてディレクトリを作成します。
  5. Javaを使用している場合、適切なJDKがポイントされるように環境が設定されていることを確認してください(PATHおよびJAVA_HOME変数)。

    JDKでクラスをコンパイルするには、javacコンパイラの-targetオプションを同じバージョンに設定します。詳細は、JDKのドキュメントを参照してください。

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

Oracle Audit Vaultの収集プラグインのディレクトリ構造、開発環境、およびプラグインのmanifest.xmlファイルのステージング方法について学習します。

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

独自の収集プラグインを作成するには、Oracle Audit Vault収集の一般的なディレクトリ構造を確認します。

次の図は、一般的なディレクトリ構造を示しています。

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


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

一般的なディレクトリ構造コンポーネントの説明

一般的なディレクトリ構造の例では、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ディレクトリに配置します。収集プラグインのデプロイ中にサーバーに自動的に適用されます。

  • templates: このディレクトリには、ソース・フィールドからOracle AVDFフィールドへのフィールド・マッピングを含むマッパー・ファイルが含まれています。

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

Oracle Audit Vault and Database Firewallの収集プラグインのステージング・ディレクトリの構造について学習します。

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

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

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

2.3.3 Javaベースの収集プラグインのディレクトリ構造

Oracle Audit Vault and Database FirewallのJavaベースの収集プラグインの構造は、一般的なディレクトリ構造とよく似ています。

次の例は、Javaベースの収集プラグインのステージ・ディレクトリの構造を示しています。

例2-3 Javaベースの収集プラグインのディレクトリ構造

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

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

STAGE_DIR_ROOTディレクトリの直下のplugin-manifest.xmlファイルを次のようにステージングする必要があります。

Oracle Audit Vault and Database Firewallのplugin-manifest.xmlファイルは、収集プラグインを説明して属性を定義するコアXMLファイルです。plugin-manifest.xmlファイルを配置する場所は、サーバーが稼働しているオペレーティング・システムによって異なります。

plugin-manifest.xmlファイルをステージングする場所

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

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

関連項目:

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

マッパー・ファイルは、主に監査証跡から収集する必要があるターゲット・フィールド、およびこれらのターゲット・フィールドをOracle Audit Vault Serverフィールドにマップする方法の情報を含むXMLファイルです。

マッパー・ファイルはターゲット・タイプに固有であり、securedTargetTypesecuredTargetVersionなどのターゲット情報を含みます。

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

  • サポートされているターゲット名およびターゲット・バージョン。
  • ターゲット・フィールドからAudit Vault Serverフィールドへのマッピング情報。
  • 各監査レコードを一意に識別するマーカーを作成するターゲット・フィールド。
  • 監査証跡タイプがデータベース表である場合の監査表およびデータソース・クラス名。
  • 監査証跡タイプがXMLファイルである場合のイベント時間のタイムスタンプ形式。

収集プラグインの一部としてマッパー・ファイルをパッケージ化します。プラグインのパッケージ化プロセス時に、マッパー・ファイルをtemplatesフォルダに配置します。

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

plugin-manifest.xmlファイルは、収集プラグインを説明するコアXMLファイルです。

plugin-manifest.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は、収集プラグインによって拡張されるOracle Audit Vault and Database Firewall (Oracle AVDF)の領域を一意に識別します。現在、Oracle 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.1は、TABLEDIRECTORYTRANSACTIONLOGSYSLOGおよびEVENTLOGの証跡のタイプをサポートします。

        trailTypeには、任意の文字列を指定することもできます。その場合は、カスタム証跡タイプとして処理されます。

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

      • className: この証跡から監査データを取得するタスクを処理するJavaクラスを指定します。次を使用します。

        - データベース表の収集プラグインのoracle.av.platform.agent.collfwk.ezcollector.table.DatabaseTableCollector

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

        行ごとに完全に形成された1つのJSONを持つJSONファイルから読み取るJSONファイル収集プラグインの場合はoracle.av.platform.agent.collfwk.ezcollector.json.MultiJSONFileCollectorFactory

        ファイルごとに完全に形成された1つのJSONのみを持つJSONファイルから読み取る(この1つのJSONにJSONレコードの配列が含まれる) JSONファイル収集プラグインの場合はoracle.av.platform.agent.collfwk.ezcollector.json.JSONFileCollectorFactory

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

    • eventPatch: これは、収集プラグインのデプロイの一部として適用する必要があるイベント・パッチを含むオプション・フィールドです。これらのパッチは、eventPatch要素内で、ファイル名としてname属性と、パッチを適用する順序を示すorder属性を指定しています。

      追加するイベント属性は、Oracle Audit Vault and Database Firewallの開発で生成されるパッチを通じて拡張されます。パートナ開発者は、Oracle Audit Vaultイベント・ディクショナリに追加する特定のイベントおよび属性または両方をリクエストできます。リクエストは正当であるとコア開発チームが判断した場合、パッチを発行する可能性があります。プラグインのデプロイ中にアプリケーションの収集プラグインを使用して、これらのパッチをバンドルできます。