Recoger registros de ManageEngine ADAudit Plus

Disponible en:

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

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recogida.
  3. 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

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. 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

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el siguiente comando:

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

Instalación de Linux

  1. Abre un terminal con privilegios de superusuario o sudo.
  2. 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

Configurar el agente de BindPlane para ingerir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:

    1. 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.
    2. Abre el archivo con un editor de texto (por ejemplo, nano, vi o Bloc de notas).
  2. 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
    
  3. Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.

  4. Sustituye <customer_id> por el ID de cliente real.

  5. 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

  1. Inicia sesión en la interfaz de usuario web de ManageEngine ADAudit Plus.
  2. Ve a Administrar > Configuración > Integración de SIEM.
  3. Selecciona Habilitar para enviar los registros de ADAudit Plus.
  4. Seleccione el formato ArcSight (CEF).
  5. 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).
  6. 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.