3 監査収集プラグイン

監査収集プラグイン、およびそれらをOracle Audit Vault用に作成する方法について学習します。

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

様々なタイプの収集プラグインの機能、監査証跡の収集方法、および詳細の参照先について説明します。

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

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

Audit Vault Serverフィールドへのターゲット・フィールドのマッピング情報、およびターゲット・タイプと監査証跡の他の詳細を指定するXMLマッパー・ファイルを準備することで、収集プラグインが作成されます。

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

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

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

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

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

  1. ターゲットの監査証跡のXMLマッパー・ファイルを作成します。この章では、一般的なマッパー・ファイルについて説明し、その作成に焦点を当てています。

  2. このターゲット・タイプのplugin-manifestファイルを作成します。

  3. マッパー・ファイルおよびplugin-manifestファイルをパッケージ化して、収集プラグインを作成します。

ターゲットおよびこのターゲットに必要な収集属性を追加した後に、Audit Vault Serverでこの収集プラグインをデプロイし、これを使用して監査データを収集できます。

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

Oracle Audit Vaultを使用して監査データを証跡表タイプから収集するには、データベース表の収集プラグインを使用できます

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

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

ターゲット・データベース表から監査証跡を読み取るためにデータベース表の収集プラグインを使用するには、データがOracle Audit Vault and Database Firewall要件を満たす必要があります。

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

Oracle Audit Vault and Database Firewallへの表収集プラグインのデータ要件

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

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

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

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

  • 監査証跡は、CommandClass Audit Vaultコア・フィールドにマップされるフィールドを含む必要があります。

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

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

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

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

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

関連トピック

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

この監査証跡の例は、監査証跡の詳細を示しています。このサンプル・ファイルは、Oracle Audit Vault and Database Firewallのサンプル・マッパー・ファイルの作成と構造を説明するために他の場所で使用されます。

次の表に、監査データを生成して表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

TerminalName

拡張フィールド

DB_ID

varchar

拡張フィールド

拡張フィールド

INSTANCE

varchar

拡張フィールド

拡張フィールド

PROCESS

int

拡張フィールド

拡張フィールド

SESSION_ID

int

マーカー・フィールド

マーカー・フィールド

ENTRY_ID

int

マーカー・フィールド

マーカー・フィールド

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

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

データベース表の収集プラグインのOracle Audit Vault XMLマッパー・ファイルの作成方法、およびこのタイプのマッパー・ファイルで使用される各XML要素および属性について学習します。

関連項目:

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

  • 最上位要素

    <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を指定する必要があります。これは必須フィールドです。

    このファイルのTableNameフィールドは、「監査証跡の追加」画面の証跡の場所と一致する必要があります。

    ノート:

    コレクタは、証跡の場所がマッパー・ファイルで指定されたTableNameと一致するかどうかを確認し、一致しない場合は起動しません。

    コレクタは、ターゲットの収集属性av.collector.securedtargetversionのバージョンを検証し、そのバージョンがその最上位要素のminSecuredTargetVersion属性およびmaxSecuredTargetVersion属性で指定された範囲内かどうかを検証して、テンプレート・フォルダ内の適切なマッパー・ファイルを選択します。

    たとえば、ターゲットの収集属性av.collector.securedtargetversionが11.1.0.0の場合、コレクタは、指定されたバージョン内の範囲の最上位要素を持つマッパー・ファイルを選択します。

    <AVTableCollectorTemplate securedTargetType="Oracle Database" minSecuredTargetVersion="10.2.0" maxSecuredTargetVersion="12.3" version="1.0">

    これにより、同じプラグインの複数のバージョン(テンプレート・フォルダ内の異なるマッパー・ファイル)が、異なるターゲット・バージョンに対応できます。

  • ターゲット接続情報

    <ConnectionInfo>
    
       <DataSource>platform.jdbc.dbsource.DBSourceDataSource</DataSource>
    </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>TERMINAL</Name>
         <MapTo>TerminalName</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>
      </ExtensionField>  
        

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

      ComplexName

      
      <ExtensionField>
      	<ComplexName>
      		<Name>column_name</Name>
      		<RegExp>exp</RegExp>
      	</ComplexName>
      </ExtensionField>

      ComplexNameExtensionField内のタグです。

      column_nameは、文字列である監査表の列名です。たとえば、comment$textです

      expは、処理後にテキストからキーと値のペアのリストを取得する正規表現です。これには、2つのグループ(キー用と値用)が含まれる必要があります。たとえば、([^;]+):([^;]+)です

    • マーカー・フィールド

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

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

    • 終了タグ

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

      </FieldMappingInfo>
      
      </AVTableCollectorTemplate>
      

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

Oracle AVDFのXMLファイル収集プラグインを使用して監査データをXMLファイル・タイプの証跡から収集する方法を学習します。

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

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

XMLファイルから監査証跡を読み取るためにXML収集プラグインを使用するには、データがOracle Audit Vault and Database Firewallの要件を満たす必要があります。

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

Oracle Audit Vault and Database Firewallの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.3.2 XMLファイルの収集プラグインの監査証跡の例

このXMLファイルの収集プラグインの監査証跡の例は、XMLファイルの収集プラグインの詳細を示しています。

このサンプル・ファイルは、Oracle Audit Vault and Database FirewallのドキュメントでXMLファイルの収集プラグインのサンプル・マッパー・ファイルの作成と構造を説明するために他の場所で使用されます。

次の表に、監査データを生成してXML監査ファイルに格納する仮のターゲット・タイプXMLSOURCEの監査レコード構造およびOracle 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

TerminalName

拡張フィールド

DB_ID

拡張フィールド

拡張フィールド

INSTANCE

拡張フィールド

拡張フィールド

PROCESS

拡張フィールド

拡張フィールド

SESSION_ID

マーカー・フィールド

マーカー・フィールド

ENTRY_ID

マーカー・フィールド

マーカー・フィールド

例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.3.3 XMLファイルの監査収集のマッパー・ファイルの作成

XMLファイルの収集プラグインのマッパー・ファイルを作成するには、Oracle Audit Vault and Database Firewallの標準に従って、このマッパー・ファイルに収集プラグイン・マッピングを記述する必要があります。

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

Oracle Audit Vault and Database Firewall用のマッパー・ファイルの収集プラグイン・マッピングの標準

  • 最上位要素

    <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>TERMINAL</Name>
         <MapTo>TerminalName</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>
      </ExtensionField>  
        

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

    • マーカー・フィールド

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

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

3.3.4 非標準監査レコードに対するXML変換

非標準監査データ形式の監査レコードがある場合は、XSLを使用してXML監査レコードにXML変換を適用できます。

監査レコードに対してXML変換を適用するには、監査データを元の形式からXMLファイル収集プラグインに現在指定されている形式に変換できるXSLファイルを指定します。このようにすることで、様々なXML監査データ形式をサポートするようにファイル収集プラグインを拡張できます。

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

非標準監査レコードを現在の形式に変換するには、変換プログラムはOracle Audit Vault and Database Firewallの標準に従う必要があります。

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

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

Oracle Audit Vault and Database Firewallで非標準監査レコードを変換するには、この手順を完了する必要があります。

これらのステップを実行する必要があります:

  1. マッパー・ファイルの<RecordInfo>の後にこの例のようなセクションを追加し、変換に使用するXSLファイルの名前を指定して、SourceFileStartTagに変換するファイルを指定します。
    <XslTransformation>
        <XslFile>test_template.xsl</XslFile>
        <SourceFileStartTag>AUDIT</SourceFileStartTag>
    </XslTransformation>
    
  2. XSLファイルを指定して、プラグイン・ディレクトリのtemplatesフォルダに置きます。
  3. XSLファイル内からJavaの機能を呼び出すこともできます。これを実行するには、作成したjarファイルをプラグイン・ディレクトリのjarsフォルダに置きます。
3.3.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.3.4.4 変換用のXSLファイルの作成

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

Audit.xml変換済監査レコード・ファイルはご使用のフォルダには表示されません。これは、test_template.xslの例でXSL変換ファイルを使用してAudit.xmlファイルを必要なXML形式に変換した結果を示す例にすぎません。

例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-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.4 JSONファイルの収集プラグイン

Oracle AVDFのJSONファイル収集プラグインを使用して監査データをJSONファイル・タイプの証跡から収集する方法を学習します。

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

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

JSONファイルから監査証跡を読み取るためにJSON収集プラグインを使用するには、データがOracle Audit Vault and Database Firewallの要件を満たす必要があります。

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

Oracle Audit Vault and Database FirewallのJSONファイルの監査レコード・ファイルの要件

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

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

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

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

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

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

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

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

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

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

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

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

    • 無効: ユーザーはドイツ語のロケール(env)のエージェントを持っています。JSONファイルは、中国語でエンコードされた別のコンピュータから生成/移動されています。この場合、エンコーディングおよびロケールが一致しないため、コレクタの開始に失敗します。この設定は無効です。

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

このJSONファイルの収集プラグインの監査証跡の例は、JSONファイルの収集プラグインの詳細を示しています。

このサンプル・ファイルは、Oracle Audit Vault and Database FirewallのドキュメントでJSONファイルの収集プラグインのサンプル・マッパー・ファイルの作成と構造を説明するために他の場所で使用されます。

次の表に、監査データを生成してJSON監査ファイルに格納する仮のターゲット・タイプJSONSOURCEの監査レコード構造およびOracle Audit Vault Serverフィールドへのマッピングを示します。

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

ターゲット・フィールド 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

TerminalName

拡張フィールド

DB_ID

拡張フィールド

拡張フィールド

INSTANCE

拡張フィールド

拡張フィールド

PROCESS

拡張フィールド

拡張フィールド

SESSION_ID

マーカー・フィールド

マーカー・フィールド

ENTRY_ID

マーカー・フィールド

マーカー・フィールド

例3-5 JSON監査レコードのサンプル


{
   "ITEMS":[
      {
         "SESSION_ID":123,
         "AUDIT_TYPE":1,
         "USER_ID":"scott",
         "OS_USER_ID":"usr1",
         "ACTION":"select",
         "STATUS":0,
         "EVENT_TIME":"2020-11-28 12:23:59.166",
         "OBJ_NAME":"emp",
         "OBJ_CREATOR":"scott",
         "TERMINAL":"t1",
         "DB_ID":136,
         "ENTRY_ID":1
      },
      {
         "SESSION_ID":123,
         "AUDIT_TYPE":1,
         "USER_ID":"scott",
         "OS_USER_ID":"usr1",
         "ACTION":"delete",
         "STATUS":0,
         "EVENT_TIME":"2020-11-28 12:24:22.177",
         "OBJ_NAME":"emp",
         "OBJ_CREATOR":"scott",
         "TERMINAL":"t1",
         "DB_ID":136,
         "ENTRY_ID":2
      }
   ]
}

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

JSONファイルの収集プラグインのマッパー・ファイルを作成するには、Oracle Audit Vault and Database Firewallの標準に従って、このマッパー・ファイルに収集プラグイン・マッピングを記述する必要があります。

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

Oracle Audit Vault and Database Firewall用のマッパー・ファイルの収集プラグイン・マッピングの標準

  • 最上位要素

    
    <AVJSONCollectorTemplate securedTargetType="JSONSOURCE"
          maxSecuredTargetVersion="11.0"
          version="1.0">
    

    AVJSONCollectorTemplateは最上位要素です。securedTargetTypemaxSecuredTargetVersionおよびversion属性は必須です。minSecuredTargetVersion属性はオプションです。

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

  • ヘッダー情報

    
    <HeaderInfo>
      <StartTag>ITEMS</StartTag>
    </HeaderInfo>  
      

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

  • レコード情報

    
    <RecordInfo>
      <StartTag>SESSION_ID</StartTag>
    </RecordInfo>
    

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

    StartTagは、JSON監査ファイルの各監査レコードの開始要素です。JSONファイルの各行に完全な形式のJSONレコードが1つある場合、HeaderInfoRecordInfoにも同じ開始タグがあり、これはJSONレコードの最初の要素です。

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

    <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>$.TERMINAL</Name>
         <MapTo>TerminalName</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>
      </ExtensionField>  
        

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

    • マーカー・フィールド

      <MarkerField>       
        <Name>$.SESSION_ID</Name>  
        <Name>$.ENTRY_ID</Name>
      </MarkerField> 
       

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

3.5 CSVファイルの収集プラグイン

Oracle AVDFのCSVファイル収集プラグインを使用して監査データをCSVファイル・タイプの証跡から収集する方法を学習します。

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

3.5.1 CSVファイルの収集プラグインの要件

CSVファイルから監査証跡を読み取るためにCSV収集プラグインを使用するには、データがOracle Audit Vault and Database Firewallの要件を満たしている必要があります。

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

Oracle Audit Vault and Database FirewallでのCSVファイルの監査レコード・ファイルの要件

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

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

  • このディレクトリ内のCSVファイルは、フィールド区切りとしてカンマが使用されている、有効な整形式CSVドキュメントである必要があります。

  • レコードがNULLのCommandClassフィールドを持つ場合、レコードは無効とみなされます。

  • CSVファイルでは、各監査レコードに、その要素値のいずれかとしてタイムスタンプが必要です。

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

    このフィールドはマッパー・ファイルのEventTimeUTCコア・フィールドにマップする必要があります。イベント時間のマッピングがマッパー・ファイルに指定されていない場合は、収集プラグインがシャットダウンします。

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

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

    • 無効: ユーザーはドイツ語のロケール(env)のエージェントを持っています。CSVファイルは、中国語でエンコードされた別のコンピュータから生成/移動されています。この場合、エンコーディングおよびロケールが一致しないため、コレクタの開始に失敗します。この設定は無効です。

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

このCSVファイル収集プラグインの監査証跡の例では、CSVファイル収集プラグインの詳細を示します。

このサンプル・ファイルは、Oracle Audit Vault and Database Firewallのドキュメント内の他の場所で、CSVファイル収集プラグインのサンプル・マッパー・ファイルの作成と構造を説明するために使用されます。

次の表に、監査データを生成してCSV監査ファイルに格納する仮のターゲット・タイプCSVSOURCEの監査レコード構造およびOracle Audit Vault Serverフィールドへのマッピングを示します。

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

ターゲット・フィールド Audit Vault Serverフィールド マップするフィールド・タイプ

EVENT_NAME

CommandClass

コア・フィールド

EVENT_TIME

EventTimeUTC

コア・フィールド

CLIENT_IP

ClientIP

コア・フィールド

USER_ID

UserName

コア・フィールド

TARGET_OBJECT

TargetObject

コア・フィールド

EVENT_STATUS

EventStatus

コア・フィールド

SESSION_ID

マーカー・フィールド

マーカー・フィールド

ENTRY_ID

マーカー・フィールド

マーカー・フィールド

COMMAND_TEXT

CommandText

ラージ・フィールド

COMMAND_PARAM

CommandParam

ラージ・フィールド

SESSION_ID

拡張フィールド

拡張フィールド

ENTRY_ID

拡張フィールド

拡張フィールド

例3-6 CSV監査レコードのサンプル


5678,createUser,2020-10-01T16:11:23.661+0530,127.0.0.1,1234,admin,user1,0,0,not applicable,1234,"insert into foo.bar","foobar",111
5679,dropUser,2020-10-02T16:11:23.661+0530,127.0.0.1,1234,admin,user2,0,0,not applicable,1234,"delete from foo.bar","foobar",222
5680,createCollection,2020-10-03T16:11:23.661+0530,127.0.0.1,1234,admin,collection1,100,18,authentication failed,1234,"insert into foo.bar","foobar",333
5681,dropCollection,2020-10-04T16:11:23.661+0530,127.0.0.1,1234,admin,collection2,200,13,not authorized to perform operation,1234,"delete from foo.bar","foobar",444

Below is the index corresponding to each field:
EVENT_ID field has index 0
EVENT_NAME field has index 1
EVENT_TIME field has index 2
CLIENT_IP field has index 3
CLIENT_PORT field has index 4
USER_ID field has index 5
TARGET_OBJECT field has index 6
EVENT_STATUS field has index 7
ERROR_ID field has index 8
ERROR_MESSAGE field index 9
SESSION_ID field has index 10
COMMAND_TEXT field has index 11
COMMAND_PARAM field has index 12
ENTRY_ID field has index 13

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

CSVファイル収集プラグインのマッパー・ファイルを作成するには、Oracle Audit Vault and Database Firewallの標準に従って、このマッパー・ファイルに収集プラグイン・マッピングを記述する必要があります。

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

Oracle Audit Vault and Database Firewall用のマッパー・ファイルの収集プラグイン・マッピングの標準

  • 最上位要素

    
    <AVCSVCollectorTemplate securedTargetType="CSVSOURCE"
          maxSecuredTargetVersion="11.0"
          version="1.0">
    

    AVCSVCollectorTemplateは最上位要素です。securedTargetTypemaxSecuredTargetVersionおよびversion属性は必須です。minSecuredTargetVersion属性はオプションです。

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

  • ヘッダー情報

    
    <HeaderInfo>
      <StartTag>CSV</StartTag>
    </HeaderInfo>  
      

    HeaderInfoは必須です。StartTagはCSVに設定する必要があります。

  • レコード情報

    
    <RecordInfo>
      <StartTag>CSV</StartTag>
    </RecordInfo>
    

    RecordInfoは必須です。StartTagはCSVに設定する必要があります。

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

    <FieldMappingInfo>  
    

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

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

    CSVプラグイン・マッパー・ファイルでは、Name要素にCSVファイル内のフィールドの索引が含まれている必要があります。このサンプルでは、次に各フィールドに対応する索引を示します。

    
    EVENT_ID field has index 0
    EVENT_NAME field has index 1
    EVENT_TIME field has index 2
    CLIENT_IP field has index 3
    CLIENT_PORT field has index 4
    USER_ID field has index 5
    TARGET_OBJECT field has index 6
    EVENT_STATUS field has index 7
    ERROR_ID field has index 8
    ERROR_MESSAGE field index 9
    SESSION_ID field has index 10
    COMMAND_TEXT field has index 11
    COMMAND_PARAM field has index 12
    ENTRY_ID field has index 13
    

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

    
    <!-- Invalid code
    <Map>
        <Name>0</Name>
        <MapTo>UserName</MapTo>
    </Map>
    <Map>
        <Name>1</Name>
        <MapTo>UserName</MapTo>
    </Map> -->
          
    • コア・フィールド

      <CoreFields>
      

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

      次の要素にはコア・フィールドが含まれます。

      <Map>
                  <Name>2</Name>
                  <MapTo>EventTimeUTC</MapTo>
                  <TimestampPattern>yyyy-MM-dd'T'HH:mm:ss.SSSZ</TimestampPattern>
               </Map>

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

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

      中国語などのマルチバイト文字の場合は、月など特定の文字をSimpleDateFormatの文字としてパターンに追加する必要があります。AMおよびPMインジケータはロケールに基づいて取得されますが、マッパー・ファイルに指定するTimestampPatternに明示的に指定する必要があります。

      
               <Map>
                  <Name>5</Name>
                  <MapTo>UserName</MapTo>
               </Map> 
        

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

      
       <Map>
        <Name>1</Name>
        <MapTo>CommandClass</MapTo>
      </Map>

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

      
                  <Transformation>
                     <ValueTransformation from="createUser" to="CREATE" />
                     <ValueTransformation from="createCollection" to="CREATE" />
                     <ValueTransformation from="authenticate" to="AUTHENTICATE" />
                     <ValueTransformation from="dropCollection" to="DROP" />
                     <ValueTransformation from="dropUser" to="DROP" />
                  </Transformation>  
        

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

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

      
               <Map>
                  <Name>1</Name>
                  <MapTo>TargetObject</MapTo>
                  <Transformation>
                     <FieldTransformation from="createUser" to="6" />
                     <FieldTransformation from="createCollection" to="6" />
                     <FieldTransformation from="authenticate" to="6" />
                     <FieldTransformation from="dropCollection" to="6" />
                     <FieldTransformation from="dropUser" to="6" />
                  </Transformation>
               </Map>
                   <Map>
                  <Name>1</Name>
                  <MapTo>TargetType</MapTo>
                  <Transformation>
                     <ValueTransformation from="createUser" to="USER" />
                     <ValueTransformation from="createCollection" to="COLLECTION" />
                     <ValueTransformation from="authenticate" to="USER" />
                     <ValueTransformation from="dropCollection" to="COLLECTION" />
                     <ValueTransformation from="dropUser" to="USER" />
                  </Transformation>
               </Map>
               <Map>
                  <Name>3</Name>
                  <MapTo>ClientIP</MapTo>
               </Map>
      
               <Map>
                  <Name>7</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="100" to="SUCCESS" />
                     <ValueTransformation from="200" to="UNKNOWN" />
                  </Transformation>
               </Map>
      

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

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

      
            <LargeFields>
               <Map>
                  <Name>11</Name>
                  <MapTo>CommandText</MapTo>
               </Map>
               <Map>
                  <Name>12</Name>
                  <MapTo>CommandParam</MapTo>
               </Map>
            </LargeFields>
      

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

    • 拡張フィールド

      
            <ExtensionField>
               <ComplexName>
                  <Name>10</Name>
                  <DisplayName>sessionid</DisplayName>
               </ComplexName>
               <ComplexName>
                  <Name>13</Name>
                  <DisplayName>entryid</DisplayName>
               </ComplexName>
            </ExtensionField>  
        

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

    • マーカー・フィールド

      
            <MarkerField>
               <Name>10</Name>
               <Name>13</Name>
            </MarkerField> 
       

      MarkerFieldは、各監査レコードを一意に識別するターゲット・フィールドのリストを含みます。

3.6 JSON RESTの収集プラグイン

Oracle AVDFのJSON収集プラグインを使用して監査データをJSONタイプの証跡から収集する方法を学習します。

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

3.6.1 JSON RESTの収集プラグインの要件

JSONファイルから監査証跡を読み取るためにJSON収集プラグインを使用するには、データがOracle Audit Vault and Database Firewallの要件を満たす必要があります。

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

Oracle Audit Vault and Database FirewallのJSON監査レコード・ファイルの要件

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

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

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

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

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

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

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

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

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

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

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

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

    • 無効: ユーザーはドイツ語のロケール(env)のエージェントを持っています。JSON RESTファイルは、中国語でエンコードされた別のコンピュータから生成/移動されています。この場合、エンコーディングおよびロケールが一致しないため、コレクタの開始に失敗します。この設定は無効です。

3.6.2 JSON RESTの収集プラグインの監査証跡の例

このJSON収集プラグインの監査証跡の例は、JSON収集プラグインの詳細を示しています。

このサンプル・ファイルは、Oracle Audit Vault and Database FirewallのドキュメントでJSON収集プラグインのサンプル・マッパー・ファイルの作成と構造を説明するために他の場所で使用されます。

次の表に、監査データを生成してJSON監査ファイルに格納する仮のターゲット・タイプJSONSOURCEの監査レコード構造およびOracle Audit Vault Serverフィールドへのマッピングを示します。

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

ターゲット・フィールド 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

TerminalName

拡張フィールド

DB_ID

拡張フィールド

拡張フィールド

INSTANCE

拡張フィールド

拡張フィールド

PROCESS

拡張フィールド

拡張フィールド

SESSION_ID

マーカー・フィールド

マーカー・フィールド

ENTRY_ID

マーカー・フィールド

マーカー・フィールド

例3-7 JSON監査レコードのサンプル


{
   "ITEMS":[
      {
         "SESSION_ID":123,
         "AUDIT_TYPE":1,
         "USER_ID":"scott",
         "OS_USER_ID":"usr1",
         "ACTION":"select",
         "STATUS":0,
         "EVENT_TIME":"2020-11-28 12:23:59.166",
         "OBJ_NAME":"emp",
         "OBJ_CREATOR":"scott",
         "TERMINAL":"t1",
         "DB_ID":136,
         "ENTRY_ID":1
      },
      {
         "SESSION_ID":123,
         "AUDIT_TYPE":1,
         "USER_ID":"scott",
         "OS_USER_ID":"usr1",
         "ACTION":"delete",
         "STATUS":0,
         "EVENT_TIME":"2020-11-28 12:24:22.177",
         "OBJ_NAME":"emp",
         "OBJ_CREATOR":"scott",
         "TERMINAL":"t1",
         "DB_ID":136,
         "ENTRY_ID":2
      }
   ]
}

3.6.3 JSON RESTの監査収集のマッパー・ファイルの作成

JSONファイルの収集プラグインのマッパー・ファイルを作成するには、Oracle Audit Vault and Database Firewallの標準に従って、このマッパー・ファイルに収集プラグイン・マッピングを記述する必要があります。

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

Oracle Audit Vault and Database Firewall用のマッパー・ファイルの収集プラグイン・マッピングの標準

  • 最上位要素

    
    <AVJSONCollectorTemplate securedTargetType="JSONSOURCE"
          maxSecuredTargetVersion="11.0"
          version="1.0">

    AVJSONCollectorTemplateは最上位要素です。securedTargetTypemaxSecuredTargetVersionおよびversion属性は必須です。minSecuredTargetVersion属性はオプションです。

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

  • ヘッダー情報

    
    <HeaderInfo>
      <StartTag>ITEMS</StartTag>
    </HeaderInfo>  
      

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

  • レコード情報

    
    <RecordInfo>
      <StartTag>SESSION_ID</StartTag>
    </RecordInfo>

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

    StartTagは、JSON監査ファイルの各監査レコードの開始要素です。JSONファイルの各行に完全な形式のJSONレコードが1つある場合、HeaderInfoRecordInfoにも同じ開始タグがあり、これはJSONレコードの最初の要素です。

  • サービスの詳細

    <ServiceDetails>

    サンプル・コード:

    
     <!-- Query format for providing the start time and end time query parameters -->
          <QueryFormat>{startTime}/{endTime}</QueryFormat>
            <!-- Timestamp format for start time and end time -->
          <TimeFormat>yyyy-MM-dd hh:mm:ss.SSS</TimeFormat>
          <NextLink>
               <!-- Next link start tag -->
             <NextLinkStartTag>next</NextLinkStartTag>
                 <!-- Next link pattern -->
             <NextLinkPattern>$.next.$ref</NextLinkPattern>
          </NextLink>
            <!-- Authentication mechanism for REST Service -->
          <RESTAuthentication>
               <!-- Username and password based Basic Authentication -->
             <BasicAuth/>
          </RESTAuthentication>
       </ServiceDetails>
    

    これはフィールドの説明です。すべてのフィールドが必須です。

    Service Detailsは、監査証跡に対応するRESTサービスの情報を指定します。

    Query Formatは、開始時間および終了時間の問合せパラメータを指定するためのREST問合せの形式を記述します。

    Time Formatは、開始時間および終了時間のタイムスタンプ書式を記述します。

    Next Link Start Tagは、REST URLの次のリンク開始タグを指定します。

    Next Link Patternは、REST URLの次のリンクのJSONパス式を指定します。

    REST Authenticationは、ターゲットに接続するために使用する認証メカニズムを記述します。

    BasicAuthは、認証方式が基本認証であることを示します。

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

    <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>$.TERMINAL</Name>
         <MapTo>TerminalName</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>
      </ExtensionField>  
        

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

    • マーカー・フィールド

      <MarkerField>       
        <Name>$.SESSION_ID</Name>  
        <Name>$.ENTRY_ID</Name>
      </MarkerField> 
       

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

3.7 ターゲットの収集属性

Oracle AVDFプラグインを使用して監査証跡からデータを収集する前に、収集属性を定義する必要があります。

データベース表プラグイン、JSON、CSV、XMLファイル収集プラグインおよびRESTプラグインの場合、ターゲット登録時に監査収集属性を設定する必要があります。これは、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ファイルの収集プラグインには必要ありません。この設定の例は次のとおりです。

    av.collector.TimeZoneOffset = +5:30

  • av.collector.enableArchivedTime(オプション):この属性は、Oracle表証跡にのみ適用できます。これはデフォルトではtrueに設定されています。enableArchivedTimetrueに設定されており、INIT_CLEANUPプロシージャが証跡のために呼び出された場合、dbms_audit_mgmtパッケージの最終アーカイブ・タイムスタンプはATC間隔時間に基づいて現在のチェックポイント時刻に更新されます。falseに設定されている場合、証跡の最終アーカイブ・タイムスタンプはターゲット・データベースで更新されません。その場合、ユーザーは、チェックポイント時刻よりも前のタイムスタンプを持つ監査レコードが監査表から削除されないようにする必要があります。ユーザーはAVSYSスキーマのAudit Vault Serverデータベース・チェックポイント表を表示して、レコードが収集されるまでの証跡のチェックポイント時刻を確認できます。属性値を変更する必要がある場合は、属性が更新された後に証跡を再起動する必要があります。

3.8 監査データの前処理

Oracle AVDF収集プラグインを使用するための要件について学習します。

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

その他の監査証跡については、Audit Vault Java APIを使用できます。

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

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

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