Recopila registros de VPN de Cisco

Compatible con:

En este documento, se explica cómo transferir registros de VPN de Cisco ASA a Google Security Operations con Bindplane. El analizador extrae campos de los mensajes de syslog con patrones de Grok, y controla tanto los formatos de syslog estándar como las estructuras de mensajes alternativos. Luego, asigna los campos extraídos al Modelo de datos unificado (UDM), categoriza los eventos según los IDs y la información extraída, y enriquece los datos con metadatos como el proveedor, el producto y el tipo de evento. El analizador también controla IDs de eventos específicos, aplica patrones y lógica de grok adicionales para extraer detalles relevantes y asignarlos a los campos correspondientes del UDM.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Un host de Windows 2016 o posterior, o un host de Linux con systemd
  • Si se ejecuta detrás de un proxy, los puertos de firewall están abiertos.
  • Acceso privilegiado a Cisco ASA

Obtén el archivo de autenticación de transferencia de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a SIEM Settings > Collection Agents.
  3. 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

  1. Accede a la consola de Google SecOps.
  2. Ve a SIEM Settings > Profile.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instala el agente de BindPlane

Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.

Instalación en Windows

  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 en Linux

  1. Abre una terminal con privilegios de raíz 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

Para obtener más opciones de instalación, consulta la guía de instalación.

Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps

  1. 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).
  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_file_path: '/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
            log_type: 'CISCO_VPN'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

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 para la VPN de Cisco ASA

  1. Abre Cisco ASDM.
  2. Ve a Configuration > Features > Properties > Logging > Logging Setup.
  3. Selecciona la casilla de verificación Habilitar registro para habilitar syslog.
  4. Selecciona Syslog Servers en Logging y haz clic en Add.
  5. Ingresa los siguientes detalles de configuración en la ventana Agregar servidor Syslog:
    • Interfaz: Selecciona la interfaz para la comunicación saliente.
    • Dirección IP: Ingresa la dirección IP del agente de Bindplane.
    • Protocolo: Selecciona UDP.
    • Puerto: Ingresa el número de puerto del agente de Bindplane.
    • Haz clic en Aceptar.
  6. Selecciona Logging Filters en la sección logging.
  7. Selecciona Servidores Syslog y haz clic en Editar.
  8. Selecciona Informativo en la lista como el Filtro por gravedad.
  9. Haz clic en Aceptar.
  10. Haz clic en Aplicar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
accesslist target.resource.name Se extrae de message_info cuando eventtype es "ASA-4-106103". Representa el nombre de la lista de acceso.
action security_result.action El analizador lo deriva en función de las palabras clave del mensaje de registro (p.ej., "Denegar", "Rechazar", "Permitir", "Aceptar"). Se asigna a ALLOW o BLOCK.
action security_result.action_details Es el valor de cadena sin procesar de la acción realizada (p.ej., "permitido", "denegado", "desconectado").
app_name principal.application Nombre de la aplicación que usa el principal (p.ej., "CLI"). Se extrajo de message_details para los IDs de evento 111008, 111009 y 111010.
assigned_ipv4 N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
assigned_ipv6 N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
bytes_rcv network.received_bytes Es la cantidad de bytes recibidos en la sesión. Se extrajo de log_mssg para el ID de evento 113019.
bytes_sent network.sent_bytes Es la cantidad de bytes enviados en la sesión. Se extrajo de log_mssg para el ID de evento 113019.
cipher network.tls.cipher Es el algoritmo de cifrado que se usa para la sesión SSL. Se extrajo de message_info para el tipo de evento 725012.
cisco_message_number security_result.rule_name Es el número de mensaje de Cisco, que se extrae del campo eventtype.
cisco_severity security_result.severity_details Es el nivel de gravedad sin procesar de Cisco, extraído del campo eventtype.
command N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
cumulative_total_count.key security_result.outcomes.key La clave "cumulative_total_count" se agrega al array security_result.outcomes.
cumulative_total_count.value security_result.outcomes.value Es el valor del recuento total acumulativo, extraído de message_info.
current_average_rate.key security_result.outcomes.key La clave "current_average_rate" se agrega al array security_result.outcomes.
current_average_rate.value security_result.outcomes.value Es el valor de la tasa promedio actual, extraído de message_info.
current_burst_rate.key security_result.outcomes.key La clave "current_burst_rate" se agrega al array security_result.outcomes.
current_burst_rate.value security_result.outcomes.value Es el valor de la tasa de ráfaga actual, extraído de message_info.
desc metadata.description Es la descripción del evento, extraída del mensaje de registro. Se usa cuando no hay una descripción más específica disponible.
description metadata.description Es una descripción más detallada del evento, extraída del mensaje de registro cuando está disponible.
destination_ip target.ip, target.asset.ip Es la dirección IP de destino, que se extrae de varios formatos de mensajes de registro.
destination_ip_port target.port o network.application_protocol Es el puerto de destino, que se extrae de varios formatos de mensajes de registro. Si el valor extraído no es un número, se trata como el protocolo de la aplicación.
dst_email target.user.email_addresses o target.user.userid Es la dirección de correo electrónico o el ID de usuario de destino, extraídos de message_info. Si el valor coincide con un formato de correo electrónico, se agrega a email_addresses; de lo contrario, se usa como userid.
dst_host target.hostname Es el nombre de host de destino, que se extrae de message_info.
dst_ip target.ip, target.asset.ip Es la dirección IP de destino, que se extrae del patrón grok principal o de otros patrones específicos.
dst_port target.port Es el puerto de destino, que se extrae del patrón de Grok principal o de otros patrones específicos.
duration network.session_duration Duración de la sesión, extraída de message_details y convertida a segundos.
event_date @timestamp Fecha y hora del evento, que se construye a partir de varios campos de marca de tiempo en el registro sin procesar y se analiza con el filtro date.
event_id metadata.product_event_type (parte de) Se usa en combinación con event_severity para formar el campo metadata.product_event_type.
event_name metadata.product_event_type (parte de) Se usa en combinación con event_severity y event_type para formar el campo metadata.product_event_type cuando está disponible.
event_severity metadata.product_event_type (parte de), security_result.severity, is_alert, is_significant Se usa en combinación con event_id o event_name y event_type para formar el campo metadata.product_event_type. También se usa para derivar los campos security_result.severity, is_alert y is_significant.
event_type metadata.product_event_type (parte de) Se usa en combinación con event_name y event_severity para formar el campo metadata.product_event_type cuando está disponible.
eventtype metadata.product_event_type, security_result.rule_name, security_result.severity_details, security_result.severity Es la cadena del tipo de evento que se usa para derivar los campos metadata.product_event_type, security_result.rule_name, security_result.severity_details y security_result.severity.
fragment_id security_result.about.resource.id Es el ID del fragmento de IP, extraído de message_details para el ID de evento 209005.
group principal.group.group_display_name, principal.user.group_identifiers, target.user.group_identifiers Nombre del grupo, extraído de varios formatos de mensajes de registro.
group_name principal.group.group_display_name Nombre del grupo extraído del campo group cuando es un nombre de host.
has_principal_ip N/A Es una variable interna que se usa para la lógica y no se asigna al UDM.
has_target_ip N/A Es una variable interna que se usa para la lógica y no se asigna al UDM.
hostname principal.hostname, principal.asset.hostname Es el nombre de host de la entidad principal, que se extrae de varios formatos de mensajes de registro.
hostname2 principal.hostname, principal.asset.hostname Es el nombre de host del principal, que se extrae como alternativa cuando hostname no está disponible.
icmp_code N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
icmp_dst_ip target.ip, target.asset.ip Es la dirección IP de destino de un mensaje de error de ICMP.
icmp_id N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
icmp_src_ip principal.ip, principal.asset.ip Es la dirección IP de origen de un mensaje de error de ICMP.
icmp_type N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
intermediary_ip principal.ip, principal.asset.ip Dirección IP intermedia, extraída de message_info para el ID de evento 111010.
invalid_ip N/A Es una variable interna que se usa para la lógica y no se asigna al UDM.
ip_1 principal.ip, principal.asset.ip Dirección IP de origen extraída como alternativa cuando las IPs de origen y destino son las mismas.
ip_2 target.ip, target.asset.ip Dirección IP de destino extraída como alternativa cuando las IPs de origen y destino son las mismas.
ipprotocol network.ip_protocol Protocolo de IP, extraído de varios formatos de mensajes de registro y convertido a mayúsculas.
issuer network.tls.client.certificate.issuer Es la entidad emisora del certificado de la entidad par, que se extrae de message_details para el ID de evento 717037.
local_proxy_ip intermediary.ip Dirección IP del proxy local, extraída de message_details para el ID de evento 713041.
log_mssg security_result.description, sr.action Se usa para completar el campo security_result.description y extraer acciones de autenticación.
login security_result.summary Estado de acceso, extraído de message_info.
max_configured_rate.key security_result.outcomes.key La clave "max_configured_rate" se agrega al array security_result.outcomes.
max_configured_rate.value security_result.outcomes.value Es el valor de la tasa máxima configurada, extraído de message_info.
message_details Varios campos Es la parte principal del mensaje de registro, que contiene detalles sobre el evento. Se analiza con varios patrones de Grok según el ID del evento.
message_info metadata.description Se usa para propagar el campo metadata.description cuando está disponible.
observer observer.hostname o observer.ip Es el nombre de host o la dirección IP del observador, que se extrae del mensaje de registro.
observer_ip observer.ip Es la dirección IP del observador, que se extrae del campo observer.
peer_type N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
policy target.resource.name Nombre de la política, extraído de message_details para el ID de evento 113003.
policy_name target.resource.name Nombre de la política, extraído de message_details para los IDs de evento 113009 y 113011.
principal_ip principal.ip, principal.asset.ip Es la dirección IP principal, extraída de message_details para el ID de evento 113009.
privilege_level_from N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
privilege_level_to N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
process principal.process.command_line Nombre del proceso, extraído de message_details para el ID de evento 711004.
protocol network.ip_protocol o network.application_protocol Es el protocolo que se usó en el evento, extraído de varios formatos de mensajes de registro. Si el protocolo es un protocolo IP estándar (ICMP, TCP, UDP, ESP), se asigna a network.ip_protocol; de lo contrario, se asigna a network.application_protocol.
reason security_result.description Es el motivo del evento, extraído de message_details para el ID de evento 113016.
remote_proxy_ip intermediary.ip Es la dirección IP del proxy remoto, extraída de message_details para el ID de evento 713041.
retrieved_file target.file.full_path Es la ruta de acceso al archivo recuperado, extraída de message_info.
security_action security_result.action Es la acción de seguridad que deriva el analizador en función del contexto del evento.
security_category security_result.category Es la categoría de seguridad que deriva el analizador en función del contexto del evento.
security_result.description security_result.description Es la descripción del resultado de seguridad, extraída o derivada del mensaje de registro.
security_result.severity security_result.severity Es la gravedad del resultado de seguridad, que se deriva del campo event_severity.
security_result.summary security_result.summary Es el resumen del resultado de seguridad, extraído o derivado del mensaje de registro.
sent_bytes network.sent_bytes Cantidad de bytes enviados, extraída de message_info.
ses_id network.session_id ID de sesión, extraído de message_info.
session_id network.session_id ID de sesión, extraído de message_info.
sess_type principal.hostname, principal.asset.hostname Tipo de sesión, extraído de log_mssg y utilizado como nombre de host cuando hostname no está disponible.
source_ip principal.ip, principal.asset.ip Es la dirección IP de origen, que se extrae de varios formatos de mensajes de registro.
source_ip_port principal.port Es el puerto de origen, que se extrae de varios formatos de mensajes de registro.
src_email principal.user.email_addresses o principal.user.userid Dirección de correo electrónico o ID de usuario de la fuente, extraídos de message_info. Si el valor coincide con un formato de correo electrónico, se agrega a email_addresses; de lo contrario, se usa como userid.
src_ip principal.ip, principal.asset.ip Es la dirección IP de origen, que se extrae del patrón grok principal o de otros patrones específicos.
src_port principal.port Es el puerto de origen, que se extrae del patrón grok principal o de otros patrones específicos.
src_user principal.user.user_display_name Nombre visible del usuario fuente, extraído de message_details para los IDs de evento 713049 y 713120.
subject network.tls.client.certificate.subject Es el asunto del certificado de la entidad de certificación, extraído de message_details para el ID de evento 717037.
summary security_result.summary Resumen del evento, extraído de message_details para el ID de evento 113016.
target_host target.hostname Nombre de host de destino, extraído de message_details para el ID de evento 113004.
target_ip target.ip, target.asset.ip Es la dirección IP de destino, extraída de message_details para el ID de evento 113004.
target_user target.user.userid Es el ID del usuario objetivo, extraído de message_details para el ID de evento 113003.
task_duration N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
tcp_dst_ip target.ip, target.asset.ip Es la dirección IP de destino de la carga útil TCP original de un mensaje de error de ICMP.
tcp_dst_port N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
tcp_src_ip principal.ip, principal.asset.ip Es la dirección IP de origen de la carga útil TCP original de un mensaje de error de ICMP.
tcp_src_port N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
threshold N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
tls_version network.tls.version Versión de TLS, extraída de message_details para el ID de evento 725002.
ts @timestamp Es la marca de tiempo del evento, analizada con el filtro date.
ts_day @timestamp (parte de) Día del mes de la marca de tiempo, que se usa para construir el campo @timestamp.
ts_month @timestamp (parte de) Mes de la marca de tiempo, que se usa para construir el campo @timestamp.
ts_time @timestamp (parte de) Es la hora de la marca de tiempo, que se usa para construir el campo @timestamp.
ts_year @timestamp (parte de) Año de la marca de tiempo, que se usa para construir el campo @timestamp.
tunnel_type N/A Aunque se analiza, este campo no se asigna al objeto del IDM en el UDM.
user principal.user.userid, target.user.userid Es el ID de usuario, que se extrae de varios formatos de mensajes de registro.
user_agent network.http.user_agent Es la cadena del usuario-agente, extraída de message_details para el ID de evento 722055.
user_attr.key principal.user.attribute.labels.key Es la clave de un atributo del usuario, extraída de message_details para los IDs de evento 734003 y 734001.
user_attr.value principal.user.attribute.labels.value Es el valor de un atributo del usuario, extraído de message_details para los IDs de evento 734003 y 734001.
userid principal.user.userid Es el ID de usuario, extraído de message_details para el ID de evento 106103.
username principal.user.userid Nombre de usuario, extraído de message_details para los IDs de evento 111008, 111009, 111010 y 113008.
N/A metadata.vendor_name Se codifica como "CISCO".
N/A metadata.product_name Se codifica como "VPN de ASA" o "VPN".
N/A metadata.event_type La lógica del analizador la determina en función de la presencia de ciertos campos y IDs de eventos. Puede ser GENERIC_EVENT, NETWORK_CONNECTION, STATUS_UPDATE, NETWORK_FTP, USER_LOGIN, USER_LOGOUT, NETWORK_UNCATEGORIZED, USER_UNCATEGORIZED o NETWORK_FLOW.
N/A metadata.log_type Se codifica como "CISCO_VPN".
N/A metadata.event_timestamp Se copió del campo @timestamp analizado.
N/A extensions.auth.type Se establece como "VPN", "AUTHTYPE_UNSPECIFIED" o "MACHINE" según el contexto del evento.
N/A security_result.about.resource.type Se establece en "PACKET FRAGMENT" para el ID de evento 209005.
N/A is_alert Se establece en verdadero para los eventos de gravedad alta (event_severity 0 o 1).
N/A is_significant Se establece en verdadero para los eventos de gravedad alta (event_severity 0 o 1).

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.