Recoger registros de ForgeRock OpenAM

Disponible en:

En este documento se explica cómo ingerir registros de ForgeRock OpenAM en Google Security Operations mediante Bindplane. El analizador extrae campos de los registros en formato CSV, Syslog + KV o JSON, los normaliza y los asigna al modelo de datos unificado (UDM). Gestiona varios tipos de eventos de OpenAM, como inicios y cierres de sesión, resultados de acceso y registros generales, y enriquece los datos con información de usuarios, grupos y redes. Además, realiza transformaciones específicas para diferentes formatos de registro y tipos de eventos. El analizador prioriza el análisis JSON, luego recurre a Syslog+KV y, por último, a CSV, descartando los registros de formatos no admitidos.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Windows 2016 o versiones posteriores, o un host Linux con systemd
  • Si se ejecuta a través de un proxy, los puertos del cortafuegos están abiertos
  • Acceso privilegiado a Forgerock OpenAM (por ejemplo, amAdmin)

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

Instala el agente de Bindplane en tu sistema operativo Windows o Linux siguiendo las instrucciones que se indican a continuación.

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

Para ver más opciones de instalación, consulta la guía de instalación.

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

  1. 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).
  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_file_path: '/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: 'OPENAM'
                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 el registro de auditoría en Forgerock OpenAM

  1. Inicia sesión en la consola AM.
  2. Vaya a Configurar > Servicios globales > Registro de auditoría.
  3. Activa el registro de auditoría para iniciar la función.
  4. En las listas Filtros de campos permitidos y Filtros de campos bloqueados, introduzca los valores que quiera incluir (lista de permitidos) o excluir (lista de bloqueados) de los registros de eventos de auditoría.
  5. Haz clic en Guardar.

Configurar controladores Syslog para Forgerock OpenAM

  1. Inicia sesión en la consola de AM como administrador (por ejemplo, amAdmin).
  2. Para crear el controlador de eventos en la configuración global, vaya a Configurar > Servicios globales > Registro de auditoría.
  3. Para crear el controlador de eventos en un realm, ve a Realms > Nombre del realm > Servicios > Registro de auditoría.
  4. Haga clic en Añadir una configuración secundaria > Syslog.
  5. Proporcione los siguientes detalles de configuración:
    • Nombre: introduce un nombre para el controlador de eventos (por ejemplo, Google SecOps Syslog Event Handler).
    • Nombre de host del servidor: introduce la dirección IP del agente de Bindplane.
    • Puerto del servidor: introduce el número de puerto del agente de Bindplane (por ejemplo, 514 para UDP).
    • Protocolo de transporte: selecciona UDP.
    • Tiempo de espera de conexión: introduce el número de segundos que se debe esperar para conectarse (por ejemplo, 120).
    • Opcional: Habilita la opción Búfer.
  6. Haz clic en Crear.
  7. Una vez creado el controlador de eventos de auditoría de syslog, aparecen varias pestañas de configuración.
  8. En la pestaña General Handler Configuration (Configuración general del controlador), selecciona Enabled (Habilitado) para activar el controlador de eventos, si está inhabilitado.
  9. Selecciona los temas de los registros de auditoría:
    • Acceso
    • Actividad
    • Autenticación
    • Configuración
  10. Haz clic en Guardar.
  11. En la pestaña Syslog Configuration (Configuración de Syslog), proporcione los siguientes detalles de configuración:
    • Nombre de host del servidor: introduce la dirección IP del agente de Bindplane.
    • Puerto del servidor: introduce el número de puerto del agente de Bindplane.
    • Tiempo de espera de conexión: introduce el número de segundos que se debe esperar para conectarse (por ejemplo, 120).
    • Protocolo de transporte: selecciona UDP.
    • Instalación: selecciona Local0.
    • En todos los temas, la gravedad es INFORMATIVA.
  12. Haz clic en Guardar.
  13. En la pestaña Almacenamiento en búfer, selecciona Almacenamiento en búfer habilitado para activarlo.

  14. Haz clic en Guardar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
client.ip principal.ip La dirección IP del cliente que hace la solicitud.
client.ip principal.asset.ip La dirección IP del recurso de cliente que hace la solicitud.
client.port principal.port El puerto que usa el cliente que hace la solicitud.
entries[0].info.authLevel principal.resource.resource_subtype Es el nivel de autenticación asociado al evento. Prefijado con "authLevel:".
entries[0].info.displayName security_result.description Nombre descriptivo del nodo en el árbol de autenticación.
entries[0].info.ipAddress principal.asset.ip Dirección IP asociada a la entidad principal del evento.
entries[0].info.ipAddress principal.ip Dirección IP asociada a la entidad principal del evento.
entries[0].info.nodeId principal.resource.id Identificador único del nodo en el árbol de autenticación. Prefijado con "nodeId:".
entries[0].info.nodeOutcome principal.resource.attribute.labels.value El resultado del nodo en el árbol de autenticación.
entries[0].info.nodeType principal.resource.type Tipo del nodo en el árbol de autenticación. Prefijado con "nodeType:".
entries[0].info.treeName principal.resource.name El nombre del árbol de autenticación. Prefijado con "treeName:".
eventName metadata.product_event_type Nombre del evento sin procesar de los registros de OpenAM.
http.request.headers.host[0] target.asset.hostname Nombre de host del servidor de destino, extraído del encabezado host.
http.request.headers.host[0] target.hostname Nombre de host del servidor de destino, extraído del encabezado host.
http.request.headers.user-agent[0] network.http.user_agent El user-agent de la solicitud HTTP.
http.request.method network.http.method Método HTTP utilizado en la solicitud.
http.request.path target.url Ruta de la URL de la solicitud HTTP.
info.failureReason security_result.summary El motivo por el que ha fallado la autenticación. Codificado como "SSO". Se determina mediante una lógica basada en eventName y otros campos. Puede ser GENERIC_EVENT, USER_LOGIN, USER_LOGOUT, NETWORK_HTTP o STATUS_UPDATE. Codificado como "OPENAM". Codificado como "OpenAM". Codificado como "ForgeRock".
principal target.user.userid El ID de usuario implicado en el evento, extraído de los campos userId, principal o runAs.
result security_result.action_details El resultado del evento (por ejemplo, "SUCCESSFUL", "FAILED").
response.detail.reason security_result.summary El motivo de un fallo en un evento de resultado de acceso.
response.status security_result.action_details Estado de la respuesta en un evento de resultado de acceso.
runAs target.user.userid El ID de usuario implicado en el evento, extraído de los campos userId, principal o runAs.
security_result.action security_result.action La acción que se ha llevado a cabo como resultado del evento de seguridad (por ejemplo, "ALLOW" o "BLOCK").
server.ip target.asset.ip La dirección IP del servidor de destino.
server.ip target.ip La dirección IP del servidor de destino.
server.port target.port El puerto del servidor de destino.
timestamp metadata.event_timestamp Marca de tiempo del evento.
trackingIds metadata.product_log_id Es el ID de seguimiento asociado al evento.
transactionId metadata.product_deployment_id ID de transacción asociado al evento.
userId target.user.userid El ID de usuario implicado en el evento, extraído de los campos userId, principal o runAs.
userId target.user.group_identifiers Los identificadores de grupo asociados al usuario.
am_group target.user.group_identifiers Los identificadores de grupo asociados al usuario.
am_user target.user.email_addresses La dirección de correo del usuario, si está presente en el campo am_user.
loginID[0] target.user.userid El ID de inicio de sesión usado en el evento.
loginID[0] target.user.email_addresses La dirección de correo electrónico utilizada para iniciar sesión, si está presente en el campo loginID.
hostip intermediary.hostname El nombre de host de un dispositivo intermediario.
hostip intermediary.ip La dirección IP de un dispositivo intermediario.
src_ip principal.asset.ip La dirección IP de origen.
src_ip principal.ip La dirección IP de origen.
desc metadata.description La descripción del evento.
payload metadata.description La carga útil del evento.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.