Recopila registros de conmutadores de Cisco

Versión del analizador: 27.0

Compatible con:

En este documento, se explica cómo transferir registros de conmutadores de Cisco a Google Security Operations con el agente de Bindplane.

Los switches de Cisco generan mensajes de syslog para cambios de estado de puertos, eventos de árbol de expansión, coincidencias de ACL, autenticación y operaciones del sistema. El analizador extrae campos con patrones de grok y los asigna al modelo de datos unificado (UDM).

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Windows Server 2016 o posterior, o host de Linux con systemd
  • Conectividad de red entre el agente de Bindplane y el interruptor de Cisco
  • Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos según los requisitos del agente de Bindplane
  • Acceso con privilegios a la CLI del switch de Cisco

Obtén credenciales de Google SecOps para el agente de Bindplane

Para autenticar el agente de Bindplane en Google SecOps, elige uno de los siguientes métodos:

  • Implementaciones nuevas: Usa la API de Chronicle (opción 1).
  • Implementaciones heredadas: Sigue usando el archivo de autenticación de transferencia (opción 2) hasta que se descontinúe la API de Ingestion el 20 de julio de 2027.
  1. Accede a la consola deGoogle Cloud y selecciona el proyecto de Google Cloud que está vinculado a tu instancia de Google SecOps.
  2. Ve a IAM y administración > Cuentas de servicio.
  3. Haga clic en Crear cuenta de servicio.
  4. Proporciona los siguientes detalles de configuración:
    • Nombre de la cuenta de servicio: Ingresa un nombre para la cuenta (por ejemplo, bindplane-ingest).
    • Descripción de la cuenta de servicio: Ingresa una descripción (por ejemplo, Bindplane agent log ingestion).
  5. Haz clic en Crear y continuar.
  6. En la sección Otorga a esta cuenta de servicio acceso al proyecto, haz clic en Seleccionar un rol y elige Editor de Chronicle.
  7. Haz clic en Continuar y, luego, en Listo.
  8. Haz clic en la cuenta de servicio que creaste y, luego, ve a la pestaña Claves.
  9. Haz clic en Agregar clave > Crear clave nueva.
  10. Selecciona JSON y haz clic en Crear. El archivo de claves se descargará en tu computadora.
  11. Guarda el archivo de claves como ingestion-auth.json en el directorio del recopilador de Bindplane (/opt/observiq-otel-collector/ingestion-auth.json en Linux o C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json en Windows) o actualiza creds_file_path en config.yaml para que coincida con la ruta de acceso en la que lo guardas.
  12. Ve a IAM y administración > Configuración y copia el Número de proyecto. Lo necesitarás para la configuración del exportador.

Opción 2: Descarga el archivo de autenticación de transferencia (heredado)

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración > Administración de datos > Agentes de recopilación. Si estás en una plataforma solo de SIEM, ve a Configuración > Agentes de recopilación.
  3. Descarga el archivo de autenticación de transferencia.
  4. Guarda el archivo de forma segura en el sistema en el que se instalará el agente de Bindplane.

Obtén el ID de cliente de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración > Administración > Perfil. Si estás en una plataforma solo de SIEM, ve a Configuración > Perfil.
  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 comando siguiente:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Espera a que se complete la instalación.

  4. Ejecuta el siguiente comando para verificar la instalación:

    sc query observiq-otel-collector
    

    El servicio debería mostrarse como RUNNING.

Instalación en Linux

  1. Abre una terminal con privilegios de raíz o sudo.
  2. Ejecuta el comando siguiente:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Espera a que se complete la instalación.

  4. Ejecuta el siguiente comando para verificar la instalación:

    sudo systemctl status observiq-otel-collector
    

    El servicio debería mostrarse como active (running).

Recursos de instalación adicionales

Para obtener más opciones de instalación y solución de problemas, consulta la guía de instalación del agente de Bindplane.

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

Ubica el archivo de configuración

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Edita el archivo de configuración

  • Reemplaza todo el contenido de config.yaml por la siguiente configuración:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/cisco_switch:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: CISCO_SWITCH
        raw_log_field: body
    
    service:
      pipelines:
        logs/cisco_switch_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/cisco_switch
    

Parámetros de configuración

Reemplaza los marcadores de posición que se indican más abajo:

  • Configuración del receptor:

    • listen_address: Es la dirección IP y el puerto que se escucharán:
      • 0.0.0.0 para escuchar en todas las interfaces (recomendado)
      • El puerto 514 es el puerto estándar de syslog (requiere acceso raíz en Linux; usa 1514 para acceso no raíz)
  • Configuración del exportador:

    • creds_file_path: Ruta de acceso completa al archivo de claves JSON de la cuenta de servicio (opción 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Es el ID de cliente copiado de la consola de Google SecOps.
    • location: Reemplaza <LOCATION> por la región de tu instancia de Google SecOps (por ejemplo, us, europe o asia-southeast1). El exportador agrega el prefijo chronicle.googleapis.com con este valor. Consulta Extremos regionales para obtener la lista completa.
    • project: Reemplaza <PROJECT_NUMBER> por el número de proyecto de IAM y administración > Configuración.
    • endpoint: Mantén la configuración como chronicle.googleapis.com.

Exportador de la API de transferencia heredada

  • Si usas el archivo de autenticación de transferencia de la opción 2, reemplaza el bloque exporters por lo siguiente. Establece creds_file_path en la ruta de acceso al archivo de autenticación de transferencia y, si tu instancia está fuera de EE.UU., reemplaza malachiteingestion-pa.googleapis.com por tu extremo regional (por ejemplo, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/cisco_switch:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: CISCO_SWITCH
        raw_log_field: body
    

Guarda el archivo de configuración

  • Después de editarlo, guarda el archivo:
    • Linux: Presiona Ctrl+O, luego Enter y, por último, Ctrl+X
    • Windows: Haz clic en Archivo > Guardar.

Reinicia el agente de Bindplane para aplicar los cambios.

  • Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:

    sudo systemctl restart observiq-otel-collector
    
    1. Verifica que el servicio esté en ejecución:

      ```bash
      sudo systemctl status observiq-otel-collector
      ```
      
    2. Revisa los registros en busca de errores:

      ```bash
      sudo journalctl -u observiq-otel-collector -f
      ```
      
  • Para reiniciar el agente de Bindplane en Windows, elige una de las siguientes opciones:

    • Símbolo del sistema o PowerShell como administrador:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Consola de servicios:

      1. Presiona Win+R, escribe services.msc y presiona Intro.
      2. Busca observIQ OpenTelemetry Collector.
      3. Haz clic con el botón derecho y selecciona Reiniciar.
      4. Verifica que el servicio esté en ejecución:

        sc query observiq-otel-collector
        
      5. Revisa los registros en busca de errores:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configura syslog en un switch de Cisco

  1. Accede al switch de Cisco.
  2. Escalación de privilegios:

    enable
    
  3. Cambia al modo de configuración:

    conf t
    
  4. Configura syslog:

    logging host <BINDPLANE_IP> transport <tcp/udp> port <PORT>
    logging source-interface <INTERFACE>
    
    • Reemplaza <BINDPLANE_IP> por la dirección IP del agente de Bindplane.
    • Reemplaza <tcp/udp> por el protocolo de escucha configurado (por ejemplo, udp).
    • Reemplaza <INTERFACE> por el ID de la interfaz de Cisco.
  5. Establece el nivel de prioridad:

    logging trap Informational
    logging console Informational
    logging severity Informational
    
  6. Establece la instalación de syslog:

    logging facility local6
    
  7. Habilita las marcas de tiempo:

    service timestamps log datetime
    
  8. Guarda y cierra.

  9. Guarda la configuración para que se mantenga después del reinicio:

    copy running-config startup-config
    

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
acción security_result.action_details El valor de este campo se deriva del campo action en el registro sin procesar.
día
descripción metadata.description El valor de este campo se deriva del campo description en el registro sin procesar.
descripción security_result.description El valor de este campo se deriva del campo description en el registro sin procesar.
destination_ip target.asset.ip El valor de este campo se deriva del campo destination_ip en el registro sin procesar.
destination_ip target.ip El valor de este campo se deriva del campo destination_ip en el registro sin procesar.
destination_port target.port El valor de este campo se deriva del campo destination_port en el registro sin procesar.
dispositivo principal.asset.hostname El valor de este campo se deriva del campo device en el registro sin procesar.
dispositivo principal.hostname El valor de este campo se deriva del campo device en el registro sin procesar.
dispositivo target.asset.hostname El valor de este campo se deriva del campo device en el registro sin procesar.
dispositivo target.hostname El valor de este campo se deriva del campo device en el registro sin procesar.
device_ip principal.asset.ip El valor de este campo se deriva del campo device_ip en el registro sin procesar.
device_ip principal.ip El valor de este campo se deriva del campo device_ip en el registro sin procesar.
device_ip target.asset.ip El valor de este campo se deriva del campo device_ip en el registro sin procesar.
device_ip target.ip El valor de este campo se deriva del campo device_ip en el registro sin procesar.
facility principal.resource.type El valor de este campo se deriva del campo facility en el registro sin procesar.
header_data metadata.product_log_id El valor de este campo se deriva del campo header_data en el registro sin procesar.
header_data target.asset.ip El valor de este campo se deriva del campo header_data en el registro sin procesar.
header_data target.ip El valor de este campo se deriva del campo header_data en el registro sin procesar.
Nombre de host principal.asset.hostname El valor de este campo se deriva del campo hostname en el registro sin procesar.
Nombre de host principal.hostname El valor de este campo se deriva del campo hostname en el registro sin procesar.
ip principal.asset.ip El valor de este campo se deriva del campo ip en el registro sin procesar.
ip principal.ip El valor de este campo se deriva del campo ip en el registro sin procesar.
ip_address principal.asset.ip El valor de este campo se deriva del campo ip_address en el registro sin procesar.
ip_address principal.ip El valor de este campo se deriva del campo ip_address en el registro sin procesar.
ip_protocol network.ip_protocol El valor de este campo se deriva del campo ip_protocol en el registro sin procesar.
mac principal.mac El valor de este campo se deriva del campo mac en el registro sin procesar.
mnemonic network.dhcp.opcode El valor de este campo se deriva del campo mnemonic en el registro sin procesar.
mnemonic metadata.product_event_type El valor de este campo se deriva del campo mnemonic en el registro sin procesar.
mes
p_ip principal.asset.ip El valor de este campo se deriva del campo p_ip en el registro sin procesar.
p_ip principal.ip El valor de este campo se deriva del campo p_ip en el registro sin procesar.
puerto target.port El valor de este campo se deriva del campo port en el registro sin procesar.
priority
protocolo network.ip_protocol El valor de este campo se deriva del campo protocol en el registro sin procesar.
Reason
regla security_result.rule_id El valor de este campo se deriva del campo rule en el registro sin procesar.
sec_result_action security_result.action El valor de este campo se deriva del campo sec_result_action en el registro sin procesar.
gravedad,
source principal.asset.ip El valor de este campo se deriva del campo source en el registro sin procesar.
source principal.ip El valor de este campo se deriva del campo source en el registro sin procesar.
source_ip network.dhcp.ciaddr El valor de este campo se deriva del campo source_ip en el registro sin procesar.
source_ip principal.asset.ip El valor de este campo se deriva del campo source_ip en el registro sin procesar.
source_ip principal.ip El valor de este campo se deriva del campo source_ip en el registro sin procesar.
source_mac network.dhcp.chaddr El valor de este campo se deriva del campo source_mac en el registro sin procesar.
source_port principal.port El valor de este campo se deriva del campo source_port en el registro sin procesar.
resumen security_result.summary El valor de este campo se deriva del campo summary en el registro sin procesar.
hora
Zona horaria
usuario principal.user.userid El valor de este campo se deriva del campo user en el registro sin procesar.
usuario target.user.userid El valor de este campo se deriva del campo user en el registro sin procesar.
cuando
año
extensions.auth.type MÁQUINA
metadata.log_type CISCO_SWITCH
metadata.vendor_name Cisco
metadata.product_name Switch de Cisco
network.application_protocol DHCP
network.dhcp.type SOLICITUD
intermediary_ip event.idm.read_only_udm.intermediary.ip y event.idm.read_only_udm.intermediary.asset.ip Asignado desde el registro de cambios
priority event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
product_log_id event.idm.read_only_udm.metadata.product_log_id Asignado desde el registro de cambios
_time event.idm.read_only_udm.metadata.collected_timestamp Asignado desde el registro de cambios
vlan_data event.idm.read_only_udm.intermediary.resource.attribute.labels Asignado desde el registro de cambios
intermediary_ip event.idm.read_only_udm.intermediary.ip Asignado desde el registro de cambios
intermediary_ip event.idm.read_only_udm.intermediary.asset.ip Asignado desde el registro de cambios
time_stamp event.idm.read_only_udm.metadata.event_timestamp Asignado desde el registro de cambios
process_name event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
switch_id event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
log_seq_num event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
log_seq_num_2 event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
p_interface event.idm.read_only_udm.principal.resource.name Asignado desde el registro de cambios
audit_session_id event.idm.read_only_udm.security_result.detection_fields Asignado desde el registro de cambios
mac event.idm.read_only_udm.principal.mac Asignado desde el registro de cambios
packets event.idm.read_only_udm.network.sent_packets Asignado desde el registro de cambios
facility event.idm.read_only_udm.principal.resource.resource_subtype Asignado desde el registro de cambios
seq_num event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
device_hostname event.idm.read_only_udm.principal.hostname y event.idm.read_only_udm.principal.asset.hostname Asignado desde el registro de cambios
id event.idm.read_only_udm.principal.user.userid Asignado desde el registro de cambios
seq_num event.idm.read_only_udm.target.user.userid Asignado desde el registro de cambios
log_message event.idm.read_only_udm.metadata.description Asignado desde el registro de cambios
syslog_tag event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
syslog_pri event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
appcat event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
applist event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
dstintf event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
dstintfrole event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
mastersrcmac event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
osname event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
poluuid event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
service event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
srchwvendor event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
srcintf event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
srcintfrole event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
srcserver event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
transport event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
trandisp event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
vd event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
vwlid event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
devid event.idm.read_only_udm.intermediary.asset.product_object_id Asignado desde el registro de cambios
devname event.idm.read_only_udm.intermediary.hostname Asignado desde el registro de cambios
logid event.idm.read_only_udm.metadata.product_log_id Asignado desde el registro de cambios
subtype event.idm.read_only_udm.network.direction Asignado desde el registro de cambios
proto event.idm.read_only_udm.network.ip_protocol Asignado desde el registro de cambios
rcvdbyte event.idm.read_only_udm.network.received_bytes Asignado desde el registro de cambios
sentbyte event.idm.read_only_udm.network.sent_bytes Asignado desde el registro de cambios
sentpkt event.idm.read_only_udm.network.sent_packets Asignado desde el registro de cambios
duration event.idm.read_only_udm.network.session_duration.seconds Asignado desde el registro de cambios
sessionid event.idm.read_only_udm.network.session_id Asignado desde el registro de cambios
srcname event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.principal.hostname Asignado desde el registro de cambios
srcip event.idm.read_only_udm.principal.asset.ip, event.idm.read_only_udm.principal.ip Asignado desde el registro de cambios
srcmac event.idm.read_only_udm.principal.asset.mac, event.idm.read_only_udm.principal.mac Asignado desde el registro de cambios
osname event.idm.read_only_udm.principal.asset.platform_software.platform Asignado desde el registro de cambios
srcswversion event.idm.read_only_udm.principal.asset.platform_software.platform_version Asignado desde el registro de cambios
srccountry event.idm.read_only_udm.principal.location.country_or_region Asignado desde el registro de cambios
transip event.idm.read_only_udm.principal.nat_ip Asignado desde el registro de cambios
srcport event.idm.read_only_udm.principal.port Asignado desde el registro de cambios
action event.idm.read_only_udm.security_result.action Asignado desde el registro de cambios
policyid event.idm.read_only_udm.security_result.rule_id Asignado desde el registro de cambios
policyname event.idm.read_only_udm.security_result.rule_name Asignado desde el registro de cambios
policytype event.idm.read_only_udm.security_result.rule_type Asignado desde el registro de cambios
level event.idm.read_only_udm.security_result.severity Asignado desde el registro de cambios
action event.idm.read_only_udm.security_result.summary Asignado desde el registro de cambios
dstip event.idm.read_only_udm.target.asset.ip, event.idm.read_only_udm.target.ip Asignado desde el registro de cambios
dstcountry event.idm.read_only_udm.target.location.country_or_region Asignado desde el registro de cambios
dstport event.idm.read_only_udm.target.port Asignado desde el registro de cambios
device principle.hostname Asignado desde el registro de cambios
username3 principal.user.userid Asignado desde el registro de cambios
login_status security_result.summary Asignado desde el registro de cambios
ecs.version metadata.product_version Asignado desde el registro de cambios
fileset.name", "flow.locality", "flow.id", "input.type", "netflow.exporter.source_id", and "netflow.exporter.uptime_millis additional.fields Asignado desde el registro de cambios
network.transport network.ip_protocol Asignado desde el registro de cambios
netflow.post_nat_source_ipv4_address principal.ip Asignado desde el registro de cambios
netflow.source_transport_port principal.port Asignado desde el registro de cambios
network.direction network.direction Asignado desde el registro de cambios
intermediary_ip intermediary.ip Asignado desde el registro de cambios
intermediary_hostname intermediary.hostname Asignado desde el registro de cambios
principal_host principal.hostname Asignado desde el registro de cambios
src_mac principal.mac Asignado desde el registro de cambios
eventSummary metadata.product_event_type Asignado desde el registro de cambios
error_msg security_result.detection_fields Asignado desde el registro de cambios
pid principal.process.pid Asignado desde el registro de cambios
srcPort principal.port Asignado desde el registro de cambios
srcUser principal.user.userid Asignado desde el registro de cambios
username1 target.user.userid Asignado desde el registro de cambios
command target.process.command_line Asignado desde el registro de cambios
PWD target.process.file.full_path Asignado desde el registro de cambios
node_id", "cluster_id", "exception", "UniqueId", and "app_id additional.fields Asignado desde el registro de cambios
DEVICE principal.mac Asignado desde el registro de cambios
SRC principal.ip Asignado desde el registro de cambios
SPT principal.port Asignado desde el registro de cambios
DST target.ip Asignado desde el registro de cambios
DPT target.port Asignado desde el registro de cambios
ID network.session_id Asignado desde el registro de cambios
LEN network.session_duration.seconds Asignado desde el registro de cambios
PROTO network.ip_protocol Asignado desde el registro de cambios
IN", "OUT", "PHYSIN", "WINDOW", "RES, "TOS", "PREC", "TTL" ,"URGP", "MAC", "radio", "vap", "auth_type", "sugg_band", "ssid_id", "ssid_profile_name" and "protocol additional.fields Asignado desde el registro de cambios
client_mac principal.mac Asignado desde el registro de cambios
aid network.session_id Asignado desde el registro de cambios
rssi intermediary.asset.product_object_id Asignado desde el registro de cambios
channel security_result.detection_fields Asignado desde el registro de cambios
eventSummary", "dhcp_ip", "client_mac", "aid" and "ip_src metadata.product_event_type Asignado desde el registro de cambios
mac", "src", "sport", "dst", "dport", "action", "protocol", "url" and "signature principal.mac Asignado desde el registro de cambios
metadata.event_type" and "extensions.auth.type USER_LOGIN Asignado desde el registro de cambios
eventSummary", "aid", "rssi", "channel", "last_known_client_ip" and "event_type security_result.summary Asignado desde el registro de cambios
pid target.process.pid Asignado desde el registro de cambios
app_name target.application Asignado desde el registro de cambios

Registro de cambios

Consulta el registro de cambios de este analizador

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