プライマリ・コンテンツに移動
Oracle® Audit Vault and Database Firewall開発者ガイド
リリース12.1.2
B71714-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 監査収集プラグイン

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

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

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ファイルです。マッパー・ファイルはセキュア・ターゲット・タイプに固有で、securedTargetTypesecuredTargetVersionなどのセキュア・ターゲット情報を含みます。

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

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

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

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

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

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

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


関連項目:


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

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

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

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

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

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

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

  • 監査表の列を様々なAudit Vaultコア・フィールドおよびラージ・フィールドにマップできます。

    また、単一または複数のフィールドを拡張およびマーカー・フィールドにマップできます。Audit Vaultコア・フィールド、拡張フィールドおよびマーカー・フィールドにマップされるフィールドは、Stringデータ型であるか、Stringに変換できる必要があります。CLOBなどのラージ・データ型は使用できません。CLOBデータ型を指定した列は、CommandTextCommandParamなどの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は、マッパー・ファイルの開始をマークする最上位要素です。securedTargetTypemaxSecuredTargetVersionおよびversion属性は必須です。minSecuredTargetVersion属性はオプションです。

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

  • 表名情報

    <TableName>AUD</TableName>  
    

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

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

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

    javax.sql.DataSourceインタフェースを実装するデータソース・クラスのフル・ネームを指定する必要があります。これは必須フィールドです。

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

    <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は、CommandTextCommandParamなどの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ファイルの収集プラグインのマッパー・ファイルのスキーマ」に準拠する必要があります。

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

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

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

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

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

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

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

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

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

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

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

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

  • XMLファイルでは、各監査レコードは、要素値のいずれかとしてタイムスタンプを持つ必要があります。

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

    このフィールドはマッパー・ファイルのEventTimeUTCコア・フィールドにマップする必要があります。イベント時間のマッピングがマッパー・ファイルに指定されていない場合は、収集プラグインがシャットダウンします。監査レコードのイベント時間のフィールド値がnullであることがわかった場合、収集プラグインは同じXML監査ファイルから最後に送信されたレコードの時間を取得します。

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

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

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

  • 次の例で説明するように、このディレクトリのXMLファイルは、エージェントと同じロケールおよびエンコーディングである必要があります。

    • 有効: ユーザーは中国語のロケール(env)のエージェントを持っています。XMLファイルも中国語のロケールで同じエンコーディング(たとえば、ZHS16GBK)で生成されています。この設定は有効です。

    • 無効: ユーザーはドイツ語のロケール(env)のエージェントを持っています。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は最上位要素です。securedTargetTypemaxSecuredTargetVersionおよびversion属性は必須です。minSecuredTargetVersion属性はオプションです。

    minSecuredTargetVersionmaxSecuredTargetVersionおよび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は、子要素CoreFieldsLargeFieldsExtensionFieldおよび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は必須です。

      TimestampPatternを指定する際には、Oracle Database固有のパターンではなく、Java SimpleDateFormatクラスでサポートされているパターンおよび文字を使用します。

      中国語などのマルチバイト文字の場合は、月など特定の文字をSimpleDateFormatの文字としてパターンに追加する必要があります。AMおよびPMインジケータはロケールに基づいて取得されますが、マッパー・ファイルに指定する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.4.4 非標準監査レコードに対するXML変換

非標準監査データ形式の監査レコードがある場合、つまり「XMLファイルの収集プラグインの監査証跡の例」に示す監査レコードの例と異なる場合は、XSLを使用してXML監査レコードにXML変換を適用できます。これを実行するには、監査データを元の形式からXMLファイル収集プラグインに現在指定されている形式に変換できるXSLファイルを指定します。このようにすれば、様々なXML監査データ形式をサポートするようにファイル収集プラグインを拡張できます。

3.4.4.1 XSLを使用するXML変換の追加要件

非標準監査レコードを現在の形式に変換するには、次のことが必要です。

変換プログラムは、増分の順序で監査ファイルに書き込む、つまり最大サイズに達するまで1つの監査ファイルに書き込んでから、別のファイルに移動する必要があります。そのため、1回にアクティブにできるのは1つのファイルのみになります。複数の不完全なXML監査ファイルが変換プログラムで検出されると、XMLファイル収集プラグインは停止します。

3.4.4.2 非標準監査レコードを変換するために必要な変更

非標準監査レコードを変換するためには、次の手順を実行する必要があります。

  1. 第3.4.3項「XMLファイルの監査収集のマッパー・ファイルの作成」に示すように、マッパー・ファイルの<RecordInfo>の後に次のようなセクションを追加し、変換に使用するXSLファイルの名前を指定し、変換するファイルをSourceFileStartTagに指定します。「非標準XML監査データ・レコードのサンプル」を参照してください。

    <XslTransformation>
        <XslFile>test_template.xsl</XslFile>
        <SourceFileStartTag>AUDIT</SourceFileStartTag>
    </XslTransformation>
    
  2. XSLファイルを指定して、プラグイン・ディレクトリのtemplatesフォルダに置きます。例は、「変換用のXSLファイル作成」を参照してください

  3. XSLファイル内からJavaの機能を呼び出すこともできます。これを実行するには、作成したjarファイルをプラグイン・ディレクトリのjarsフォルダに置きます。

3.4.4.3 非標準XML監査データ・レコードのサンプル

このセクションには、XMLファイル収集プラグインに必要な正しいXML形式に変換する必要があるXMLデータ・レコードのサンプルが含まれています。ご使用のソース・システムでは、異なる外観の監査レコードが作成される場合があります。

例3-2 Audit.xml: XML監査レコードのサンプル

<?xml version="1.0" encoding="UTF-8"?>
<AUDIT>
 
   <AUDIT_RECORD TIMESTAMP="2013-06-07T08:27:53" NAME="Audit" 
   SERVER_ID="0" VERSION="1" STARTUP_OPTIONS="C:/Program Files/MySQL/MySQL
   Server 5.6/bin\mysqld --defaults-file=C:\ProgramData\MySQL\MySQL Server
   5.6\my.ini" OS_VERSION="x86_64-Win64" MYSQL_VERSION=
   "5.6.11-enterprise-commercial-advanced"/>
 
   <AUDIT_RECORD TIMESTAMP="2013-06-07T08:30:46" NAME="Connect" CONNECTION_ID="1"
   STATUS="0" USER="root" PRIV_USER="root" OS_LOGIN="" PROXY_USER=""  
   HOST="localhost" IP="127.0.0.1" DB=""/>
 
   <AUDIT_RECORD TIMESTAMP="2013-06-07T08:31:21" NAME="Query" CONNECTION_ID="1"
   STATUS="0" SQLTEXT="CREATE USER 'admin'@'localhost' IDENTIFIED BY 
   'welcome_1'"/>
 
</AUDIT>

3.4.4.4 変換用のXSLファイルの作成

これは、変換ルールを定義するXSL変換ファイルの例です。システムで作成されるソース監査レコードを変換できるバージョンを作成して、プラグインのtemplatesフォルダに置く必要があります。

例3-3 test_template.xsl

<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output indent="yes" />
     <xsl:template match="/">
        <ROOT_DEST>
          <xsl:for-each select="AUDIT/AUDIT_RECORD">
            <Record_Dest>
                <USER><xsl:value-of select="@USER"/></USER>
                <PRIV_USER><xsl:value-of select="@PRIV_USER"/></PRIV_USER>
                <OS_LOGIN><xsl:value-of select="@OS_LOGIN"/></OS_LOGIN>
                <PROXY_USER><xsl:value-of select="@PROXY_USER"/></PROXY_USER>
                <HOST><xsl:value-of select="@HOST"/></HOST>
                <IP><xsl:value-of select="@IP"/></IP>
                <DB><xsl:value-of select="@DB"/></DB>
                <SQLTEXT><xsl:value-of select="@SQLTEXT"/></SQLTEXT>
                <CONNECTION_ID><xsl:value-of select= 
                      "@CONNECTION_ID"/></CONNECTION_ID>
                <STATUS><xsl:value-of select="@STATUS"/></STATUS>
                <TIMESTAMP><xsl:value-of select="@TIMESTAMP"/></TIMESTAMP>
                <NAME><xsl:value-of select="@NAME"/></NAME>
                <SERVER_ID><xsl:value-of select="@SERVER_ID"/></SERVER_ID>
                <VERSION><xsl:value-of select="@VERSION" /></VERSION>
   <STARTUP_OPTIONS><xsl:value-of select="@STARTUP_OPTIONS"/> </STARTUP_OPTIONS>
                <OS_VERSION><xsl:value-of select="@OS_VERSION"/></OS_VERSION>
                <MYSQL_VERSION><xsl:value-of select="@MYSQL_VERSION"/>
                    </MYSQL_VERSION>
            </Record_Dest>
          </xsl:for-each>
         </ROOT_DEST>
        </xsl:template>
  </xsl:stylesheet>
 

次のファイルは、ご使用のフォルダには存在しません。これは、例3-3のXSL変換ファイルを使用してAudit.xmlファイルを必要なXML形式に変換した結果を示す例にすぎません。

例3-4 変換済監査レコード・ファイル

<ROOT_DEST>
     <Record_Dest>
         <USER></USER>
         <PRIV_USER></PRIV_USER>
         <OS_LOGIN></OS_LOGIN>
         <PROXY_USER></PROXY_USER>
         <HOST></HOST>
         <IP></IP>
         <DB></DB>
         <SQLTEXT></SQLTEXT>
         <CONNECTION_ID></CONNECTION_ID>
         <STATUS></STATUS>
         <TIMESTAMP>2013-06-07T08:27:53</TIMESTAMP>
         <NAME>Audit</NAME>
         <SERVER_ID>0</SERVER_ID>
         <VERSION>1</VERSION>
         <STARTUP_OPTIONS>C:/Program Files/MySQL/MySQL Server 5.6/bin\mysqld
             --defaults-file=C:\ProgramData\MySQL\MySQL Server
             5.6\my.ini</STARTUP_OPTIONS>
         <OS_VERSION>x86_64-Win64</OS_VERSION>
         <MYSQL_VERSION>5.6.11-enterprise-commercial-advanced</MYSQL_VERSION>
     </Record_Dest>
     <Record_Dest>
         <USER>root</USER>
         <PRIV_USER>root</PRIV_USER>
         <OS_LOGIN></OS_LOGIN>
         <PROXY_USER></PROXY_USER>
         <HOST>localhost</HOST>
         <IP>127.0.0.1</IP>
         <DB></DB>
         <SQLTEXT></SQLTEXT>
         <CONNECTION_ID>1</CONNECTION_ID>
         <STATUS>0</STATUS>
         <TIMESTAMP>2013-06-07T08:30:46</TIMESTAMP>
         <NAME>Connect</NAME>
         <SERVER_ID></SERVER_ID>
         <VERSION></VERSION>
         <STARTUP_OPTIONS></STARTUP_OPTIONS>
         <OS_VERSION></OS_VERSION>
         <MYSQL_VERSION></MYSQL_VERSION>
     </Record_Dest>
     <Record_Dest>
         <USER></USER>
         <PRIV_USER></PRIV_USER>
         <OS_LOGIN></OS_LOGIN>
         <PROXY_USER></PROXY_USER>
         <HOST></HOST>
         <IP></IP>
         <DB></DB>
         <SQLTEXT>CREATE USER 'admin'@'localhost' IDENTIFIED BY 
                 'welcome_1'</SQLTEXT>
         <CONNECTION_ID>1</CONNECTION_ID>
         <STATUS>0</STATUS>
         <TIMESTAMP>2013-06-07T08:31:21</TIMESTAMP>
         <NAME>Query</NAME>
         <SERVER_ID></SERVER_ID>
         <VERSION></VERSION>
         <STARTUP_OPTIONS></STARTUP_OPTIONS>
         <OS_VERSION></OS_VERSION>
         <MYSQL_VERSION></MYSQL_VERSION>
     </Record_Dest>
</ROOT_DEST>

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

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

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

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

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

  • av.collector.atcintervaltime: 収集プラグインは、監査データが証跡から収集された最後の時間をファイルに書き込みます。このファイルは、エージェント・ホームのav/atcディレクトリに配置されます。また、このファイルにはUTCタイムゾーンの時間も含まれています。この情報は、証跡から監査データをクリーンアップする一部のサード・パーティ・ユーティリティに役立ちます。収集プラグインは監査データのクリーンアップは行わず、この情報をファイルに書き込むだけであることに注意してください。atcintervaltimeには、収集プラグインがファイルの時間情報を更新する頻度を指定します。属性の値は分単位です。

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

3.6 監査データの前処理

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

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

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

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