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 の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
Windows のインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
- 次のコマンドを実行します。 - msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
- 次のコマンドを実行します。 - sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
その他のインストール リソース
- その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
- 構成ファイルにアクセスします。 - config.yamlファイルを見つけます。通常、Linux では- /etc/bindplane-agent/ディレクトリに、Windows ではインストール ディレクトリにあります。
- テキスト エディタ(nano、vi、メモ帳など)を使用してファイルを開きます。
 
- 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
- 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。 
- <customer_id>は、実際の顧客 ID に置き換えます。
- /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 の構成
- ManageEngine ADAudit Plus ウェブ UI にログインします。
- [管理者] > [構成] > [SIEM 統合] に移動します。
- [有効にする] を選択して、ADAudit Plus ログを送信します。
- [ArcSight(CEF)] 形式を選択します。
- 次の構成の詳細を指定します。
- IP アドレス: Bindplane エージェントの IP アドレス。
- ポート: Bindplane ポート番号(UDP の場合は 514など)。
- ターゲット タイプ: [UDP] を選択します(Bindplane エージェントの構成に応じて、[TCP] を選択することもできます)。
 
- [保存] をクリックします。
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に割り当てられます。event_typeがUSER_CHANGE_PASSWORDの場合は、target.user.useridに割り当てられます。 | 
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。