Recopila registros de WatchGuard Fireware

Compatible con:

Descripción general

Este analizador extrae los registros de WatchGuard Fireware en formato JSON o de clave-valor (KV) y los transforma en UDM. Maneja los registros de "Tráfico" y "Evento" de manera diferente, ya que utiliza filtros grok y kv para extraer campos y asignarlos al UDM, con lógica específica para varios valores de msg_id y nombres de eventos, y controla protocolos de red, acciones del 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 del UDM.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a WatchGuard.
  • Asegúrate de tener un host de Windows 2012 SP2 o posterior, o bien 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.

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.

Obtén el ID de cliente de Google SecOps

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

Instala el agente de BindPlane

  1. Para la instalación 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 la instalación en 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 encontrar opciones de instalación adicionales en esta guía de instalación.

Configura el agente de Bindplane para que ingiera Syslog y lo envíe a Google SecOps

  1. Accede a la máquina en la 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

Agrega la configuración del servidor Syslog a Watchguard

  1. Accede a la IU de Watchguard.
  2. Selecciona System > Logging.
  3. Haz clic en la pestaña Servidor Syslog.
  4. Selecciona la casilla de verificación Send log messages to these syslog servers.
  5. Haz clic en Agregar.
  6. Especifica valores para los parámetros de entrada en el diálogo Servidor Syslog:

    • Dirección IP: Escribe la dirección IP del servidor.
    • Puerto: Cambia el puerto predeterminado del servidor syslog (514) y escribe un puerto diferente para tu servidor.
    • Formato de registro: Selecciona Syslog en el menú desplegable.
    • Opcional: Descripción: Escribe una descripción para el servidor (por ejemplo, Exportación de SecOps de Google).
    • Opcional: La marca de tiempo: Selecciona la casilla de verificación para incluir la fecha y la hora en que se produce el evento en los detalles del mensaje de registro de tu Firebox.
    • Opcional: El número de serie del dispositivo selecciona la casilla de verificación para incluir el número de serie de la Firebox en los detalles del mensaje de registro.
    • Instalación de Syslog: Para cada tipo de mensaje de registro, selecciona una prioridad en el menú desplegable (por ejemplo, para los mensajes de Syslog de alta prioridad, como las alarmas, selecciona Local0).
    • Opcional: Restablecer la configuración predeterminada: Para restablecer 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 "Action over resource".
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 (p.ej., "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 (p.ej., "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 asigna 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 (p.ej., "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 asigna al objeto IDM en los ejemplos de UDM proporcionados.
elapsed_time Sin asignar No se asigna 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 con "ID de firewall : " y se asigna a intermediary.asset_id.
firewall_name principal.asset_id El valor de firewall_name del registro sin procesar se antepone 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 asigna al objeto IDM en los ejemplos de UDM proporcionados.
geo Sin asignar No se asigna 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 asigna 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 asigna al objeto IDM en los ejemplos de UDM proporcionados.
ipsec_policy Sin asignar No se asigna al objeto IDM en los ejemplos de UDM proporcionados.
ipsec_policy_version Sin asignar No se asigna al objeto IDM en los ejemplos de UDM proporcionados.
keyword Sin asignar No se asigna al objeto IDM en los ejemplos de UDM proporcionados.
line Sin asignar No se asigna 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 establece en "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 (p.ej., "ProxyReplace: IP protocol - 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 asigna 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 asigna 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. Se aplica un tratamiento especial a "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. Manejo especial para los tipos de consultas numéricas y la asignación a los tipos de consultas de DNS estándar.
rc Sin asignar No se asigna 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 asigna 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 asigna 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 de DNS correspondiente en network.dns.response_code.
route_type Sin asignar No se asigna 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 asigna al objeto IDM en los ejemplos de UDM proporcionados.
severity Sin asignar No se asigna 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 asigna 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 asigna 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 asigna al objeto IDM en los ejemplos de UDM proporcionados.
srv_port Sin asignar No se asigna al objeto IDM en los ejemplos de UDM proporcionados.
ssl_offload Sin asignar No se asigna al objeto IDM en los ejemplos de UDM proporcionados.
tcp_info Sin asignar No se asigna 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 completar 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 completar 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 asigna 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 según el contexto.
user_type Sin asignar No se asigna al objeto IDM en los ejemplos de UDM proporcionados.
(N/A) intermediary.resource.type Siempre se establece en "ACCESS_POLICY".
(N/A) metadata.event_type La lógica del analizador determina este campo 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 establece en "Firmware".
(N/A) metadata.vendor_name Siempre se establece en "Watchguard".
(N/A) security_result.action Se determina según la lógica del analizador en función de disposition. Puede ser "ALLOW" o "BLOCK".
(N/A) extensions.auth.type Se establece en "AUTHTYPE_UNSPECIFIED" para los eventos de acceso o cierre de sesión del usuario, y en "VPN" para los eventos de red relacionados con las VPN.
(N/A) network.application_protocol Se determina según 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 establece en 1 para las búsquedas de registros "A".
(N/A) target.labels.key Se establece en "Acción sobre el recurso" cuando action se asigna a target.labels.value.
(N/A) intermediary.labels.key Se establece en "Nombre de miembro del firewall" cuando prin_host se asigna a intermediary.labels.value.
(N/A) intermediary.labels.key Se establece en "Gateway-Endpoint" cuando endpoint se asigna a intermediary.labels.value.
(N/A) principal.labels.key Se establece en "Puerta de enlace" cuando gateway se asigna a principal.labels.value.
(N/A) target.labels.key Se establece en "Puerta de enlace" cuando gateway se asigna a target.labels.value.
(N/A) principal.labels.key Se establece en "state" cuando status se asigna a principal.labels.value.
(N/A) target.labels.key Se establece en "Estado de la puerta de enlace" cuando status se asigna a target.labels.value.
(N/A) additional.fields.key Se establece en "signature_name", "signature_cat", "signature_id" o "reputation" cuando los valores correspondientes se asignan desde el registro sin procesar.

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