Recoger registros de Cisco Stealthwatch

Disponible en:

En este documento se explica cómo recoger registros de Cisco Secure Network Analytics (antes Stealthwatch) en Google Security Operations mediante Bindplane. El analizador gestiona 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 define campos de metadatos como el proveedor, el producto y el tipo de evento en función del contenido y el formato del registro.

Antes de empezar

  • Asegúrate de que tienes una instancia de Google Security Operations.
  • Asegúrate de usar Windows 2016 o una versión posterior, o un host Linux con systemd.
  • Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
  • Asegúrate de que tienes acceso con privilegios a Cisco Stealthwatch.

Obtener el archivo de autenticación de ingestión de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recogida.
  3. 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

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instalar el agente de Bindplane

Instalación de ventanas

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el siguiente comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalación de Linux

  1. Abre un terminal con privilegios de superusuario o sudo.
  2. 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

Configurar el agente de BindPlane para ingerir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:

    1. 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.
    2. Abre el archivo con un editor de texto (por ejemplo, nano, vi o Bloc de notas).
  2. 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
    
  3. Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.

  4. Sustituye <customer_id> por el ID de cliente real.

  5. 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 Syslog de Cisco Secure Network Analytics (antes Stealthwatch)

  1. Inicia sesión en la interfaz de usuario web de la consola de gestión.
  2. Ve a Configuración > Gestión de respuestas.
  3. Editar formato de syslog:

    • Nombre: introduce un nombre para el formato syslog.
    • Descripción: proporciona una descripción del formato.
    • Residencia: Local 0
    • Gravedad: se ha asignado el valor 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}
    
  4. Haz clic en Aceptar.

  5. Ve a Gestión de respuestas > Acciones > Añadir mensaje Syslog.

  6. Configura el reenviador de Syslog:

    • Nombre: introduce el nombre del reenviador de Google SecOps Bindplane.
    • Descripción: introduce la descripción del reenviador de Bindplane de Google SecOps.
    • Dirección IP: introduce la dirección IP del agente de Bindplane.
    • Puerto: introduce el número de puerto del agente de Bindplane; por ejemplo, 514.
    • Formato: selecciona el formato que has creado en el paso 3.
  7. Haz clic en Aceptar.

Configurar nombres de reglas para Cisco Secure Network Analytics (antes Stealthwatch)

  1. Ve a Configuración > Gestión de respuestas.
  2. Selecciona Reglas > Añadir > Alarmas del sistema SMC.
  3. Haz clic en Aceptar.
  4. En el cuadro de diálogo Tipos de reglas, selecciona una regla.
  5. Haz clic en Aceptar.
  6. En el cuadro de diálogo Regla, haz lo siguiente:
    • Nombre: introduce un nombre para la regla.
    • Esta regla se activa si: selecciona Cualquiera, Gravedad e Informativa en las listas correspondientes.
  7. Haz clic en Aceptar.
  8. Seleccione Acciones > Añadir.
  9. Selecciona la acción que hayas creado anteriormente.
  10. Haz clic en Aceptar y, a continuación, en Aceptar.
  11. Repite los pasos anteriores para cambiar el nombre de las tres opciones siguientes de la sección Regla:
    • Mecanismo de recogida de registros admitido: Syslog
    • Mecanismo de recogida 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 en una estructura additional.fields anidada en la clave Alarm_ID.
ClientBytes network.sent_bytes 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 eliminadas.
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 de la matriz host.hostGroupNames del registro sin procesar se le añade el prefijo 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 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 en una estructura additional.fields anidada en la clave InPackets.
inputSNMPIface additional.fields[?key=='inputSNMPIface'].value.string_value El valor de inputSNMPIface del registro sin procesar se coloca en una estructura additional.fields anidada en 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 en una estructura additional.fields anidada en 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 de la matriz peer.hostGroupNames del registro sin procesar se le añade el prefijo 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 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 obtener network.ip_protocol, pero no se asigna directamente.
reportName metadata.product_event_type Se asigna reportName del registro sin procesar.
ServerBytes network.received_bytes 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 obtiene de varios campos (LastTime, time, timestamp y StartTime) en función del formato del registro o del campo create_time si no hay ninguna otra marca de tiempo disponible.
N/A metadata.log_type Siempre debe tener el valor CISCO_STEALTHWATCH.
N/A metadata.vendor_name Siempre debe tener el valor Cisco.
N/A metadata.event_type Determinado por la lógica del analizador en función del contenido del registro. Puede ser NETWORK_CONNECTION, USER_STATS, USER_UNCATEGORIZED, FILE_OPEN, FILE_DELETION o FILE_UNCATEGORIZED.
N/A network.ip_protocol Determinado por 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 Derivado del campo action. Si action es SUCCESS, este campo se define como ALLOW. De lo contrario, se define como BLOCK.
category security_result.category_details Se asigna el valor de category del registro sin procesar.
description security_result.description Si description y 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 eliminadas.
failuer_reason security_result.summary Si failuer_reason y 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 define como INFORMATIONAL. Si severity es Major, se define como ERROR.
session_id network.session_id Se asigna session_id del registro sin procesar.
severity Sin asignar Este campo se usa para obtener 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? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.