Recoger registros de WatchGuard Fireware

Disponible en:

Información general

Este analizador extrae los registros de WatchGuard Fireware en formato JSON o de pares clave-valor (KV) y los transforma en UDM. Gestiona los registros "Tráfico" y "Evento" de forma diferente, usando filtros grok y kv para extraer campos y asignarlos a UDM, con una lógica específica para varios valores de msg_id y nombres de eventos, gestionando protocolos de red, acciones de usuario, resultados de seguridad y otros detalles relevantes. También procesa un segundo grupo de entradas de syslog, extrae información similar y la asigna al formato UDM.

Antes de empezar

  • Asegúrate de que tienes una instancia de Google SecOps.
  • Asegúrate de que tienes acceso privilegiado a Watchguard.
  • Asegúrate de tener un host Windows 2012 SP2 o 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.

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.

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

  1. Para instalar en Windows, ejecuta la siguiente secuencia de comandos: msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet.
  2. Para instalar Linux, ejecuta la siguiente secuencia de comandos: sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh.
  3. Puedes consultar otras opciones de instalación en esta guía de instalación.

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

  1. Accede al equipo en el que está instalado Bindplane.
  2. 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: testNamespace
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Reinicia el agente de Bindplane para aplicar los cambios con el siguiente comando: sudo systemctl bindplane restart

Añadir la configuración del servidor Syslog a Watchguard

  1. Inicia sesión en la interfaz de usuario de Watchguard.
  2. Selecciona Sistema > Registro.
  3. Haz clic en la pestaña Servidor Syslog.
  4. Selecciona la casilla Enviar mensajes de registro a estos servidores syslog.
  5. Haz clic en Añadir.
  6. Especifica los valores de los parámetros de entrada en el cuadro de diálogo Servidor Syslog:

    • Dirección IP: escribe la dirección IP del servidor.
    • Puerto: cambia el puerto predeterminado del servidor syslog (514) e introduce otro puerto para tu servidor.
    • Formato de registro: selecciona Syslog en el menú desplegable.
    • Opcional: Descripción: escribe una descripción del servidor (por ejemplo, Exportación de Google SecOps).
    • Opcional: Marca de tiempo: selecciona la casilla para incluir la fecha y la hora en las que se produce el evento en los detalles del mensaje de registro de tu Firebox.
    • Opcional: Número de serie del dispositivo: selecciona la casilla para incluir el número de serie del Firebox en los detalles del mensaje de registro.
    • Instalación de Syslog: para cada tipo de mensaje de registro, seleccione una prioridad en el menú desplegable (por ejemplo, para los mensajes de Syslog de alta prioridad, como las alarmas, seleccione Local0).
    • Opcional: Restaurar valores predeterminados para restaurar la configuración predeterminada.
  7. Haz clic en Guardar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
action security_result.action_details El valor de action del registro sin procesar se asigna a security_result.action_details.
action target.labels.value El valor de action del registro sin procesar se asigna a target.labels.value, y target.labels.key es "Acción sobre el recurso".
arg target.file.full_path El valor de arg del registro sin procesar se asigna a target.file.full_path.
app_cat_id about.labels.value El valor de app_cat_id del registro sin procesar se asigna a about.labels.value, y about.labels.key es "app_cat_id".
app_cat_name target.application Se usa en combinación con app_name para formar el valor de target.application (por ejemplo, "Google - Web services").
app_id about.labels.value El valor de app_id del registro sin procesar se asigna a about.labels.value, y about.labels.key es "app_id".
app_name target.application Se usa en combinación con app_cat_name para formar el valor de target.application (por ejemplo, "Google - Web services").
cats security_result.category_details El valor de cats del registro sin procesar se asigna a security_result.category_details.
cert_issuer network.tls.server.certificate.issuer El valor de cert_issuer del registro sin procesar se asigna a network.tls.server.certificate.issuer.
cert_subject network.tls.server.certificate.subject El valor de cert_subject del registro sin procesar se asigna a network.tls.server.certificate.subject.
cn network.tls.server.certificate.subject El valor de cn del registro sin procesar se asigna a network.tls.server.certificate.subject.
conn_action security_result.action_details El valor de conn_action del registro sin procesar se asigna a security_result.action_details.
content_type Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
description metadata.description El valor de description derivado del registro sin procesar se asigna a metadata.description.
dhcp_type network.dhcp.type El valor de dhcp_type del registro sin procesar se asigna al tipo de DHCP correspondiente en network.dhcp.type (por ejemplo, "REQUEST", "ACK").
dst_host target.hostname El valor de dst_host del registro sin procesar se asigna a target.hostname.
dst_ip target.ip El valor de dst_ip del registro sin procesar se asigna a target.ip.
dst_mac target.mac El valor de dst_mac del registro sin procesar se asigna a target.mac.
dst_port target.port El valor de dst_port del registro sin procesar se asigna a target.port.
dst_user target.user.user_display_name El valor de dst_user del registro sin procesar se asigna a target.user.user_display_name.
dstname target.administrative_domain El valor de dstname del registro sin procesar se asigna a target.administrative_domain.
duration Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
elapsed_time Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
endpoint intermediary.labels.value El valor de endpoint del registro sin procesar se asigna a intermediary.labels.value, y intermediary.labels.key es "Gateway-Endpoint".
event_name principal.application El valor de event_name del registro sin procesar se asigna a principal.application.
firewall_id intermediary.asset_id El valor de firewall_id del registro sin procesar se antepone a "Firewall ID : " y se asigna a intermediary.asset_id.
firewall_name principal.asset_id El valor de firewall_name del registro sin procesar se añade al principio con "Firewall: " y se asigna a principal.asset_id.
firewallname intermediary.hostname El valor de firewallname del registro sin procesar se asigna a intermediary.hostname.
firewallname principal.hostname El valor de firewallname del registro sin procesar se asigna a principal.hostname.
fqdn_dst_match Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
geo Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
geo_dst target.location.country_or_region El valor de geo_dst del registro sin procesar se asigna a target.location.country_or_region.
geo_src principal.location.country_or_region El valor de geo_src del registro sin procesar se asigna a principal.location.country_or_region.
host Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
ike_policy security_result.rule_id El valor de ike_policy del registro sin procesar se asigna a security_result.rule_id.
ike_policy_version security_result.rule_version El valor de ike_policy_version del registro sin procesar se asigna a security_result.rule_version.
intermediary_host intermediary.hostname El valor de intermediary_host del registro sin procesar se asigna a intermediary.hostname.
ipaddress Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
ipsec_policy Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
ipsec_policy_version Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
keyword Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
line Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
log_message metadata.description El valor de log_message del registro sin procesar se asigna a metadata.description cuando no hay otras descripciones más específicas disponibles.
log_reason security_result.summary El valor de log_reason del registro sin procesar se asigna a security_result.summary.
log_type metadata.log_type El valor de log_type del registro sin procesar se asigna a metadata.log_type. Siempre se le asigna el valor "WATCHGUARD".
msg security_result.summary El valor de msg del registro sin procesar se asigna a security_result.summary.
msg_id metadata.product_event_type El valor de msg_id del registro sin procesar se asigna a metadata.product_event_type.
new_action security_result.action_details Se usa con conn_action para formar el valor de security_result.action_details (por ejemplo, ProxyReplace: protocolo IP - HTTPS-Client.DPI-Off").
op network.http.method El valor de op del registro sin procesar se asigna a network.http.method.
path target.url El valor de path del registro sin procesar se asigna a target.url.
pid Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
policy_name intermediary.resource.name El valor de policy_name del registro sin procesar se asigna a intermediary.resource.name.
policy_name security_result.rule_name El valor de policy_name del registro sin procesar se asigna a security_result.rule_name.
policyname_label.value security_result.rule_labels.value El valor de policy_name del registro sin procesar se asigna a security_result.rule_labels.value, y security_result.rule_labels.key es "PolicyName".
prin_host principal.hostname El valor de prin_host del registro sin procesar se asigna a principal.hostname.
proc_id Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
protocol network.ip_protocol El valor de protocol del registro sin procesar, convertido a mayúsculas, se asigna a network.ip_protocol. Gestión especial de "EXTERNAL ICMP", que se asigna a "ICMP".
proxy_act security_result.rule_id El valor de proxy_act del registro sin procesar se asigna a security_result.rule_id.
proxy_act security_result.rule_name El valor de proxy_act del registro sin procesar se asigna a security_result.rule_name.
query_name network.dns.questions.name El valor de query_name del registro sin procesar se asigna a network.dns.questions.name.
query_type network.dns.questions.type El valor de query_type del registro sin procesar se asigna a network.dns.questions.type. Gestión especial de los tipos de consulta numérica y asignación a los tipos de consulta de DNS estándar.
rc Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
reason security_result.summary El valor de reason del registro sin procesar se asigna a security_result.summary.
record_type network.dns.answers.type El valor de record_type del registro sin procesar se asigna al tipo de registro DNS correspondiente en network.dns.answers.type.
redirect_action Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
reputation additional.fields.value.string_value El valor de reputation del registro sin procesar se asigna a additional.fields.value.string_value, y additional.fields.key es "reputation".
response Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
response_code network.dns.response_code El valor de response_code del registro sin procesar se asigna al código de respuesta DNS correspondiente en network.dns.response_code.
route_type Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
rule_name security_result.rule_name El valor de rule_name del registro sin procesar se asigna a security_result.rule_name.
rcvd_bytes network.received_bytes El valor de rcvd_bytes del registro sin procesar se asigna a network.received_bytes.
sent_bytes network.sent_bytes El valor de sent_bytes del registro sin procesar se asigna a network.sent_bytes.
server_ssl Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
severity Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
sig_vers network.tls.server.certificate.version El valor de sig_vers del registro sin procesar se asigna a network.tls.server.certificate.version.
signature_cat additional.fields.value.string_value El valor de signature_cat del registro sin procesar se asigna a additional.fields.value.string_value, y additional.fields.key es "signature_cat".
signature_id additional.fields.value.string_value El valor de signature_id del registro sin procesar se asigna a additional.fields.value.string_value, y additional.fields.key es "signature_id".
signature_name additional.fields.value.string_value El valor de signature_name del registro sin procesar se asigna a additional.fields.value.string_value, y additional.fields.key es "signature_name".
sni network.tls.client.server_name El valor de sni del registro sin procesar se asigna a network.tls.client.server_name.
src_ctid Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
src_host principal.hostname El valor de src_host del registro sin procesar se asigna a principal.hostname.
src_ip principal.ip El valor de src_ip del registro sin procesar se asigna a principal.ip.
src_ip_nat Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
src_mac principal.mac El valor de src_mac del registro sin procesar se asigna a principal.mac.
src_port principal.port El valor de src_port del registro sin procesar se asigna a principal.port.
src_user principal.user.user_display_name El valor de src_user del registro sin procesar se asigna a principal.user.user_display_name.
src_user_name principal.user.user_display_name El valor de src_user_name del registro sin procesar se asigna a principal.user.user_display_name.
src_vpn_ip principal.ip El valor de src_vpn_ip del registro sin procesar se asigna a principal.ip.
srv_ip Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
srv_port Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
ssl_offload Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
tcp_info Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
time metadata.event_timestamp.seconds, timestamp.seconds El valor de time del registro sin procesar se analiza y se usa para rellenar metadata.event_timestamp.seconds y timestamp.seconds.
time1 metadata.event_timestamp.seconds, timestamp.seconds El valor de time1 del registro sin procesar se analiza y se usa para rellenar metadata.event_timestamp.seconds y timestamp.seconds.
tls_profile about.labels.value El valor de tls_profile del registro sin procesar se asigna a about.labels.value, y about.labels.key es "tls_profile".
tls_version Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
user_name principal.user.userid, principal.user.user_display_name El valor de user_name del registro sin procesar se asigna a principal.user.userid o principal.user.user_display_name en función del contexto.
user_type Sin asignar No se ha asignado al objeto IDM en los ejemplos de UDM proporcionados.
(N/A) intermediary.resource.type Siempre se le asigna el valor "ACCESS_POLICY".
(N/A) metadata.event_type Determinado por la lógica del analizador en función de msg_id, log_type, event_name y otros campos. Puede ser NETWORK_CONNECTION, SERVICE_MODIFICATION, NETWORK_SMTP, NETWORK_DNS, NETWORK_HTTP, USER_LOGIN, USER_LOGOUT, USER_RESOURCE_UPDATE_CONTENT, RESOURCE_PERMISSIONS_CHANGE, RESOURCE_CREATION, GENERIC_EVENT, STATUS_UPDATE o USER_UNCATEGORIZED.
(N/A) metadata.product_name Siempre se le asigna el valor "Firmware".
(N/A) metadata.vendor_name Siempre se le asigna el valor "Watchguard".
(N/A) security_result.action Determinado por la lógica del analizador en función de disposition. Puede ser "ALLOW" o "BLOCK".
(N/A) extensions.auth.type Se define como "AUTHTYPE_UNSPECIFIED" para los eventos de inicio y cierre de sesión de usuario, y como "VPN" para los eventos de red relacionados con VPNs.
(N/A) network.application_protocol Determinado por la lógica del analizador en función de msg_id y event_name. Puede ser "DNS", "DHCP", "HTTP" o "HTTPS".
(N/A) network.dns.questions.type Se define como 1 para las consultas de registros "A".
(N/A) target.labels.key Se define como "Acción sobre el recurso" cuando action se asigna a target.labels.value.
(N/A) intermediary.labels.key Selecciona "Nombre de miembro del cortafuegos" cuando prin_host se asigne a intermediary.labels.value.
(N/A) intermediary.labels.key Se define como "Gateway-Endpoint" cuando endpoint se asigna a intermediary.labels.value.
(N/A) principal.labels.key Se asigna el valor "Gateway" cuando gateway se asigna a principal.labels.value.
(N/A) target.labels.key Se asigna el valor "Gateway" cuando gateway se asigna a target.labels.value.
(N/A) principal.labels.key Se define como "state" cuando status se asigna a principal.labels.value.
(N/A) target.labels.key Se asigna el valor "Estado de la pasarela" cuando status se asigna a target.labels.value.
(N/A) additional.fields.key Se asigna el valor "signature_name", "signature_cat", "signature_id" o "reputation" cuando los valores correspondientes se asignan desde el registro sin procesar.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.