Recopila registros del interruptor Dell
Este analizador extrae registros del interruptor Dell, normaliza las marcas de tiempo y usa patrones de Grok para estructurar el mensaje de registro en pares clave-valor. Luego, asigna estos campos extraídos al modelo de datos unificado (UDM), controla varios formatos de registro y enriquece los datos con información contextual, como los detalles de los activos y la gravedad de la seguridad.
Antes de comenzar
- Asegúrate de tener una instancia de Google Security Operations.
- Asegúrate de usar Windows 2016 o una versión posterior, o un host de Linux con
systemd
. - Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
- Asegúrate de tener una conexión activa y credenciales de administrador para un switch Dell.
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. Guarda el archivo de forma segura en el sistema en el que se instalará BindPlane.
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
Instalación de Windows
- 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 una terminal con privilegios de raíz 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 obtener más opciones de instalación, consulta esta guía de instalación.
Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps
Accede al archivo de configuración:
- Ubica el archivo
config.yaml
. Por lo general, 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).
- Ubica el archivo
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: sell_switch raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.
Reemplaza
<customer_id>
por el ID de cliente real.Actualiza
/path/to/ingestion-authentication-file.json
a la ruta de acceso en la que se guardó el archivo de autenticación en la sección Obtén el archivo de autenticación de transferencia de Google SecOps.
Reinicia el agente de BindPlane para aplicar los cambios.
En Linux, para reiniciar el agente de BindPlane, ejecuta el siguiente comando:
sudo systemctl restart bindplane-agent
En Windows, para reiniciar el agente de BindPlane, puedes usar la consola Services o ingresar el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configura la exportación de Syslog desde un switch Dell
- Conéctate al switch Dell con SSH o el puerto de consola.
- Accede con credenciales de administrador.
Usa el siguiente comando para especificar la dirección IP o el nombre de host del servidor de syslog (reemplaza
<syslog_server_ip>
,<udp|tcp>
y<syslog-port-number>
por los detalles reales):logging host <syslog-server-ip> transport <udp|tcp> port <syslog-port-number>
Opcional: Define el nivel de gravedad mínimo para los mensajes que se enviarán al servidor de syslog. Por ejemplo, para registrar mensajes informativos y superiores, haz lo siguiente:
logging level informational
Guarda la configuración en ejecución en la configuración de inicio para garantizar que los cambios persistan en los reinicios:
copy running-config startup-config
Guarda la configuración:
write memory
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
acct |
principal.user.userid |
Se usa como userid si no está presente el campo user . |
addr |
principal.asset.ip , principal.ip |
Se analiza como una dirección IP y se usa para la IP del principal y la IP del activo si es una IP válida y diferente del nombre de host. |
application |
principal.application |
Se asignan directamente. |
asset |
principal.asset.attribute.labels.value |
Se asigna directamente al valor de la etiqueta de activo, con la clave codificada como "Nombre del activo". Si el campo del activo está vacío y el mensaje contiene "Dell", el activo se establece como "Dell". |
auid |
principal.resource.attribute.labels.value |
Se asignan directamente a una etiqueta con la clave auid dentro de principal.resource.attribute.labels . |
datetime |
metadata.event_timestamp |
Se analiza a partir de varios formatos en el campo de mensaje y se convierte en una marca de tiempo. |
dest_ip |
target.asset.ip , target.ip |
Se asignan a la IP de destino y a la IP del activo de destino. |
enterpriseId |
principal.resource.attribute.labels.value |
Se asigna a una etiqueta con la clave enterpriseId dentro de principal.resource.attribute.labels . |
exe |
sec_result.detection_fields.value |
Se asigna a un campo de detección con la clave exe . |
File |
target.file.full_path |
Se asignan directamente. |
grantors |
principal.resource.attribute.labels.value |
Se asigna a una etiqueta con la clave grantors dentro de principal.resource.attribute.labels . |
host |
principal.hostname , principal.asset.hostname , metadata.event_type |
Se usa como nombre de host principal y nombre de host del activo. Si host está presente, metadata.event_type se establece en STATUS_UPDATE . Si el nombre de host está presente, pero el host no, se usa el nombre de host como host. |
hostname |
principal.asset.ip , principal.ip , host |
Si es una IP válida, se usa para la IP principal y la IP del activo. Si host está vacío, se usa como host . |
ID |
principal.resource.attribute.labels.value |
Se asigna a una etiqueta con la clave ID dentro de principal.resource.attribute.labels . |
ip |
principal.asset.ip , principal.ip |
Se asignan a la IP principal y a la IP del activo. |
is_synced |
sec_result.detection_fields.value |
Se asigna a un campo de detección con la clave is_synced . |
local |
target.asset.ip , target.ip , target.port |
Se analizan para extraer la IP y el puerto locales, y se asignan a la IP de destino, la IP del activo de destino y el puerto de destino. |
local_ip |
target.asset.ip , target.ip |
Se extrae del campo local y se asigna a la IP de destino y a la IP del recurso de destino. |
local_port |
target.port |
Se extrae del campo local y se asigna al puerto de destino. |
mac |
principal.mac |
Si es una dirección MAC válida, se asigna a la dirección MAC principal. |
msg |
metadata.description |
Se usa como descripción del evento, si está presente. También se analiza en busca de campos adicionales. |
msg1 |
metadata.description |
Se usa como descripción del evento si no está presente msg2 . |
msg2 |
sec_result.description , metadata.event_type , extensions.auth.type |
Se usa como descripción del resultado de seguridad. Si contiene "opened for user", el tipo de evento se establece en USER_LOGIN y el tipo de autenticación en MACHINE . Si contiene "closed for user", el tipo de evento se establece en USER_LOGOUT y el tipo de autenticación en MACHINE . |
op |
metadata.product_event_type |
Se usa como tipo de evento de producto, si está presente. |
pid |
principal.process.pid |
Se asignan directamente. |
port |
principal.port |
Se asignan directamente. |
prod_event_type |
metadata.product_event_type |
Se usa como tipo de evento de producto, si está presente. |
res |
sec_result.summary |
Se asignan directamente. |
sec_description |
sec_result.description , target.url , target.ip , target.asset.ip , sec_result.action_details |
Se analiza para obtener la URL de destino, la IP y los detalles de la acción, y se usa como descripción del resultado de seguridad. |
Server_ID |
target.resource.product_object_id |
Se asignan directamente. |
server |
principal.asset.ip , principal.ip , principal.port |
Se analizan para extraer la IP y el puerto del servidor, y se asignan a la IP principal, la IP del activo principal y el puerto principal. |
server_ip |
principal.asset.ip , principal.ip |
Se extraen del campo server y se asignan a la IP principal y a la IP del activo principal. |
server_port |
principal.port |
Se extrae del campo server y se asigna al puerto principal. |
ses |
network.session_id |
Se asignan directamente. |
severity |
sec_result.severity , metadata.product_event_type |
Se usa para determinar la gravedad del resultado de seguridad y el tipo de evento del producto en función de valores específicos. |
software |
principal.asset.software |
Se asignan directamente. |
softwareName |
software.name |
Se asignan directamente. |
Status |
sec_result.summary |
Se usa como resumen del resultado de seguridad si no está presente res . |
subj |
principal.resource.attribute.labels.value |
Se asigna a una etiqueta con la clave subj dentro de principal.resource.attribute.labels . |
swVersion |
software.version |
Se asignan directamente. |
target_host |
target.hostname , target.asset.hostname |
Se asignan directamente al nombre de host de destino y al nombre de host del recurso de destino. |
target_ip |
target.asset.ip , target.ip |
Se asignan directamente a la IP de destino y a la IP del activo de destino. |
target_url |
target.url |
Se asignan directamente. |
target_user_id |
target.user.userid |
Se asignan directamente. |
terminal |
principal.resource.attribute.labels.value |
Se asigna a una etiqueta con la clave terminal dentro de principal.resource.attribute.labels . |
tzknown |
sec_result.detection_fields.value |
Se asigna a un campo de detección con la clave tzknown . |
uid |
principal.resource.attribute.labels.value |
Se asigna a una etiqueta con la clave uid dentro de principal.resource.attribute.labels . |
user |
principal.user.userid , metadata.event_type |
Se usa como ID de usuario principal. Si user está presente, metadata.event_type se establece en USER_UNCATEGORIZED . |
username |
target.user.userid |
Se asigna directamente al ID de usuario de destino. |
N/A | metadata.vendor_name |
Se codifica de forma fija en "Dell". |
N/A | metadata.product_name |
Se codifica de forma fija en “Dell Switch”. |
N/A | extensions.auth.type |
Establece el valor en MACHINE para eventos de acceso y salida específicos. |
N/A | metadata.event_type |
Se determina mediante una lógica compleja basada en varios campos y condiciones, y su valor predeterminado es GENERIC_EVENT si no se establece de otra manera. Puede ser USER_LOGIN , USER_LOGOUT , USER_UNCATEGORIZED , NETWORK_CONNECTION , NETWORK_UNCATEGORIZED , STATUS_UPDATE o GENERIC_EVENT . |
Cambios
2024-04-25
- Se agregaron patrones de Grok para analizar un nuevo tipo de registro.
- Se asignó
op
ametadata.product_event_type
. - Se asignó
mac
aprincipal.mac
. - Se asignó
addr
aprincipal.ip
. - Se asignó
hostname
aprincipal.ip
. - Se asignó
server_ip
aprincipal.ip
. - Se asignó
server_port
aprincipal.port
. - Se asignó
acct
aprincipal.user.userid
. - Se asignó
target_ip
atarget.ip
. - Se asignó
local_ip
atarget.ip
. - Se asignó
local_port
atarget.port
. - Se asignó
File
atarget.file.full_path
. - Se asignó
target_host
atarget.hostname
. - Se asignó
target_user_id
atarget.user.userid
. - Se asignó
Server_ID
atarget.resource.product_object_id
. - Se asignaron
tzknown
,is_synced
yexe
asecurity_result.detection_fields
. - Se asignó
res
asecurity_result.summary
. - Si el valor del campo
res
es "", se asignastatus
asecurity_result.summary
. - Se asignaron
uid
,enterpriseId
,auid
,terminal
,subj
,grantors
yID
aprincipal.resource.attribute.labels
.
2024-04-04
- Se agregaron patrones de Grok para analizar el nuevo tipo de registro.
- Se asignó
prod_event_type
ametadata.product_event_type
. - Se asignó
ip
aprincipal.ip
. - Se asignó
dest_ip
atarget.ip
. - Se asignó
target_url
atarget.url
. - Se asignó
sec_description
asecurity_result.description
. - Se asignó
action_details
asecurity_result.action_details
.
2024-01-04
- Se agregaron patrones de Grok para los registros recién transferidos.
- Se agregó el bloque de fecha cuando
datetime
está en formatoSYSLOGTIMESTAMP
. - Se asignó
softwareName
aprincipal.asset.software.name
. - Se asignó
swVersion
aprincipal.asset.software.version
. - Se asignó
port
aprincipal_port
. - Se asignó
user
aprincipal.user.userid
y se estableciómetadata.event_type
enUSER_UNCATEGORIZED
cuandouser
está presente. - Se asignó
application
aprincipal.application
. - Se asignó
ip
aprincipal.ip
. - Establece
sec_result.severity
enINFORMATIONAL
cuandoseverity
seaIFMGR-5-OSTATE_DN
. - Se asignó
msg
ametadata.description
.
2023-11-02
- Sin embargo, el analizador se creó recientemente.