Recopila registros de Nutanix Prism
Descripción general
Este analizador procesa los registros de Nutanix Prism y controla los formatos JSON y syslog. Extrae campos de varias estructuras de registro, los normaliza en la UDM y enriquece los datos con contexto adicional, como información del usuario, detalles de la red y gravedad de la seguridad. El analizador también realiza acciones específicas según el método HTTP y el nivel de registro, y clasifica los eventos en tipos de eventos de la AUA, como USER_LOGIN, STATUS_UPDATE y GENERIC_EVENT.
Antes de comenzar
- Asegúrate de tener una instancia de Google SecOps.
- Asegúrate de tener acceso con privilegios a Nutanix Prism Central.
- Asegúrate de tener un host de Windows 2012 SP2 o una versión posterior, o bien Linux con systemd.
- Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia.
Obtén el ID de cliente de Google SecOps
- Accede a 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.
Instala el agente de BindPlane
- Para la instalación de Windows, ejecuta la siguiente secuencia de comandos:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
. - Para la instalación de Linux, ejecuta la siguiente secuencia de comandos:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
. - Puedes encontrar opciones de instalación adicionales en esta guía de instalación.
Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps
- Accede a la máquina en la que está instalado BindPlane.
Edita el archivo
config.yaml
de la siguiente manera:receivers: tcplog: # Replace the below port <54525> and IP (0.0.0.0) with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: Namespace raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Reinicia el agente de BindPlane para aplicar los cambios con el siguiente comando:
sudo systemctl bindplane restart
Cómo exportar Syslog desde Nutanix Prism
- Accede a Prism Central con una cuenta con privilegios.
- Selecciona Prism Central Settings en el menú.
- Ve a Servidor de Syslog.
- Haz clic en + Configure Syslog Server.
- Especifica valores para los parámetros de entrada en el diálogo Servidores de Syslog:
- Nombre del servidor: Ingresa un nombre para el servidor (por ejemplo, Servidor de BindPlane de SecOps de Google).
- Dirección IP: Ingresa la IP de tu agente de BindPlane.
- Puerto: Ingresa el puerto en el que escucha el agente de BindPlane.
- Protocolo de transporte: Selecciona TCP.
- Haz clic en Configurar.
- Haz clic en + Editar en la opción Fuentes de datos.
- Especifica los valores para los parámetros de entrada en el diálogo Fuentes de datos y nivel de gravedad correspondiente:
- Selecciona Auditoría de API, Auditoría y Flujo.
- Establece el nivel de gravedad para cada uno en 6: Informativo.
- Haz clic en Guardar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
@timestamp |
metadata.event_timestamp |
La marca de tiempo del evento se analiza a partir del campo @timestamp . Se admiten los formatos yyyy-MM-dd HH:mm:ss.SSS , yyyy-MM-ddTHH:mm:ssZ y ISO8601 . |
agent.id |
observer.asset_id |
Se combina con agent.type para formar el ID del recurso de observador en el formato "agent.type:agent.id". |
agent.type |
observer.application |
Es la aplicación que se usa para la observación. |
agent.version |
observer.platform_version |
Es la versión de la aplicación del observador. |
alertUid |
security_result.detection_fields.value |
El valor del UID de la alerta se asigna al campo value dentro de detection_fields . El key se establece en "Alert Uid". |
api_version |
metadata.product_version |
La versión de la API. |
clientIp |
principal.ip , principal.asset.ip |
Dirección IP del cliente. |
client_type |
principal.labels.value |
Es el valor del tipo de cliente. El key se establece en "client_type". |
defaultMsg |
metadata.description |
El mensaje predeterminado. |
entity_uuid |
metadata.product_log_id |
UUID de la entidad. |
http_method |
network.http.method |
El método HTTP. Se convierte en mayúsculas. |
host.architecture |
principal.asset.hardware.cpu_platform |
La arquitectura del host |
host.id |
principal.asset_id |
Debe tener el prefijo "NUTANIX:" para crear el ID del activo principal. |
host.ip |
principal.ip , principal.asset.ip |
Dirección IP del host. |
host.mac |
principal.mac |
Dirección MAC del host |
host.os.kernel |
principal.platform_patch_level |
Es la versión del kernel del sistema operativo del host. |
host.os.platform |
principal.platform |
Es la plataforma del sistema operativo del host. Se asigna a LINUX , WINDOWS , MAC o UNKNOWN_PLATFORM . |
host.os.version |
principal.platform_version |
Es la versión del sistema operativo del host. |
input.type |
network.ip_protocol |
El protocolo de red Se asignan a "UDP" o "TCP". |
log.source.address |
principal.ip , principal.asset.ip , principal.port |
Se analiza para extraer la IP y el puerto de origen. |
logstash.collect.host |
observer.ip |
La dirección IP del recopilador de Logstash. |
logstash.collect.timestamp |
metadata.collected_timestamp |
Es la marca de tiempo del momento en que se recopiló el registro. |
logstash.ingest.host |
intermediary.hostname |
Es el nombre de host del servidor de transferencia de Logstash. |
logstash.ingest.timestamp |
metadata.ingested_timestamp |
Es la marca de tiempo cuando se transfirió el registro. |
logstash.irm_environment |
principal.labels.value |
El valor del entorno de irm. key se establece en "irm_environment". |
logstash.irm_region |
principal.labels.value |
Es el valor de la región de IRM. key se establece en "irm_region". |
logstash.irm_site |
principal.labels.value |
Es el valor del sitio de irm. key se establece en "irm_site". |
logstash.process.host |
intermediary.hostname |
Es el nombre de host del servidor de procesamiento de Logstash. |
operationType |
metadata.product_event_type |
El tipo de operación. |
originatingClusterUuid |
additional.fields.value.string_value |
El UUID del clúster de origen El key se establece en "Originating Cluster Uuid". |
params.mac_address |
target.mac |
La dirección MAC de los parámetros |
params.requested_ip_address |
target.ip , target.asset.ip |
La dirección IP solicitada de los parámetros |
params.vm_name |
target.resource.name |
El nombre de la VM de los parámetros |
program |
metadata.product_event_type |
Es el nombre del programa. |
rest_endpoint |
target.url |
El extremo de REST |
sessionId |
additional.fields.value.string_value |
El ID de la sesión. El key se establece en "ID de sesión". |
syslog_host |
principal.hostname , principal.asset.hostname |
Host de Syslog |
timestamp |
metadata.event_timestamp |
La marca de tiempo del evento. |
username |
principal.user.user_display_name o principal.user.userid |
Nombre de usuario. Se usa como ID de usuario si http_method es "POST". |
uuid |
metadata.product_log_id |
UUID |
N/A | metadata.vendor_name |
Se codifica de forma fija en "Nutanix_Prism". |
N/A | metadata.product_name |
Se codifica de forma fija en "Nutanix_Prism". |
N/A | metadata.event_type |
Se determina según la lógica del analizador en función de los valores de has_principal , has_target , audit_log , network_set y http_method . Puede ser GENERIC_EVENT , USER_LOGIN , STATUS_UPDATE , USER_RESOURCE_ACCESS , RESOURCE_CREATION , USER_RESOURCE_UPDATE_CONTENT o USER_RESOURCE_DELETION . |
N/A | metadata.log_type |
Está codificado de forma fija en "NUTANIX_PRISM". |
N/A | extensions.auth.type |
Se establece en "AUTHTYPE_UNSPECIFIED" si metadata.event_type es USER_LOGIN . |
N/A | security_result.severity |
Se determina según la lógica del analizador basada en log_level y syslog_pri . Puede ser CRITICAL , ERROR , HIGH , MEDIUM o INFORMATIONAL . |
Cambios
2024-02-21
- Cuando "inner_message" no esté vacío y "not_json" sea "true", establece "audit_log" en "true" para admitir registros JSON abandonados.
- Se alinearon las asignaciones de "principal.ip" y "principal.asset.ip".
- Se alinearon las asignaciones "target.ip" y "target.asset.ip".
- Se alinearon las asignaciones de "principal.hostname" y "principal.asset.hostname".
- Cuando "network_set" sea "false", "has_principal" sea "true", "has_target" sea "false" y "audit_log" sea "false", establece "metadata.event_type" en "STATUS_UPDATE".
- Cuando "network_set" sea "true", "has_principal" sea "true", "has_target" sea "false" y "audit_log" sea "false", establece "metadata.event_type" en "GENERIC_EVENT".
2024-01-12
- Se agregó compatibilidad con el nuevo formato de registros de syslog.
- Se agregó una verificación condicional nula antes de asignar "logstash.ingest.host" a "intermediary.hostname".
- Se agregó una verificación condicional nula antes de asignar "logstash.process.host" a "intermediary.hostname".
- Se agregó una verificación condicional nula antes de asignar "logstash.collect.host" a "observer.ip".
2023-12-23
- Se agregó compatibilidad con un nuevo tipo de registros de auditoría.
- Se agregaron nuevos patrones de Grok para analizar registros SYSLOG+JSON.
- Se asignaron "affectedEntityList" y "alertUid" a "security_result.detection_fields".
- Se asignaron "clientIp" y "params.requested_ip_address" a "principal.ip".
- Se asignó "defaultMsg" a "metadata.description".
- Se asignó "operationType" a "metadata.product_event_type".
- Se asignaron "originatingClusterUuid" y "sessionId" a "additional.fields".
- Se asignó "params.mac_address" a "principal.mac".
- Se asignó "uuid" a "metadata.product_log_id".
- Se asignó "userName" a "principal.user.user_display_name".
- Se asignó "params.vm_name" a "target.resource.name".
2023-01-23
- Se asignó "logstash.ingest.host" a "intermediary[0].hostname" en lugar de "observer.hostname".
- Se asignó "logstash.collect.host" a "observer.ip".
- Se agregó la verificación de nulo para "logstash.ingest.host".
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.