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 への特権アクセス権があることを確認します。

Google SecOps の取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。ファイルを、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 では /etc/bindplane-agent/ ディレクトリ、Windows ではインストール ディレクトリにあります。
    2. テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  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:
            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
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

  4. <customer_id> は、実際のお客様 ID に置き換えます。

  5. /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

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. [管理] > [構成] > [SIEM 統合] に移動します。
  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_typeTASK に、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.hostnametarget.asset.hostname 未加工ログの CLIENT_HOST_NAME の値が、これらの UDM フィールドに割り当てられます。
CLIENT_IP_ADDRESS target.iptarget.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.ipprincipal.asset.ip 未加工ログの IP の値は、有効な IP アドレスであることを確認した後に、これらの UDM フィールドに割り当てられます。
loggerHost intermediary.hostnameintermediary.asset.hostname 未加工ログのメッセージ フィールドから抽出された loggerHost の値が、これらの UDM フィールドに割り当てられます。
login_name target.user.useridtarget.user.email_addresses、または target.user.user_display_name 値に @ が含まれている場合、その値はメールアドレスとして扱われます。スペースが含まれている場合は、表示名として扱われます。それ以外の場合は、ユーザー ID として扱われます。また、event_typeUSER_LOGINextensions.auth.typeMACHINEextensions.auth.mechanismUSERNAME_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 にマッピングされます。また、SEVERITY が 3 の場合は is_significant を true に、それ以外の場合は false に設定します。
SOURCE principal.hostnameprincipal.asset.hostname 未加工ログの SOURCE の値が、これらの UDM フィールドに割り当てられます。SOURCE にドメイン部分が含まれていない場合は、DOMAIN も割り当てられます。また、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.is_alert event.idm.is_alert ALERT_PROFILEAlertUser Account Locked Out、または Unusual Activity.*? と一致する場合は true に設定します。それ以外の場合は false に設定します。
event.idm.is_significant event.idm.is_significant SEVERITY が 3 の場合は true に設定します。それ以外の場合は false に設定します。
event.idm.read_only_udm.extensions.auth.mechanism event.idm.read_only_udm.extensions.auth.mechanism login_name が存在する場合、または event_typeUSER_LOGIN の場合は USERNAME_PASSWORD に設定します。
event.idm.read_only_udm.extensions.auth.type event.idm.read_only_udm.extensions.auth.type login_name が存在する場合、または event_typeUSER_LOGIN の場合は MACHINE に設定します。
event.idm.read_only_udm.metadata.event_type event.idm.read_only_udm.metadata.event_type ALERT_PROFILEREPORT_PROFILEFORMAT_MESSAGE の値に基づいてパーサーによって決定されます。USER_CHANGE_PERMISSIONSUSER_STATSUSER_LOGINUSER_CHANGE_PASSWORDSETTING_MODIFICATIONFILE_DELETIONFILE_MODIFICATIONSTATUS_SHUTDOWNSCHEDULED_TASK_CREATIONFILE_READNETWORK_CONNECTIONGENERIC_EVENTUSER_UNCATEGORIZEDSTATUS_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.hostnameprincipal.asset.hostname 未加工ログの host の値がこれらの UDM フィールドに割り当てられます。また、has_principal_host を true に設定します。
intermediary.hostnameintermediary.asset.hostname intermediary.hostnameintermediary.asset.hostname loggerHost の値に設定します。
principalHost principal.hostnameprincipal.asset.hostname 未加工ログの principalHost の値は、IP かどうかを確認した後に、これらの UDM フィールドに割り当てられます。また、has_principal_host を true に設定します。
security_result.action security_result.action outcome または msg_data_2Success が含まれている場合、または FORMAT_MESSAGEStatus:Success が含まれている場合は、ALLOW に設定します。statusdeniedlocked outincorrectdoes not meetUnable to validate が含まれている場合は、BLOCK に設定します。ALERT_PROFILELogon Failures for Admin Users の場合、BLOCK に設定します。
security_result.category security_result.category event_typeUSER_STATS の場合、または ALERT_PROFILELogon 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.hostnametarget.asset.hostname、または target.iptarget.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_typeUSER_CHANGE_PASSWORD でない限り principal.user.userid に割り当てられます。event_typeUSER_CHANGE_PASSWORD の場合、target.user.userid に割り当てられます。

変更点

2025-02-19

機能強化:

  • EVENT_NUMBERREMARKSEVENT_TYPEATTRIBUTES_NEW_VALUEATTRIBUTES_OLD_VALUEOPERATION_TYPEadditional.fields にマッピングしました。
  • EVENT_TYPE_TEXTsecurity_result.detection_fields にマッピングしました。
  • ACCOUNT_NAMEprincipal.user.user_display_name にマッピングしました。

2024-05-20

機能強化:

  • フィールド outcome の値が Success に類似している場合は、security_result.actionALLOW に設定します。
  • フィールド msg_data の値が Success に類似している場合は、security_result.actionALLOW に設定します。
  • msg_data に Grok パターンを追加して、actsuidreason を抽出できるようにしました。
  • msg_datasecurity_result.description にマッピングしました。
  • cs1cs3cs4cs5cn1cn2cn3additional.fields にマッピングしました。

2024-01-19

機能強化:

  • 未解析ログを解析するように Grok パターンを変更しました。
  • IPprincipal.asset.ip にマッピングしました。
  • _PrincipalIPprincipal.asset.ip にマッピングしました。
  • hostprincipal.asset.hostname にマッピングしました。
  • principalHostprincipal.asset.hostname にマッピングしました。
  • SOURCEprincipal.asset.hostname にマッピングしました。
  • _TargetIPtarget.asset.ip にマッピングしました。
  • CLIENT_IP_ADDRESStarget.asset.hostname にマッピングしました。
  • CLIENT_HOST_NAMEtarget.asset.hostname にマッピングしました。
  • targetHosttarget.asset.hostname にマッピングしました。

2023-10-17

バグの修正:

  • IPprincipal.ip にマッピングする前に IP チェックを追加しました。
  • CLIENT_IP_ADDRESStarget.ip にマッピングする前に IP チェックを追加しました。
  • principal.group.windows_sid にマッピングする前に ACCOUNT_SID の検証チェックを追加しました。
  • target.group.windows_sid にマッピングする前に CALLER_USER_SID の検証チェックを追加しました。
  • principal が存在する場合は、event_typeSTATUS_UPDATE に設定します。
  • 新しいパターン FORMAT_MESSAGE から file_path を解析するように Grok パターンを変更しました。
  • event_typeSCHEDULED_TASK_CREATION の場合の has_target_resource のチェックを追加しました。

2023-03-17

機能強化:

  • CEF 形式のログをサポートし、次のフィールドをマッピングしました。
  • IPprincipal.ip にマッピングされます。
  • LOGIN NAMEtarget.user.userid or target.user.email_addresses or target.user.user_display_name にマッピングされます。
  • DOMAIN NAMEprincipal.administrative_domain にマッピングされます。
  • HOSTprincipal.hostname にマッピングされます。
  • ACCESS_MODEsecurity_result.detection_fields にマッピングされます。
  • STATUSsecurity_result.summary にマッピングされます。
  • STATUSsuccess の場合、security_result.actionALLOW にマッピングされます。STATUSdenied or incorrect の場合、security_result.actionBLOCK にマッピングされます。

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