Recopila registros de VMware ESXi
Descripción general
Este analizador extrae campos de los registros de syslog y de formato JSON de VMware ESXi. Normaliza la variedad de formatos de registro de ESXi en una estructura común y, luego, propaga los campos de la UDM según los valores extraídos, lo que incluye el manejo de casos específicos para diferentes servicios de ESXi, como crond, named y sshd, con archivos de inclusión.
Antes de comenzar
- Asegúrate de tener una instancia de Google SecOps.
- Asegúrate de tener acceso con privilegios a VMWare ESX.
- 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: 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
Permite la regla de firewall de syslog de ESXi
- Ve a Herramientas de redes > Reglas de firewall.
- Busca syslog en la columna Nombre.
- Haz clic en Editar la configuración.
- Actualiza el puerto
tcp
oudp
que configuraste en BindPlane. - Haz clic en Guardar.
- Mantén seleccionada la línea de syslog.
- Selecciona Acciones > Habilitar.
Cómo exportar Syslog desde VMware ESXi con el cliente de vSphere
- Accede a tu host ESXi con el cliente de vSphere.
- Ve a Administrar > Sistema > Configuración avanzada.
- Busca la clave Syslog.global.logHost en la lista.
- Selecciona la clave y haz clic en Editar opción.
- Ingresa
<protocol>://<destination_IP>:<port>
- Reemplaza
<protocol>
portcp
(si configuraste BindPlane para usar UDP, escribeudp
). - Reemplaza
<destination_IP>
por la dirección IP de tu agente de BindPlane. - Reemplaza
<port>
por el puerto configurado anteriormente en BindPlane.
- Reemplaza
- Haz clic en Guardar.
Opcional: Exporta Syslog desde VMware ESXi con SSH
- Conéctate a tu host ESXi con SSH.
- Usa el comando
esxcli system syslog config set --loghost=<protocol>://<destination_IP>:<port>
.- Reemplaza
<protocol>
portcp
(si configuraste BindPlane para usar UDP, escribeudp
). - Reemplaza
<destination_IP>
por la dirección IP de tu agente de BindPlane. - Reemplaza
<port>
por el puerto configurado anteriormente en BindPlane.
- Reemplaza
- Para reiniciar el servicio de syslog, ingresa el comando
/etc/init.d/syslog restart
.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
@fields.alias |
event.idm.read_only_udm.principal.cloud.project.alias |
Se asigna directamente desde el campo @fields.alias del registro JSON. |
@fields.company_name |
event.idm.read_only_udm.principal.user.company_name |
Se asigna directamente desde el campo @fields.company_name del registro JSON. |
@fields.facility |
event.idm.read_only_udm.principal.resource.type |
Se asigna directamente desde el campo @fields.facility del registro JSON. |
@fields.host |
event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
Se asigna directamente desde el campo @fields.host del registro JSON. |
@fields.privatecloud_id |
event.idm.read_only_udm.principal.cloud.project.id |
Se asigna directamente desde el campo @fields.privatecloud_id del registro JSON. |
@fields.privatecloud_name |
event.idm.read_only_udm.principal.cloud.project.name |
Se asigna directamente desde el campo @fields.privatecloud_name del registro JSON. |
@fields.procid |
event.idm.read_only_udm.principal.process.pid |
Se asigna directamente desde el campo @fields.procid del registro JSON. |
@fields.region_id |
event.idm.read_only_udm.principal.location.country_or_region |
Se asigna directamente desde el campo @fields.region_id del registro JSON. |
@fields.severity |
event.idm.read_only_udm.security_result.severity |
Se asigna desde el campo @fields.severity del registro JSON. Si el valor es "info" o similar, se asigna a "INFORMATIONAL". |
@timestamp |
event.idm.read_only_udm.metadata.event_timestamp |
Se analiza y se convierte en un objeto de marca de tiempo del campo @timestamp del registro con el filtro date . |
adapter |
event.idm.read_only_udm.target.resource.name |
Se asignan directamente desde el campo adapter del registro sin procesar. |
action |
event.idm.read_only_udm.security_result.action |
Se asignan directamente desde el campo action del registro sin procesar. Se usan valores como "ALLOW" y "BLOCK". |
action |
event.idm.read_only_udm.security_result.action_details |
Se asignan directamente desde el campo action del registro sin procesar. Se usan valores como "Redirect". |
administrative_domain |
event.idm.read_only_udm.principal.administrative_domain |
Se asignan directamente desde el campo administrative_domain del registro sin procesar. |
agent.hostname |
event.idm.read_only_udm.intermediary.hostname |
Se asigna directamente desde el campo agent.hostname del registro JSON. |
agent.id |
event.idm.read_only_udm.intermediary.asset.id |
Se asigna directamente desde el campo agent.id del registro JSON. |
agent.name |
event.idm.read_only_udm.intermediary.asset.name |
Se asigna directamente desde el campo agent.name del registro JSON. |
agent.type |
event.idm.read_only_udm.intermediary.asset.type |
Se asigna directamente desde el campo agent.type del registro JSON. |
agent.version |
event.idm.read_only_udm.intermediary.asset.version |
Se asigna directamente desde el campo agent.version del registro JSON. |
app_name |
event.idm.read_only_udm.principal.application |
Se asignan directamente desde el campo app_name del registro sin procesar. |
app_protocol |
event.idm.read_only_udm.network.application_protocol |
Se asignan directamente desde el campo app_protocol del registro sin procesar. Si el valor coincide con "http" (sin distinción entre mayúsculas y minúsculas), se asigna a "HTTP". |
application |
event.idm.read_only_udm.principal.application |
Se asigna directamente desde el campo program del registro JSON. |
cmd |
event.idm.read_only_udm.target.process.command_line |
Se asignan directamente desde el campo cmd del registro sin procesar. |
collection_time |
event.idm.read_only_udm.metadata.event_timestamp |
Los nanosegundos del campo collection_time se agregan a los segundos del campo collection_time para crear el event_timestamp . |
data |
event.idm.read_only_udm.metadata.description |
Se analiza el mensaje de registro sin procesar y se extraen las partes relevantes para propagar el campo de descripción. |
descrip |
event.idm.read_only_udm.metadata.description |
Se asignan directamente desde el campo descrip del registro sin procesar. |
dns.answers.data |
event.idm.read_only_udm.network.dns.answers.data |
Se asigna directamente desde el campo dns.answers.data del registro JSON. |
dns.answers.ttl |
event.idm.read_only_udm.network.dns.answers.ttl |
Se asigna directamente desde el campo dns.answers.ttl del registro JSON. |
dns.answers.type |
event.idm.read_only_udm.network.dns.answers.type |
Se asigna directamente desde el campo dns.answers.type del registro JSON. |
dns.questions.name |
event.idm.read_only_udm.network.dns.questions.name |
Se asigna directamente desde el campo dns.questions.name del registro JSON. |
dns.questions.type |
event.idm.read_only_udm.network.dns.questions.type |
Se asigna directamente desde el campo dns.questions.type del registro JSON. |
dns.response |
event.idm.read_only_udm.network.dns.response |
Se asigna directamente desde el campo dns.response del registro JSON. |
ecs.version |
event.idm.read_only_udm.metadata.product_version |
Se asigna directamente desde el campo ecs.version del registro JSON. |
event_message |
event.idm.read_only_udm.metadata.description |
Se asigna directamente desde el campo event_message del registro JSON. |
event_metadata |
event.idm.read_only_udm.principal.process.product_specific_process_id |
El campo event_metadata se analiza para extraer el valor opID , que luego se antepone con "opID:" y se asigna a la UDM. |
event_type |
event.idm.read_only_udm.metadata.event_type |
Se asigna directamente desde el campo event_type del registro JSON. |
filepath |
event.idm.read_only_udm.target.file.full_path |
Se asignan directamente desde el campo filepath del registro sin procesar. |
fields.company_name |
event.idm.read_only_udm.principal.user.company_name |
Se asigna directamente desde el campo fields.company_name del registro JSON. |
fields.facility |
event.idm.read_only_udm.principal.resource.type |
Se asigna directamente desde el campo fields.facility del registro JSON. |
fields.host |
event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
Se asigna directamente desde el campo fields.host del registro JSON. |
fields.privatecloud_id |
event.idm.read_only_udm.principal.cloud.project.id |
Se asigna directamente desde el campo fields.privatecloud_id del registro JSON. |
fields.privatecloud_name |
event.idm.read_only_udm.principal.cloud.project.name |
Se asigna directamente desde el campo fields.privatecloud_name del registro JSON. |
fields.procid |
event.idm.read_only_udm.principal.process.pid |
Se asigna directamente desde el campo fields.procid del registro JSON. |
fields.region_id |
event.idm.read_only_udm.principal.location.country_or_region |
Se asigna directamente desde el campo fields.region_id del registro JSON. |
fields.severity |
event.idm.read_only_udm.security_result.severity |
Se asigna desde el campo fields.severity del registro JSON. Si el valor es "info" o similar, se asigna a "INFORMATIONAL". |
host.architecture |
event.idm.read_only_udm.principal.asset.architecture |
Se asigna directamente desde el campo host.architecture del registro JSON. |
host.containerized |
event.idm.read_only_udm.principal.asset.containerized |
Se asigna directamente desde el campo host.containerized del registro JSON. |
host.hostname |
event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
Se asigna directamente desde el campo host.hostname del registro JSON. |
host.id |
event.idm.read_only_udm.principal.asset.id |
Se asigna directamente desde el campo host.id del registro JSON. |
host.ip |
event.idm.read_only_udm.principal.ip , event.idm.read_only_udm.principal.asset.ip |
Se asigna directamente desde el campo host.ip del registro JSON. |
host.mac |
event.idm.read_only_udm.principal.mac , event.idm.read_only_udm.principal.asset.mac |
Se asigna directamente desde el campo host.mac del registro JSON. |
host.name |
event.idm.read_only_udm.principal.asset.name |
Se asigna directamente desde el campo host.name del registro JSON. |
host.os.codename |
event.idm.read_only_udm.principal.asset.os.codename |
Se asigna directamente desde el campo host.os.codename del registro JSON. |
host.os.family |
event.idm.read_only_udm.principal.asset.os.family |
Se asigna directamente desde el campo host.os.family del registro JSON. |
host.os.kernel |
event.idm.read_only_udm.principal.asset.os.kernel |
Se asigna directamente desde el campo host.os.kernel del registro JSON. |
host.os.name |
event.idm.read_only_udm.principal.asset.os.name |
Se asigna directamente desde el campo host.os.name del registro JSON. |
host.os.platform |
event.idm.read_only_udm.principal.asset.os.platform |
Se asigna directamente desde el campo host.os.platform del registro JSON. |
host.os.version |
event.idm.read_only_udm.principal.asset.os.version |
Se asigna directamente desde el campo host.os.version del registro JSON. |
iporhost |
event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
Se asignan directamente desde el campo iporhost del registro sin procesar. |
iporhost |
event.idm.read_only_udm.principal.ip |
Se asigna directamente desde el campo iporhost del registro sin procesar si es una dirección IP. |
iporhost1 |
event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
Se asignan directamente desde el campo iporhost1 del registro sin procesar. |
kv_data1 |
event.idm.read_only_udm.principal.process.product_specific_process_id |
El campo kv_data1 se analiza para extraer el valor opID o sub , que luego se antepone con "opID:" o "sub:", respectivamente, y se asigna a la UDM. |
kv_msg |
event.idm.read_only_udm.additional.fields |
El campo kv_msg se analiza como pares clave-valor y se agrega al array additional_fields en la UDM. |
kv_msg1 |
event.idm.read_only_udm.additional.fields |
El campo kv_msg1 se analiza como pares clave-valor y se agrega al array additional_fields en la UDM. |
lbdn |
event.idm.read_only_udm.target.hostname |
Se asignan directamente desde el campo lbdn del registro sin procesar. |
log.source.address |
event.idm.read_only_udm.observer.hostname |
Se asigna directamente desde el campo log.source.address del registro JSON y solo se toma la parte del nombre de host. |
log_event.original |
event.idm.read_only_udm.metadata.description |
Se asigna directamente desde el campo event.original del registro JSON. |
log_level |
event.idm.read_only_udm.security_result.severity_details |
Se asigna directamente desde el campo log_level del registro JSON. |
logstash.collect.host |
event.idm.read_only_udm.observer.hostname |
Se asigna directamente desde el campo logstash.collect.host del registro JSON. |
logstash.collect.timestamp |
event.idm.read_only_udm.metadata.ingested_timestamp |
Se analiza y se convierte en un objeto de marca de tiempo del campo logstash.collect.timestamp del registro con el filtro date . |
logstash.ingest.host |
event.idm.read_only_udm.intermediary.hostname |
Se asigna directamente desde el campo logstash.ingest.host del registro JSON. |
logstash.ingest.timestamp |
event.idm.read_only_udm.metadata.ingested_timestamp |
Se analiza y se convierte en un objeto de marca de tiempo del campo logstash.ingest.timestamp del registro con el filtro date . |
logstash.process.host |
event.idm.read_only_udm.intermediary.hostname |
Se asigna directamente desde el campo logstash.process.host del registro JSON. |
logstash.process.timestamp |
event.idm.read_only_udm.metadata.ingested_timestamp |
Se analiza y se convierte en un objeto de marca de tiempo del campo logstash.process.timestamp del registro con el filtro date . |
log_type |
event.idm.read_only_udm.metadata.log_type |
Se asignan directamente desde el campo log_type del registro sin procesar. |
message |
event.idm.read_only_udm.metadata.description |
Se asigna directamente desde el campo message del registro JSON. |
message_to_process |
event.idm.read_only_udm.metadata.description |
Se asignan directamente desde el campo message_to_process del registro sin procesar. |
metadata.event_type |
event.idm.read_only_udm.metadata.event_type |
Se establece en "GENERIC_EVENT" inicialmente y, luego, es posible que se reemplace en función del service analizado o de otro contenido de registro. Pueden ser valores como PROCESS_LAUNCH , NETWORK_CONNECTION , USER_LOGIN , etcétera. |
metadata.product_event_type |
event.idm.read_only_udm.metadata.product_event_type |
Se asignan directamente desde el campo process_id o prod_event_type del registro sin procesar. |
metadata.product_log_id |
event.idm.read_only_udm.metadata.product_log_id |
Se asignan directamente desde el campo event_id del registro sin procesar. |
metadata.product_name |
event.idm.read_only_udm.metadata.product_name |
Establece el valor en “ESX”. |
metadata.product_version |
event.idm.read_only_udm.metadata.product_version |
Se asigna directamente desde el campo version del registro JSON. |
metadata.vendor_name |
event.idm.read_only_udm.metadata.vendor_name |
Establece el valor en “VMWARE”. |
msg |
event.idm.read_only_udm.metadata.description |
Se asignan directamente desde el campo msg del registro sin procesar. |
network.application_protocol |
event.idm.read_only_udm.network.application_protocol |
Establece el valor en "DNS" si service es "named", "HTTPS" si el puerto es 443 o "HTTP" si app_protocol coincide con "http". |
network.direction |
event.idm.read_only_udm.network.direction |
Se determina a partir de palabras clave en el registro sin procesar, como "IN", "OUT", "->". Puede ser INBOUND o OUTBOUND . |
network.http.method |
event.idm.read_only_udm.network.http.method |
Se asignan directamente desde el campo method del registro sin procesar. |
network.http.parsed_user_agent |
event.idm.read_only_udm.network.http.parsed_user_agent |
Se analiza desde el campo useragent con el filtro convert . |
network.http.referral_url |
event.idm.read_only_udm.network.http.referral_url |
Se asignan directamente desde el campo prin_url del registro sin procesar. |
network.http.response_code |
event.idm.read_only_udm.network.http.response_code |
Se asigna directamente desde el campo status_code del registro sin procesar y se convierte en un número entero. |
network.http.user_agent |
event.idm.read_only_udm.network.http.user_agent |
Se asignan directamente desde el campo useragent del registro sin procesar. |
network.ip_protocol |
event.idm.read_only_udm.network.ip_protocol |
Se determina a partir de palabras clave en el registro sin procesar, como "TCP" o "UDP". |
network.received_bytes |
event.idm.read_only_udm.network.received_bytes |
Se asigna directamente desde el campo rec_bytes del registro sin procesar y se convierte en un número entero sin signo. |
network.sent_bytes |
event.idm.read_only_udm.network.sent_bytes |
Se extrae del campo message_to_process del registro sin procesar. |
network.session_id |
event.idm.read_only_udm.network.session_id |
Se asignan directamente desde el campo session del registro sin procesar. |
pid |
event.idm.read_only_udm.target.process.parent_process.pid |
Se asignan directamente desde el campo pid del registro sin procesar. |
pid |
event.idm.read_only_udm.principal.process.pid |
Se asigna directamente desde el campo pid del registro JSON. |
pid |
event.idm.read_only_udm.target.process.pid |
Se asignan directamente desde el campo pid del registro sin procesar. |
port |
event.idm.read_only_udm.target.port |
Se asigna directamente desde el campo port del registro JSON. |
principal.application |
event.idm.read_only_udm.principal.application |
Se asignan directamente desde el campo app_name o service del registro sin procesar. |
principal.asset.hostname |
event.idm.read_only_udm.principal.asset.hostname |
Se asignan directamente desde el campo principal_hostname o iporhost del registro sin procesar. |
principal.asset.ip |
event.idm.read_only_udm.principal.asset.ip |
Se asignan directamente desde el campo syslog_ip del registro sin procesar. |
principal.hostname |
event.idm.read_only_udm.principal.hostname |
Se asignan directamente desde el campo principal_hostname o iporhost del registro sin procesar. |
principal.ip |
event.idm.read_only_udm.principal.ip |
Se asignan directamente desde el campo iporhost o syslog_ip del registro sin procesar. |
principal.port |
event.idm.read_only_udm.principal.port |
Se asignan directamente desde el campo srcport del registro sin procesar. |
principal.process.command_line |
event.idm.read_only_udm.principal.process.command_line |
Se asignan directamente desde el campo cmd del registro sin procesar. |
principal.process.parent_process.pid |
event.idm.read_only_udm.principal.process.parent_process.pid |
Se asignan directamente desde el campo parent_pid del registro sin procesar. |
principal.process.pid |
event.idm.read_only_udm.principal.process.pid |
Se asignan directamente desde el campo process_id del registro sin procesar. |
principal.process.product_specific_process_id |
event.idm.read_only_udm.principal.process.product_specific_process_id |
Se extrae del campo message_to_process del registro sin procesar, que suele tener el prefijo "opID:". |
principal.url |
event.idm.read_only_udm.principal.url |
Se asignan directamente desde el campo prin_url del registro sin procesar. |
principal.user.company_name |
event.idm.read_only_udm.principal.user.company_name |
Se asigna directamente desde el campo fields.company_name del registro JSON. |
principal.user.userid |
event.idm.read_only_udm.principal.user.userid |
Se asignan directamente desde el campo USER del registro sin procesar. |
priority |
event.idm.read_only_udm.metadata.product_event_type |
Se asignan directamente desde el campo priority del registro sin procesar. |
program |
event.idm.read_only_udm.principal.application |
Se asigna directamente desde el campo program del registro JSON. |
qname |
event.idm.read_only_udm.network.dns.questions.name |
Se asignan directamente desde el campo qname del registro sin procesar. |
response_data |
event.idm.read_only_udm.network.dns.answers.data |
Se asignan directamente desde el campo response_data del registro sin procesar. |
response_rtype |
event.idm.read_only_udm.network.dns.answers.type |
Se asignan directamente desde el campo response_rtype del registro sin procesar. Se extrae el tipo de registro DNS numérico. |
response_ttl |
event.idm.read_only_udm.network.dns.answers.ttl |
Se asignan directamente desde el campo response_ttl del registro sin procesar. |
rtype |
event.idm.read_only_udm.network.dns.questions.type |
Se asignan directamente desde el campo rtype del registro sin procesar. Se extrae el tipo de registro DNS numérico. |
security_result.action |
event.idm.read_only_udm.security_result.action |
Se determina a partir de palabras clave o el estado en el registro sin procesar. Puede ser ALLOW o BLOCK . |
security_result.action_details |
event.idm.read_only_udm.security_result.action_details |
Se extrae del mensaje de registro sin procesar y proporciona más contexto sobre la acción que se realizó. |
security_result.category |
event.idm.read_only_udm.security_result.category |
Establece en POLICY_VIOLATION si el registro indica que coincide con una regla de firewall. |
security_result.description |
event.idm.read_only_udm.security_result.description |
Se extrae del mensaje de registro sin procesar y proporciona más contexto sobre el resultado de seguridad. |
security_result.rule_id |
event.idm.read_only_udm.security_result.rule_id |
Se asignan directamente desde el campo rule_id del registro sin procesar. |
security_result.severity |
event.idm.read_only_udm.security_result.severity |
Se determina a partir de palabras clave en el registro sin procesar, como "info", "warning", "error". Puede ser INFORMATIONAL , LOW , MEDIUM o HIGH . |
security_result.severity_details |
event.idm.read_only_udm.security_result.severity_details |
Se asignan directamente desde el campo severity o log.syslog.severity.name del registro sin procesar. |
security_result.summary |
event.idm.read_only_udm.security_result.summary |
Se extrae del mensaje de registro sin procesar y proporciona un resumen conciso del resultado de seguridad. |
service |
event.idm.read_only_udm.principal.application |
Se asignan directamente desde el campo service del registro sin procesar. |
source |
event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
Se asignan directamente desde el campo source del registro sin procesar. |
src.file.full_path |
event.idm.read_only_udm.src.file.full_path |
Se extrae del mensaje de registro sin procesar. |
src.hostname |
event.idm.read_only_udm.src.hostname |
Se asignan directamente desde el campo src.hostname del registro sin procesar. |
src_ip |
event.idm.read_only_udm.principal.ip |
Se asignan directamente desde el campo src_ip del registro sin procesar. |
src_mac_address |
event.idm.read_only_udm.principal.mac |
Se asignan directamente desde el campo src_mac_address del registro sin procesar. |
srcport |
event.idm.read_only_udm.principal.port |
Se asignan directamente desde el campo srcport del registro sin procesar. |
srcip |
event.idm.read_only_udm.principal.ip |
Se asignan directamente desde el campo srcip del registro sin procesar. |
subtype |
event.idm.read_only_udm.metadata.event_type |
Se asignan directamente desde el campo subtype del registro sin procesar. |
tags |
event.idm.read_only_udm.metadata.tags |
Se asigna directamente desde el campo tags del registro JSON. |
target.application |
event.idm.read_only_udm.target.application |
Se asignan directamente desde el campo target_application del registro sin procesar. |
target.file.full_path |
event.idm.read_only_udm.target.file.full_path |
Se extrae del mensaje de registro sin procesar. |
target.hostname |
event.idm.read_only_udm.target.hostname , event.idm.read_only_udm.target.asset.hostname |
Se asignan directamente desde el campo target_hostname o iporhost del registro sin procesar. |
target.ip |
event.idm.read_only_udm.target.ip |
Se asignan directamente desde el campo target_ip del registro sin procesar. |
target.mac |
event.idm.read_only_udm.target.mac |
Se asignan directamente desde el campo target_mac_address del registro sin procesar. |
target.port |
event.idm.read_only_udm.target.port |
Se asignan directamente desde el campo target_port del registro sin procesar. |
target.process.command_line |
event.idm.read_only_udm.target.process.command_line |
Se asignan directamente desde el campo cmd del registro sin procesar. |
target.process.parent_process.pid |
event.idm.read_only_udm.target.process.parent_process.pid |
Se asignan directamente desde el campo parent_pid del registro sin procesar. |
target.process.pid |
event.idm.read_only_udm.target.process.pid |
Se asignan directamente desde el campo pid del registro sin procesar. |
target.process.product_specific_process_id |
event.idm.read_only_udm.target.process.product_specific_process_id |
Se extrae del campo message_to_process del registro sin procesar, que suele tener el prefijo "opID:". |
target.resource.name |
event.idm.read_only_udm.target.resource.name |
Se asignan directamente desde el campo adapter del registro sin procesar. |
target.resource.resource_type |
event.idm.read_only_udm.target.resource.resource_type |
Establece en VIRTUAL_MACHINE si el registro indica una operación de VM. |
target.resource.type |
event.idm.read_only_udm.target.resource.type |
Se establece en SETTING si el registro indica una modificación de configuración. |
target.user.userid |
event.idm.read_only_udm.target.user.userid |
Se asignan directamente desde el campo target_username o user1 del registro sin procesar. |
timestamp |
event.timestamp |
Se analiza y se convierte en un objeto de marca de tiempo del campo timestamp o data del registro con el filtro date . |
type |
event.idm.read_only_udm.additional.fields |
El campo type del registro se agrega al array additional_fields en la UDM con la clave "LogType". |
user1 |
event.idm.read_only_udm.target.user.userid |
Se asignan directamente desde el campo user1 del registro sin procesar. |
useragent |
event.idm.read_only_udm.network.http.user_agent |
Se asignan directamente desde el campo useragent del registro sin procesar. |
vmw_cluster |
event.idm.read_only_udm.target.resource.name |
Se asignan directamente desde el campo vmw_cluster del registro sin procesar. |
vmw_datacenter |
event.idm.read_only_udm.target.resource.name |
Se asignan directamente desde el campo vmw_datacenter del registro sin procesar. |
vmw_host |
event.idm.read_only_udm.target.ip |
Se asignan directamente desde el campo vmw_host del registro sin procesar. |
vmw_object_id |
event.idm.read_only_udm.target.resource.id |
Se asignan directamente desde el campo vmw_object_id del registro sin procesar. |
vmw_product |
event.idm.read_only_udm.target.application |
Se asignan directamente desde el campo vmw_product del registro sin procesar. |
vmw_vcenter |
event.idm.read_only_udm.target.cloud.availability_zone |
Se asignan directamente desde el campo vmw_vcenter del registro sin procesar. |
vmw_vcenter_id |
event.idm.read_only_udm.target.cloud.availability_zone.id |
Se asignan directamente desde el campo vmw_vcenter_id del registro sin procesar. |
vmw_vr_ops_appname |
event.idm.read_only_udm.target.application |
Se asignan directamente desde el campo vmw_vr_ops_appname del registro sin procesar. |
vmw_vr_ops_clustername |
event.idm.read_only_udm.target.resource.name |
Se asignan directamente desde el campo vmw_vr_ops_clustername del registro sin procesar. |
vmw_vr_ops_clusterrole |
event.idm.read_only_udm.target.resource.type |
Se asignan directamente desde el campo vmw_vr_ops_clusterrole del registro sin procesar. |
Cambios
2024-06-03
- Se agregó compatibilidad con un nuevo patrón de registros JSON.
2024-05-09
- Se agregó compatibilidad con el nuevo patrón de registros “snmpd” y “Rhttpproxy”.
- Se asignó "prod_event_type" a "metadata.product_event_type".
- Se asignó "context" a "additional.fields".
2024-02-07
- Corrección de errores:
- Se agregaron nuevos patrones de Grok para admitir los registros de SYSLOG que se descartan.
- Se asignaron "newVersion" y "filter" a "security_result.detection_fields".
- Se asignó "description" a "security_result.description".
2023-10-10
- Se modificaron los siguientes nombres de claves JSON con la función gsub:
- "service" a "serv".
- "event" a "log_event".
- De "@timestamp" a "timestamp".
- De "@version" a "version".
- Se agregaron nuevos patrones de Grok para controlar los registros JSON con campos nuevos.
- Se hizo coincidir el campo "timestamp" con los formatos "RFC 3339" y "TIMESTAMP_ISO8601".
- Se asignó "host.hostname" a "principal.hostname".
- Se asignó "host.ip" a "principal.ip".
- Se asignaron "type", "serv.type", "log.syslog.facility.code", "log.syslog.facility.name", "log.syslog.severity.code", "log.syslog.severity.name" y "log.syslog.priority" a "additional.fields".
- Se asignó "process.name" a "service".
- Se asignó "version" a "metadata.product_version".
- Se asignó "severity" a "security_result.severity".
2023-09-25
- Se agregaron nuevos patrones de Grok para controlar el nuevo tipo de SYSLOG para VMware ESXi.
- Se asignó "app_name" a "principal.application".
- Se asignó "severity" a "security_result.severity".
2023-07-17
- Bug_fix: Se asignó "username" a "target.user.userid".
- Se asignó "pid" a "principal.process.pid".
- Se asignó "description" a "metadata.description".
12-06-2023
- Bug_fix: Se modificó la asignación de "session" para el tipo "vmauthd". Se asignó a "network.session_id".
2022-09-01
- Bug_fix: Se quitó el espacio de nombres principal de su valor hard-coded.
2022-08-24
- Mejora: Se agregó un nuevo tipo de fecha para analizar fechas con el formato "aaaa-mm-ddHH:mm:s".
2022-08-03
- Mejora: Se agregaron los patrones de Grok para controlar los registros con el servicio :- hostd, vmon y vrops.
2022-07-26
- Mejora:
- Donde "service" es igual a "Rhttpproxy"
- Se modificó la asignación de "principal.namespace" de "namespace" a "WALMART".
- Se asignó "namespace" a "additional.fields".
- Donde "service" es igual a "crond"
- Se asignó "parent_pid" a "target.process.parent_process.pid".
2022-07-05
- Se corrigió un error: Se actualizó el analizador para que coincida con la marca de tiempo en el formato “aaaa-MM-ddThh:mm:ss.SSSS”.
2022-06-13
- Mejora: Se modificaron o agregaron los patrones de Grok para controlar los registros con el servicio: hostd, sendmail, sshd, sudo, vmcad, vmon, vpxd y vrops.
- Se corrigió el error "metadata.event_type" para los registros de "vmauthd" de "USER_LOGIN" a "GENERIC_EVENT".
2022-05-02
- Se corrigió un error: Según el requisito del usuario, la asignación de target.hostname cambió a principal.ip para los registros que tienen el servicio como "Hostd".
2022-04-13
- Mejora: Se analizaron los registros con los siguientes nombres de servicio: hostd-probe, vmkernel, vmkwarning, Fdm, netcpa, root, hpHelper, snmpd, etcétera.
- Se asignó logstash.ingest.timestamp a metadata.ingested_timestamp.
- logstash.ingest.host y logstash.process.host a intermediary.hostname
- logstash.collect.host a observer.hostname.