Recoger registros de ForgeRock OpenAM
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
- 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
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
- 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 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
- 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_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
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 el registro de auditoría en Forgerock OpenAM
- Inicia sesión en la consola AM.
- Vaya a Configurar > Servicios globales > Registro de auditoría.
- Activa el registro de auditoría para iniciar la función.
- 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.
- Haz clic en Guardar.
Configurar controladores Syslog para Forgerock OpenAM
- Inicia sesión en la consola de AM como administrador (por ejemplo, amAdmin).
- Para crear el controlador de eventos en la configuración global, vaya a Configurar > Servicios globales > Registro de auditoría.
- Para crear el controlador de eventos en un realm, ve a Realms > Nombre del realm > Servicios > Registro de auditoría.
- Haga clic en Añadir una configuración secundaria > Syslog.
- 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.
- Nombre: introduce un nombre para el controlador de eventos (por ejemplo, Google SecOps
- Haz clic en Crear.
- Una vez creado el controlador de eventos de auditoría de syslog, aparecen varias pestañas de configuración.
- En la pestaña General Handler Configuration (Configuración general del controlador), selecciona Enabled (Habilitado) para activar el controlador de eventos, si está inhabilitado.
- Selecciona los temas de los registros de auditoría:
- Acceso
- Actividad
- Autenticación
- Configuración
- Haz clic en Guardar.
- 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.
- Haz clic en Guardar.
En la pestaña Almacenamiento en búfer, selecciona Almacenamiento en búfer habilitado para activarlo.
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.