Recopila registros de WatchGuard Fireware
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
- Accede a la consola de Google SecOps.
- Ve a SIEM Settings > Collection Agents.
- Descarga el archivo de autenticación de transferencia.
Obtén el ID de cliente de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración del SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
- 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
. - 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
. - 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
- Accede a la máquina en la que está instalado Bindplane.
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
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
- Accede a la IU de Watchguard.
- Selecciona System > Logging.
- Haz clic en la pestaña Servidor Syslog.
- Selecciona la casilla de verificación Send log messages to these syslog servers.
- Haz clic en Agregar.
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
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.