Recoger registros de ManageEngine ADAudit Plus
En este documento se explica cómo ingerir registros de ManageEngine ADAudit Plus en Google Security Operations mediante un agente de Bindplane. El analizador gestiona los registros de ADAudit Plus y los convierte al formato UDM. Utiliza patrones grok para extraer campos de mensajes con formato SYSLOG (CEF) y de pares clave-valor, asignándolos a campos UDM en función de los tipos de eventos derivados de los perfiles de alertas e informes, y enriqueciendo los datos con contexto adicional. El analizador también gestiona situaciones específicas, como errores de inicio de sesión, cambios de usuario y modificaciones de archivos, y ajusta la asignación de UDM en consecuencia.
Antes de empezar
- Asegúrate de que tienes una instancia de Google SecOps.
- Asegúrate de usar Windows 2016 o una versión posterior, o un host Linux con
systemd
. - Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
- Asegúrate de que tienes acceso con privilegios a ManageEngine ADAudit.
Obtener el archivo de autenticación de ingestión de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recogida.
- Descarga el archivo de autenticación de ingestión. Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.
Obtener el ID de cliente de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instalar el agente de Bindplane
Instalación de ventanas
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el siguiente comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalación de Linux
- Abre un terminal con privilegios de superusuario o sudo.
Ejecuta el siguiente comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Recursos de instalación adicionales
- Para ver otras opciones de instalación, consulta esta guía de instalación.
Configurar el agente de BindPlane para ingerir Syslog y enviarlo a Google SecOps
Accede al archivo de configuración:
- Busca el archivo
config.yaml
. Normalmente, se encuentra en el directorio/etc/bindplane-agent/
en Linux o en el directorio de instalación en Windows. - Abre el archivo con un editor de texto (por ejemplo,
nano
,vi
o Bloc de notas).
- Busca el archivo
Edita el archivo
config.yaml
de la siguiente manera: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
Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.
Sustituye
<customer_id>
por el ID de cliente real.Actualiza
/path/to/ingestion-authentication-file.json
a la ruta en la que se guardó el archivo de autenticación en la sección Obtener el archivo de autenticación de ingestión de Google SecOps.
Reinicia el agente de Bindplane para aplicar los cambios
Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:
sudo systemctl restart bindplane-agent
Para reiniciar el agente de Bindplane en Windows, puedes usar la consola Servicios o introducir el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar Syslog de ManageEngine ADAudit Plus
- Inicia sesión en la interfaz de usuario web de ManageEngine ADAudit Plus.
- Ve a Administrar > Configuración > Integración de SIEM.
- Selecciona Habilitar para enviar los registros de ADAudit Plus.
- Seleccione el formato ArcSight (CEF).
- Proporcione los siguientes detalles de configuración:
- Dirección IP: dirección IP del agente de Bindplane.
- Puerto: número de puerto de Bindplane. Por ejemplo,
514
para UDP. - Tipo de destino: selecciona UDP (también puedes seleccionar TCP, en función de la configuración de tu agente de Bindplane).
- Haz clic en Guardar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
ACCOUNT_DOMAIN |
principal.administrative_domain |
El valor de ACCOUNT_DOMAIN del registro sin procesar se asigna a este campo de UDM. |
ACCOUNT_NAME |
principal.user.userid |
El valor de ACCOUNT_NAME del registro sin procesar se asigna a este campo de UDM. |
ALERT_PROFILE |
security_result.summary |
El valor de ALERT_PROFILE del registro sin procesar se asigna a este campo de UDM. |
APPLICATION_NAME |
target.resource.name |
El valor de APPLICATION_NAME del registro sin procesar se asigna a este campo de UDM. También asigna el valor TASK a target.resource.resource_type y el valor true a has_target_resource . |
CALLER_DISPLAY_NAME |
target.user.user_display_name |
El valor de CALLER_DISPLAY_NAME del registro sin procesar se asigna a este campo de UDM. |
CALLER_USER_NAME |
target.user.userid |
El valor de CALLER_USER_NAME del registro sin procesar se asigna a este campo de UDM. |
CALLER_USER_SID |
target.group.windows_sid |
El valor de CALLER_USER_SID del registro sin procesar se asigna a este campo de UDM después de eliminar los caracteres [%,{,}] . Esto solo se hace si el valor coincide con un patrón de SID de Windows. |
Category |
metadata.product_event_type |
El valor de Category del registro sin procesar se asigna a este campo de UDM. |
CLIENT_HOST_NAME |
target.hostname , target.asset.hostname |
El valor de CLIENT_HOST_NAME del registro sin procesar se asigna a estos campos de UDM. |
CLIENT_IP_ADDRESS |
target.ip , target.asset.ip |
El valor de CLIENT_IP_ADDRESS del registro sin procesar se asigna a estos campos de UDM después de validar que es una dirección IP válida. |
CLIENT_PORT |
target.port |
El valor de CLIENT_PORT del registro sin procesar se asigna a este campo de metadatos de UDM después de convertirlo en un número entero. |
DOMAIN |
target.administrative_domain |
El valor de DOMAIN del registro sin procesar se asigna a este campo de UDM. Este valor puede sobrescribirse más adelante con ACCOUNT_DOMAIN si está presente. |
FILE_LOCATION |
target.file.full_path |
El valor de FILE_LOCATION del registro sin procesar se asigna a este campo de UDM. |
FILE_NAME |
target.file.full_path |
El valor de FILE_NAME del registro sin procesar se asigna a este campo de UDM si FILE_LOCATION no está presente. |
FORMAT_MESSAGE |
security_result.description |
El valor de FORMAT_MESSAGE del registro sin procesar se asigna a este campo de UDM. Es posible que se usen partes de este campo para rellenar otros campos de UDM y, después, se eliminen de la descripción. |
IP |
principal.ip , principal.asset.ip |
El valor de IP del registro sin procesar se asigna a estos campos de UDM después de validar que es una dirección IP válida. |
loggerHost |
intermediary.hostname , intermediary.asset.hostname |
El valor de loggerHost extraído del campo de mensaje del registro sin procesar se asigna a estos campos de UDM. |
login_name |
target.user.userid , target.user.email_addresses o target.user.user_display_name |
Si el valor contiene @ , se trata como una dirección de correo. Si contiene espacios, se trata como un nombre visible. De lo contrario, se trata como un ID de usuario. También asigna el valor USER_LOGIN a event_type , MACHINE a extensions.auth.type y USERNAME_PASSWORD a extensions.auth.mechanism . |
RECORD_NUMBER |
principal.process.pid |
El valor de RECORD_NUMBER del registro sin procesar se asigna a este campo de UDM. |
REPORT_PROFILE |
metadata.description |
El valor de REPORT_PROFILE del registro sin procesar se asigna a este campo de UDM. |
SEVERITY |
security_result.severity |
El valor de SEVERITY determina el valor de este campo de UDM: 1 se asigna a LOW, 2 a MEDIUM y 3 a HIGH. |
SOURCE |
principal.hostname , principal.asset.hostname |
El valor de SOURCE del registro sin procesar, combinado con DOMAIN si SOURCE no contiene una parte de dominio, se asigna a estos campos de UDM. También asigna el valor true a has_principal_host . |
TIME_GENERATED |
metadata.event_timestamp.seconds |
El valor de TIME_GENERATED del registro sin procesar se usa como marca de tiempo del evento. |
UNIQUE_ID |
metadata.product_log_id |
El valor de UNIQUE_ID del registro sin procesar se asigna a este campo de UDM. |
USERNAME |
principal.user.userid |
El valor de USERNAME del registro sin procesar se asigna a este campo de UDM si ACCOUNT_NAME no está presente. |
USER_OU_GUID |
metadata.product_log_id |
El valor de USER_OU_GUID del registro sin procesar, después de quitar las llaves, se asigna a este campo de UDM si UNIQUE_ID no está presente. |
access_mode |
security_result.detection_fields.value |
El valor de access_mode del registro sin procesar se asigna a este campo de UDM, y la clave se define como ACCESS_MODE . |
action_name |
security_result.description |
El valor de action_name del registro sin procesar se asigna a este campo de UDM. |
domain_name |
principal.administrative_domain |
El valor de domain_name del registro sin procesar se asigna a este campo de UDM. |
event.idm.read_only_udm.extensions.auth.mechanism |
event.idm.read_only_udm.extensions.auth.mechanism |
Su valor debe ser USERNAME_PASSWORD si login_name está presente o si event_type es USER_LOGIN . |
event.idm.read_only_udm.extensions.auth.type |
event.idm.read_only_udm.extensions.auth.type |
Su valor debe ser MACHINE si login_name está presente o si event_type es USER_LOGIN . |
event.idm.read_only_udm.metadata.event_type |
event.idm.read_only_udm.metadata.event_type |
Determinado por el analizador en función de los valores de ALERT_PROFILE , REPORT_PROFILE y FORMAT_MESSAGE . Puede ser uno de varios valores, como 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 o STATUS_UPDATE . |
event.idm.read_only_udm.metadata.log_type |
event.idm.read_only_udm.metadata.log_type |
Siempre debe tener el valor ADAUDIT_PLUS . |
event.idm.read_only_udm.metadata.product_name |
event.idm.read_only_udm.metadata.product_name |
Siempre debe tener el valor ADAudit Plus . |
event.idm.read_only_udm.metadata.vendor_name |
event.idm.read_only_udm.metadata.vendor_name |
Siempre debe tener el valor Zoho Corporation . |
host |
principal.hostname , principal.asset.hostname |
El valor de host del registro sin procesar se asigna a estos campos de UDM. También asigna el valor true a has_principal_host . |
intermediary.hostname , intermediary.asset.hostname |
intermediary.hostname , intermediary.asset.hostname |
Asigna el valor loggerHost . |
principalHost |
principal.hostname , principal.asset.hostname |
El valor de principalHost del registro sin procesar se asigna a estos campos de UDM después de comprobar si es una IP. También asigna el valor true a has_principal_host . |
security_result.action |
security_result.action |
Su valor debe ser ALLOW si outcome o msg_data_2 contienen Success , o si FORMAT_MESSAGE contiene Status:Success . Asigna el valor BLOCK si status contiene denied , locked out , incorrect , does not meet o Unable to validate . Su valor debe ser BLOCK si ALERT_PROFILE es Logon Failures for Admin Users . |
security_result.category |
security_result.category |
Asigna el valor POLICY_VIOLATION si event_type es USER_STATS o si ALERT_PROFILE es Logon Failures for Admin Users . |
security_result.rule_name |
security_result.rule_name |
Se extrae del campo FORMAT_MESSAGE si contiene Reason: . |
status |
security_result.summary |
El valor de status del registro sin procesar se asigna a este campo de UDM. |
targetHost |
target.hostname , target.asset.hostname o target.ip , target.asset.ip |
El valor de targetHost del registro sin procesar se asigna a estos campos de UDM después de comprobar si es una IP. |
targetUser |
target.user.userid |
El valor de targetUser del registro sin procesar se asigna a este campo de UDM. |
_CNtargetUser |
target.user.user_display_name |
El valor de _CNtargetUser del registro sin procesar se asigna a este campo de UDM. |
_user |
principal.user.userid o target.user.userid |
El valor de _user del registro sin procesar se asigna a principal.user.userid , a menos que event_type sea USER_CHANGE_PASSWORD , en cuyo caso se asigna a target.user.userid . |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.