ManageEngine ADAudit Plus のログを収集する

以下でサポートされています。

このドキュメントでは、Bindplane エージェントを使用して ManageEngine ADAudit Plus ログを Google Security Operations に取り込む方法について説明します。パーサーは ADAudit Plus からのログを処理し、UDM 形式に変換します。Grok パターンを使用して SYSLOG(CEF)と Key-Value 形式の両方のメッセージからフィールドを抽出し、アラート プロファイルとレポート プロファイルから派生したイベントタイプに基づいて UDM フィールドにマッピングし、追加のコンテキストでデータを拡充します。また、パーサーは、ログインの失敗、ユーザーの変更、ファイルの変更などの特定のシナリオを処理し、それに応じて UDM マッピングを調整します。

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • Windows 2016 以降、または systemd を使用する Linux ホストを使用していることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
  • ManageEngine ADAudit への特権アクセス権があることを確認します。

Bindplane エージェントの Google SecOps 認証情報を取得する

Bindplane エージェントを Google SecOps に対して認証するには、次のいずれかの方法を選択します。

  • 新規デプロイ: Chronicle API を使用します(オプション 1)。
  • 以前のデプロイ: 2027 年 7 月 20 日に Ingestion API が廃止されるまで、取り込み認証ファイル(オプション 2)を引き続き使用します。
  1. Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
  2. [IAM と管理> サービス アカウント] に移動します。
  3. [サービス アカウントを作成] をクリックします。
  4. 次の構成情報を指定します。
    • サービス アカウント名: アカウントの名前を入力します(例: bindplane-ingest)。
    • サービス アカウントの説明: 説明を入力します(例: Bindplane agent log ingestion)。
  5. [作成して続行] をクリックします。
  6. [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、[ロールを選択] をクリックし、[Chronicle 編集者] を選択します。
  7. [続行] をクリックして [完了] をクリックします。
  8. 作成したサービス アカウントをクリックし、[キー] タブに移動します。
  9. [鍵を追加] > [新しい鍵を作成] の順にクリックします。
  10. [JSON] を選択し、[作成] をクリックします。キーファイルがパソコンにダウンロードされます。
  11. 鍵ファイルを Bindplane コレクタ ディレクトリ(Linux の場合は /opt/observiq-otel-collector/ingestion-auth.json、Windows の場合は C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)に ingestion-auth.json として保存するか、config.yaml の creds_file_path を保存先のパスと一致するように更新します。
  12. [IAM と管理] > [設定] に移動し、[プロジェクト番号] をコピーします。これはエクスポータの構成に必要です。

オプション 2: 取り込み認証ファイルをダウンロードする(レガシー)

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイルをダウンロードします。
  4. Bindplane エージェントがインストールされるシステムにファイルを安全に保存します。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。

Bindplane エージェントをインストールする

Windows へのインストール

  1. 管理者として コマンド プロンプトまたは PowerShell を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux へのインストール

  1. root 権限または sudo 権限でターミナルを開きます。
  2. 次のコマンドを実行します。

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

その他のインストール リソース

Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

  1. 構成ファイルにアクセスします。

    1. config.yaml ファイルを見つけます。通常、Linux では /opt/observiq-otel-collector/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    2. テキスト エディタ(nano、vi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            protocol: https
            # Region of your instance, for example us, europe, asia-southeast1
            location: <LOCATION>
            # Project number of the Google Cloud project linked to the instance
            project: '<PROJECT_NUMBER>'
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: chronicle.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: ADAUDIT_PLUS
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

  4. <LOCATION> は、Google SecOps インスタンスのリージョン(us、europe、asia-southeast1 など)に置き換えます。エクスポートでは、この値が chronicle.googleapis.com の接頭辞として使用されます。

  5. <PROJECT_NUMBER> は、[IAM と管理>設定] のプロジェクト番号に置き換えます。

  6. <customer_id> は、実際の顧客 ID に置き換えます。

  7. /path/to/ingestion-authentication-file.json の値を、Bindplane エージェントの Google SecOps 認証情報を取得するでサービス アカウント キーファイル(オプション 1)を保存したパスに更新します。

以前の Ingestion API エクスポータ

  • オプション 2 の取り込み認証ファイルを使用する場合は、exporters ブロックを次のように置き換えます。creds を取り込み認証ファイルのパスに設定します。インスタンスが米国以外にある場合は、malachiteingestion-pa.googleapis.com をリージョン エンドポイント(europe-malachiteingestion-pa.googleapis.com など)に置き換えます。

    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: ADAUDIT_PLUS
                raw_log_field: body
    

Bindplane エージェントを再起動して変更を適用する

  • Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。

    sudo systemctl restart bindplane-agent
    
  • Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

ManageEngine ADAudit Plus Syslog の構成

  1. ManageEngine ADAudit Plus ウェブ UI にログインします。
  2. [Admin] > [Configuration] > [SIEM Integration] に移動します。
  3. [有効にする] を選択して、ADAudit Plus ログを送信します。
  4. [ArcSight(CEF)] 形式を選択します。
  5. 次の構成情報を指定します。
    • IP アドレス: Bindplane エージェントの IP アドレス。
    • ポート: Bindplane ポート番号。例: UDP の場合は 514。
    • ターゲット タイプ: [UDP] を選択します(Bindplane エージェントの構成に応じて、[TCP] を選択することもできます)。
  6. [保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
ACCOUNT_DOMAIN principal.administrative_domain 未加工ログの ACCOUNT_DOMAIN の値がこの UDM フィールドに割り当てられます。
ACCOUNT_NAME principal.user.userid 未加工ログの ACCOUNT_NAME の値がこの UDM フィールドに割り当てられます。
ALERT_PROFILE security_result.summary 未加工ログの ALERT_PROFILE の値がこの UDM フィールドに割り当てられます。
APPLICATION_NAME target.resource.name 未加工ログの APPLICATION_NAME の値がこの UDM フィールドに割り当てられます。また、target.resource.resource_type を TASK に、has_target_resource を true に設定します。
CALLER_DISPLAY_NAME target.user.user_display_name 未加工ログの CALLER_DISPLAY_NAME の値がこの UDM フィールドに割り当てられます。
CALLER_USER_NAME target.user.userid 未加工ログの CALLER_USER_NAME の値がこの UDM フィールドに割り当てられます。
CALLER_USER_SID target.group.windows_sid 未加工ログの CALLER_USER_SID の値は、文字 [%,{,}] を削除してからこの UDM フィールドに割り当てられます。これは、値が Windows SID パターンと一致する場合にのみ行われます。
Category metadata.product_event_type 未加工ログの Category の値がこの UDM フィールドに割り当てられます。
CLIENT_HOST_NAME target.hostname、target.asset.hostname 未加工ログの CLIENT_HOST_NAME の値が、これらの UDM フィールドに割り当てられます。
CLIENT_IP_ADDRESS target.ip、target.asset.ip 未加工ログの CLIENT_IP_ADDRESS の値は、有効な IP アドレスであることを検証してから、これらの UDM フィールドに割り当てられます。
CLIENT_PORT target.port 未加工ログの CLIENT_PORT の値は、整数に変換された後、この UDM フィールドに割り当てられます。
DOMAIN target.administrative_domain 未加工ログの DOMAIN の値がこの UDM フィールドに割り当てられます。この値は、ACCOUNT_DOMAIN が存在する場合、後で上書きされる可能性があります。
FILE_LOCATION target.file.full_path 未加工ログの FILE_LOCATION の値がこの UDM フィールドに割り当てられます。
FILE_NAME target.file.full_path FILE_LOCATION が存在しない場合、未加工ログの FILE_NAME の値がこの UDM フィールドに割り当てられます。
FORMAT_MESSAGE security_result.description 未加工ログの FORMAT_MESSAGE の値がこの UDM フィールドに割り当てられます。このフィールドの一部は、他の UDM フィールドの入力に使用され、説明から削除されることがあります。
IP principal.ip、principal.asset.ip 未加工ログの IP の値は、有効な IP アドレスであることを検証してから、これらの UDM フィールドに割り当てられます。
loggerHost intermediary.hostname、intermediary.asset.hostname 未加工ログのメッセージ フィールドから抽出された loggerHost の値が、これらの UDM フィールドに割り当てられます。
login_name target.user.userid、target.user.email_addresses、target.user.user_display_name 値に @ が含まれている場合は、メールアドレスとして扱われます。スペースが含まれている場合は、表示名として扱われます。それ以外の場合は、userid として扱われます。また、event_type を USER_LOGIN に、extensions.auth.type を MACHINE に、extensions.auth.mechanism を USERNAME_PASSWORD に設定します。
RECORD_NUMBER principal.process.pid 未加工ログの RECORD_NUMBER の値がこの UDM フィールドに割り当てられます。
REPORT_PROFILE metadata.description 未加工ログの REPORT_PROFILE の値がこの UDM フィールドに割り当てられます。
SEVERITY security_result.severity SEVERITY の値によって、この UDM フィールドの値が決まります。1 は LOW、2 は MEDIUM、3 は HIGH にマッピングされます。
SOURCE principal.hostname、principal.asset.hostname 未加工ログの SOURCE の値が、SOURCE にドメイン部分が含まれていない場合は DOMAIN と組み合わされて、これらの UDM フィールドに割り当てられます。また、has_principal_host を true に設定します。
TIME_GENERATED metadata.event_timestamp.seconds 未加工ログの TIME_GENERATED の値がイベント タイムスタンプとして使用されます。
UNIQUE_ID metadata.product_log_id 未加工ログの UNIQUE_ID の値がこの UDM フィールドに割り当てられます。
USERNAME principal.user.userid ACCOUNT_NAME が存在しない場合、未加工ログの USERNAME の値がこの UDM フィールドに割り当てられます。
USER_OU_GUID metadata.product_log_id UNIQUE_ID が存在しない場合、未加工ログの USER_OU_GUID の値から中かっこを削除した値が、この UDM フィールドに割り当てられます。
access_mode security_result.detection_fields.value 未加工ログの access_mode の値がこの UDM フィールドに割り当てられ、キーが ACCESS_MODE に設定されます。
action_name security_result.description 未加工ログの action_name の値がこの UDM フィールドに割り当てられます。
domain_name principal.administrative_domain 未加工ログの domain_name の値がこの UDM フィールドに割り当てられます。
event.idm.read_only_udm.extensions.auth.mechanism event.idm.read_only_udm.extensions.auth.mechanism login_name が存在する場合、または event_type が USER_LOGIN の場合、USERNAME_PASSWORD に設定します。
event.idm.read_only_udm.extensions.auth.type event.idm.read_only_udm.extensions.auth.type login_name が存在する場合、または event_type が USER_LOGIN の場合、MACHINE に設定します。
event.idm.read_only_udm.metadata.event_type event.idm.read_only_udm.metadata.event_type ALERT_PROFILE、REPORT_PROFILE、FORMAT_MESSAGE の値に基づいてパーサーによって決定されます。USER_CHANGE_PERMISSIONS、USER_STATS、USER_LOGIN、USER_CHANGE_PASSWORD、SETTING_MODIFICATION、FILE_DELETION、FILE_MODIFICATION、STATUS_SHUTDOWN、SCHEDULED_TASK_CREATION、FILE_READ、NETWORK_CONNECTION、GENERIC_EVENT、USER_UNCATEGORIZED、STATUS_UPDATE のいずれかの値になります。
event.idm.read_only_udm.metadata.log_type event.idm.read_only_udm.metadata.log_type 常に ADAUDIT_PLUS に設定。
event.idm.read_only_udm.metadata.product_name event.idm.read_only_udm.metadata.product_name 常に ADAudit Plus に設定。
event.idm.read_only_udm.metadata.vendor_name event.idm.read_only_udm.metadata.vendor_name 常に Zoho Corporation に設定。
host principal.hostname、principal.asset.hostname 未加工ログの host の値がこれらの UDM フィールドに割り当てられます。また、has_principal_host を true に設定します。
intermediary.hostname、intermediary.asset.hostname intermediary.hostname、intermediary.asset.hostname loggerHost の値に設定します。
principalHost principal.hostname、principal.asset.hostname 未加工ログの principalHost の値は、IP かどうかを確認してから、これらの UDM フィールドに割り当てられます。また、has_principal_host を true に設定します。
security_result.action security_result.action outcome または msg_data_2 に Success が含まれている場合、または FORMAT_MESSAGE に Status:Success が含まれている場合は、ALLOW に設定します。status に denied、locked out、incorrect、does not meet、Unable to validate のいずれかが含まれている場合は、BLOCK に設定します。ALERT_PROFILE が Logon Failures for Admin Users の場合、BLOCK に設定します。
security_result.category security_result.category event_type が USER_STATS の場合、または ALERT_PROFILE が Logon Failures for Admin Users の場合、POLICY_VIOLATION に設定します。
security_result.rule_name security_result.rule_name Reason: が含まれている場合は、FORMAT_MESSAGE フィールドから抽出されます。
status security_result.summary 未加工ログの status の値がこの UDM フィールドに割り当てられます。
targetHost target.hostname、target.asset.hostname、または target.ip、target.asset.ip 未加工ログの targetHost の値は、IP であるかどうかを確認した後に、これらの UDM フィールドに割り当てられます。
targetUser target.user.userid 未加工ログの targetUser の値がこの UDM フィールドに割り当てられます。
_CNtargetUser target.user.user_display_name 未加工ログの _CNtargetUser の値がこの UDM フィールドに割り当てられます。
_user principal.user.userid または target.user.userid 未加工ログの _user の値は、event_type が USER_CHANGE_PASSWORD の場合を除き、principal.user.userid に割り当てられます。 が の場合は、target.user.userid に割り当てられます。

変更ログ

このパーサーの変更ログを表示する

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。