Recopila registros de Cisco Stealthwatch
En este documento, se explica cómo recopilar registros de Cisco Secure Network Analytics (anteriormente, Stealthwatch) en Google Security Operations con Bindplane. El analizador controla dos formatos de registros de Cisco Stealthwatch: uno con información de IP y paquetes de cliente/servidor, y otro con ID de dispositivo y recuentos de bytes. Extrae campos, los convierte a los tipos de datos adecuados, los asigna al UDM y establece campos de metadatos, como el proveedor, el producto y el tipo de evento, según el contenido y el formato del registro.
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 ejecutas la herramienta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
- Asegúrate de tener acceso con privilegios a Cisco Stealthwatch.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a SIEM Settings > Collection Agents.
- 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 SIEM Settings > Profile.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
Instalación en 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 en 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: 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: '/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: CISCO_STEALTHWATCH raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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 Cómo obtener el archivo de autenticación de la transferencia de datos 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 de Servicios o ingresar el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configura Syslog de Cisco Secure Network Analytics (anteriormente, Stealthwatch)
- Accede a la IU web de la Consola de administración.
- Ve a Configuración > Administración de respuestas.
Formato de edición de Syslog:
- Nombre: Ingresa un nombre para el formato de syslog.
- Descripción: Proporciona una descripción para el formato.
- Instalación: Se configura como
Local 0
- Gravedad: Se establece en
Informational
. - En el campo Mensaje, pega el siguiente formato:
Lancope|StealthWatch|time|{time}|target_hostname|{target_hostname}|alarm_severity_id|{alarm_severity_id}|alarm_type_id|{alarm_type_id}|alarm_type_description|{alarm_type_description}|port|{port}|target_ip|{target_ip}|target_mac_address|{target_mac_address}|target_label|{target_label}|alarm_type_name|{alarm_type_name}|source_hostname|{source_hostname}|source_ip|{source_ip}|source_mac_address|{source_mac_address}|source_username|{source_username}|device_ip|{device_ip}|device_name|{device_name}|details|{details}|protocol|{protocol}|alarm_id|{alarm_id}|alarm_category_name|{alarm_category_name}|start_active_time|{start_active_time}| end_active_time|{end_active_time}
Haz clic en Aceptar.
Ve a Administración de respuestas > Acciones > Agregar mensaje de Syslog.
Configura el reenviador de Syslog:
- Nombre: Ingresa el nombre del reenvío de Google SecOps Bindplane.
- Descripción: Ingresa la descripción del reenvío de Google SecOps Bindplane.
- Dirección IP: Ingresa la dirección IP del agente de BindPlane.
- Puerto: Ingresa el número de puerto del agente de Bindplane, por ejemplo,
514
. - Formato: Selecciona el formato que creaste en el paso 3.
Haz clic en Aceptar.
Configura nombres de reglas para Cisco Secure Network Analytics (anteriormente, Stealthwatch)
- Ve a Configuración > Administración de respuestas.
- Selecciona Reglas > Agregar > Alarmas del sistema SMC.
- Haz clic en Aceptar.
- En el diálogo Tipos de reglas, selecciona una regla.
- Haz clic en Aceptar.
- En el cuadro de diálogo Regla, haz lo siguiente:
- Nombre: Ingresa un nombre para la regla.
- Esta regla se activa si: Selecciona Cualquier, Gravedad y Informativo en las listas respectivas.
- Haz clic en Aceptar.
- Selecciona Acciones > Agregar.
- Selecciona la acción que creaste anteriormente.
- Haz clic en Aceptar y, luego, en Aceptar.
- Repite los pasos anteriores para cambiar el nombre de las siguientes tres opciones en la sección Rule:
- Mecanismo de recopilación de registros admitido: Syslog
- Mecanismo de recopilación de registros preferido: Syslog
- Diagrama lógico del flujo de eventos: servidor Syslog remoto de SMC
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
Alarm_ID |
additional.fields[?key=='Alarm_ID'].value.string_value |
El valor de Alarm_ID del registro sin procesar se coloca dentro de una estructura additional.fields anidada bajo la clave Alarm_ID . |
ClientBytes |
network.sent_bytes |
El valor de ClientBytes del registro sin procesar se convierte en un número entero sin signo y se asigna. |
ClientIP |
principal.ip |
Se asigna ClientIP del registro sin procesar. |
ClientPort |
principal.port |
ClientPort del registro sin procesar se convierte en un número entero y se asigna. |
CPayload |
Sin asignar | Este campo no se usa en el UDM final. |
DestIPv4Address |
target.ip |
Se asigna DestIPv4Address del registro sin procesar. |
DestPort |
target.port |
DestPort del registro sin procesar se convierte en un número entero y se asigna. |
details |
security_result.summary |
Se asigna el valor de details del registro sin procesar, con las comillas dobles quitadas. |
FC |
intermediary.ip |
Se asigna FC del registro sin procesar. |
host.country |
principal.location.country_or_region |
Se asigna host.country del registro sin procesar. |
host.hostGroupNames |
about.group.group_display_name |
A cada elemento del array host.hostGroupNames del registro sin procesar se le antepone host: y se asigna como un objeto about independiente. |
host.ipAddress |
principal.ip |
Se asigna host.ipAddress del registro sin procesar. |
hostBytes |
network.sent_bytes |
El valor de hostBytes del registro sin procesar se convierte en un número entero sin signo y se asigna. |
InPackets |
additional.fields[?key=='InPackets'].value.string_value |
El valor de InPackets del registro sin procesar se coloca dentro de una estructura additional.fields anidada bajo la clave InPackets . |
inputSNMPIface |
additional.fields[?key=='inputSNMPIface'].value.string_value |
El valor de inputSNMPIface del registro sin procesar se coloca dentro de una estructura additional.fields anidada bajo la clave inputSNMPIface . |
LastTime |
Sin asignar | En algunos casos, este campo se analiza para obtener la marca de tiempo del evento, pero no se asigna directamente al UDM. |
MessageSourceAddress |
principal.ip |
Se asigna MessageSourceAddress del registro sin procesar. |
method |
network.http.method |
Se asigna method del registro sin procesar. |
outputSNMPIface |
additional.fields[?key=='outputSNMPIface'].value.string_value |
El valor de outputSNMPIface del registro sin procesar se coloca dentro de una estructura additional.fields anidada bajo la clave outputSNMPIface . |
PAAppID |
Sin asignar | Este campo no se usa en el UDM final. |
peer.country |
target.location.country_or_region |
Se asigna peer.country del registro sin procesar. |
peer.hostGroupNames |
about.group.group_display_name |
A cada elemento del array peer.hostGroupNames del registro sin procesar se le antepone peer: y se asigna como un objeto about independiente. |
peer.ipAddress |
target.ip |
Se asigna peer.ipAddress del registro sin procesar. |
peerBytes |
network.received_bytes |
El valor de peerBytes del registro sin procesar se convierte en un número entero sin signo y se asigna. |
peerPackets |
Sin asignar | Este campo no se usa en el UDM final. |
Protocol |
Sin asignar | Este campo se analiza para determinar el network.ip_protocol , pero no se asigna directamente. |
ProtocolIdentifier |
Sin asignar | Este campo se usa para derivar network.ip_protocol , pero no se asigna directamente. |
reportName |
metadata.product_event_type |
Se asigna reportName del registro sin procesar. |
ServerBytes |
network.received_bytes |
El valor de ServerBytes del registro sin procesar se convierte en un número entero sin signo y se asigna. |
ServerIP |
target.ip |
Se asigna ServerIP del registro sin procesar. |
ServerPort |
target.port |
ServerPort del registro sin procesar se convierte en un número entero y se asigna. |
Service |
Sin asignar | Este campo no se usa en el UDM final. |
sid |
target.user.windows_sid |
Se asigna sid del registro sin procesar. |
SourceModuleName |
target.resource.name |
Se asigna SourceModuleName del registro sin procesar. |
SourceModuleType |
observer.application |
Se asigna SourceModuleType del registro sin procesar. |
SourcePort |
principal.port |
SourcePort del registro sin procesar se convierte en un número entero y se asigna. |
sourceIPv4Address |
principal.ip |
Se asigna sourceIPv4Address del registro sin procesar. |
SPayload |
Sin asignar | Este campo no se usa en el UDM final. |
src_ip |
principal.ip |
Se asigna src_ip del registro sin procesar. |
StartTime |
Sin asignar | En algunos casos, este campo se analiza para obtener la marca de tiempo del evento, pero no se asigna directamente al UDM. |
time |
Sin asignar | En algunos casos, este campo se analiza para obtener la marca de tiempo del evento, pero no se asigna directamente al UDM. |
timestamp |
Sin asignar | Este campo se analiza para obtener la marca de tiempo del evento, pero no se asigna directamente al UDM. |
UserName |
principal.user.user_display_name |
Se asigna UserName del registro sin procesar. |
Version |
metadata.product_version |
Version del registro sin procesar se convierte en una cadena y se asigna. |
N/A | metadata.event_timestamp |
La marca de tiempo del evento se deriva de varios campos (LastTime , time , timestamp , StartTime ) según el formato de registro o del campo create_time si no hay otra marca de tiempo disponible. |
N/A | metadata.log_type |
Siempre se establece en CISCO_STEALTHWATCH . |
N/A | metadata.vendor_name |
Siempre se establece en Cisco . |
N/A | metadata.event_type |
Se determina según la lógica del analizador basada en el contenido del registro. Puede ser NETWORK_CONNECTION , USER_STATS , USER_UNCATEGORIZED , FILE_OPEN , FILE_DELETION o FILE_UNCATEGORIZED . |
N/A | network.ip_protocol |
Se determina según la lógica del analizador en función de los campos Protocol o ProtocolIdentifier . Puede ser TCP , UDP , o ICMP . |
action |
security_result.action_details |
Se asigna el valor de action del registro sin procesar. |
action |
security_result.action |
Se deriva del campo action . Si action es SUCCESS , este campo se establece en ALLOW ; de lo contrario, se establece en BLOCK . |
category |
security_result.category_details |
Se asigna el valor de category del registro sin procesar. |
description |
security_result.description |
Si tanto description como file_type están presentes en el registro sin procesar, se concatenan y se asignan. |
desc |
metadata.description |
Se asigna el valor de desc del registro sin procesar, con las comillas dobles quitadas. |
failuer_reason |
security_result.summary |
Si tanto failuer_reason como file_type están presentes en el registro sin procesar, se concatenan y se asignan. |
file_path |
target.file.full_path |
Se asigna file_path del registro sin procesar. |
file_type |
target.file.mime_type |
Se asigna file_type del registro sin procesar. |
hostname |
principal.hostname |
Se asigna hostname del registro sin procesar. |
ip |
principal.ip |
Se asigna ip del registro sin procesar. |
ipf |
intermediary.ip |
Se asigna ipf del registro sin procesar. |
ipt |
target.ip |
Se asigna ipt del registro sin procesar. |
process_id |
target.process.pid |
Se asigna process_id del registro sin procesar. |
protocol |
network.application_protocol |
Se asigna protocol del registro sin procesar. |
security_res.severity |
security_result.severity |
Si severity es Minor , este campo se establece en INFORMATIONAL ; si severity es Major , se establece en ERROR . |
session_id |
network.session_id |
Se asigna session_id del registro sin procesar. |
severity |
Sin asignar | Este campo se usa para derivar security_result.severity , pero no se asigna directamente. |
Source_HG |
principal.location.country_or_region |
Se asigna Source_HG del registro sin procesar. |
Source_HostSnapshot |
principal.url |
Se asigna Source_HostSnapshot del registro sin procesar. |
Target_HostSnapshot |
target.url |
Se asigna Target_HostSnapshot del registro sin procesar. |
user_name |
principal.user.userid |
Se asigna user_name del registro sin procesar. |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.