Raccogliere i log di WatchGuard Fireware

Supportato in:

Panoramica

Questo parser estrae i log di WatchGuard Fireware in formato JSON o chiave-valore (KV), trasformandoli in UDM. Gestisce i log "Traffico" ed "Evento" in modo diverso, utilizzando i filtri grok e kv per estrarre i campi e mapparli in UDM, con una logica specifica per vari valori msg_id e nomi di eventi, gestendo protocolli di rete, azioni utente, risultati di sicurezza e altri dettagli pertinenti. Elabora anche un secondo gruppo di voci syslog, estraendo informazioni simili e mappandole nel formato UDM.

Prima di iniziare

  • Assicurati di avere un'istanza Google SecOps.
  • Assicurati di disporre dell'accesso privilegiato a Watchguard.
  • Assicurati di avere un host Windows 2012 SP2 o versioni successive o Linux con systemd.
  • Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte.

Recuperare il file di autenticazione importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione importazione.

Recuperare l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa l'agente Bindplane

  1. Per l'installazione di Windows, esegui il seguente script: msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet.
  2. Per l'installazione di Linux, esegui lo script seguente: sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh.
  3. Ulteriori opzioni di installazione sono disponibili in questa guida all'installazione.

Configura l'agente Bindplane per importare Syslog e inviarlo a Google SecOps

  1. Accedi alla macchina in cui è installato Bindplane.
  2. Modifica il file config.yaml come segue:

    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. Riavvia Bindplane Agent per applicare le modifiche utilizzando il seguente comando: sudo systemctl bindplane restart

Aggiungere la configurazione del server Syslog a Watchguard

  1. Accedi all'interfaccia utente di Watchguard.
  2. Seleziona Sistema > Logging.
  3. Fai clic sulla scheda Server Syslog.
  4. Seleziona la casella di controllo Invia messaggi di log a questi server syslog.
  5. Fai clic su Aggiungi.
  6. Specifica i valori per i parametri di input nella finestra di dialogo Server Syslog:

    • Indirizzo IP: digita l'indirizzo IP del server.
    • Porta: modifica la porta del server syslog predefinita (514), digita una porta diversa per il server.
    • Formato log: seleziona Syslog dal menu a discesa.
    • (Facoltativo) Descrizione: digita una descrizione per il server (ad esempio, Esportazione Google SecOps).
    • (Facoltativo) Il timestamp: seleziona la casella di controllo per includere la data e l'ora in cui si verifica l'evento nei dettagli del messaggio di log su Firebox.
    • (Facoltativo) Il numero di serie del dispositivo seleziona la casella di controllo per includere il numero di serie di Firebox nei dettagli del messaggio di log.
    • Funzione Syslog: per ogni tipo di messaggio di log, seleziona una priorità dal menu a discesa (ad esempio, per i messaggi syslog ad alta priorità, come gli allarmi, seleziona Local0).
    • (Facoltativo) Ripristina impostazioni predefinite: per ripristinare le impostazioni predefinite.
  7. Fai clic su Salva.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
action security_result.action_details Il valore di action del log non elaborato viene assegnato a security_result.action_details.
action target.labels.value Il valore di action del log non elaborato viene assegnato a target.labels.value, mentre target.labels.key è "Azione sulla risorsa".
arg target.file.full_path Il valore di arg del log non elaborato viene assegnato a target.file.full_path.
app_cat_id about.labels.value Il valore di app_cat_id dal log non elaborato viene assegnato a about.labels.value, con about.labels.key impostato su "app_cat_id".
app_cat_name target.application Utilizzato in combinazione con app_name per formare il valore di target.application (ad es. "Google - Web services").
app_id about.labels.value Il valore di app_id del log non elaborato viene assegnato a about.labels.value, con about.labels.key impostato su "app_id".
app_name target.application Utilizzato in combinazione con app_cat_name per formare il valore di target.application (ad es. "Google - Web services").
cats security_result.category_details Il valore di cats del log non elaborato viene assegnato a security_result.category_details.
cert_issuer network.tls.server.certificate.issuer Il valore di cert_issuer del log non elaborato viene assegnato a network.tls.server.certificate.issuer.
cert_subject network.tls.server.certificate.subject Il valore di cert_subject del log non elaborato viene assegnato a network.tls.server.certificate.subject.
cn network.tls.server.certificate.subject Il valore di cn del log non elaborato viene assegnato a network.tls.server.certificate.subject.
conn_action security_result.action_details Il valore di conn_action del log non elaborato viene assegnato a security_result.action_details.
content_type Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
description metadata.description Il valore di description derivato dal log non elaborato viene assegnato a metadata.description.
dhcp_type network.dhcp.type Il valore di dhcp_type del log non elaborato viene mappato al tipo DHCP corrispondente in network.dhcp.type (ad es. "REQUEST", "ACK").
dst_host target.hostname Il valore di dst_host del log non elaborato viene assegnato a target.hostname.
dst_ip target.ip Il valore di dst_ip del log non elaborato viene assegnato a target.ip.
dst_mac target.mac Il valore di dst_mac del log non elaborato viene assegnato a target.mac.
dst_port target.port Il valore di dst_port del log non elaborato viene assegnato a target.port.
dst_user target.user.user_display_name Il valore di dst_user del log non elaborato viene assegnato a target.user.user_display_name.
dstname target.administrative_domain Il valore di dstname del log non elaborato viene assegnato a target.administrative_domain.
duration Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
elapsed_time Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
endpoint intermediary.labels.value Il valore di endpoint del log non elaborato viene assegnato a intermediary.labels.value, con intermediary.labels.key impostato su "Gateway-Endpoint".
event_name principal.application Il valore di event_name del log non elaborato viene assegnato a principal.application.
firewall_id intermediary.asset_id Il valore di firewall_id del log non elaborato viene preceduto da "ID firewall : " e assegnato a intermediary.asset_id.
firewall_name principal.asset_id Il valore di firewall_name del log non elaborato viene anteposto a "Firewall: " e assegnato a principal.asset_id.
firewallname intermediary.hostname Il valore di firewallname del log non elaborato viene assegnato a intermediary.hostname.
firewallname principal.hostname Il valore di firewallname del log non elaborato viene assegnato a principal.hostname.
fqdn_dst_match Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
geo Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
geo_dst target.location.country_or_region Il valore di geo_dst del log non elaborato viene assegnato a target.location.country_or_region.
geo_src principal.location.country_or_region Il valore di geo_src del log non elaborato viene assegnato a principal.location.country_or_region.
host Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
ike_policy security_result.rule_id Il valore di ike_policy del log non elaborato viene assegnato a security_result.rule_id.
ike_policy_version security_result.rule_version Il valore di ike_policy_version del log non elaborato viene assegnato a security_result.rule_version.
intermediary_host intermediary.hostname Il valore di intermediary_host del log non elaborato viene assegnato a intermediary.hostname.
ipaddress Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
ipsec_policy Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
ipsec_policy_version Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
keyword Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
line Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
log_message metadata.description Il valore di log_message del log grezzo viene assegnato a metadata.description quando non sono disponibili altre descrizioni più specifiche.
log_reason security_result.summary Il valore di log_reason del log non elaborato viene assegnato a security_result.summary.
log_type metadata.log_type Il valore di log_type del log non elaborato viene assegnato a metadata.log_type. È sempre impostato su "WATCHGUARD".
msg security_result.summary Il valore di msg del log non elaborato viene assegnato a security_result.summary.
msg_id metadata.product_event_type Il valore di msg_id del log non elaborato viene assegnato a metadata.product_event_type.
new_action security_result.action_details Utilizzato con conn_action per formare il valore di security_result.action_details (ad es. "ProxyReplace: IP protocol - HTTPS-Client.DPI-Off").
op network.http.method Il valore di op del log non elaborato viene assegnato a network.http.method.
path target.url Il valore di path del log non elaborato viene assegnato a target.url.
pid Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
policy_name intermediary.resource.name Il valore di policy_name del log non elaborato viene assegnato a intermediary.resource.name.
policy_name security_result.rule_name Il valore di policy_name del log non elaborato viene assegnato a security_result.rule_name.
policyname_label.value security_result.rule_labels.value Il valore di policy_name del log non elaborato viene assegnato a security_result.rule_labels.value, con security_result.rule_labels.key impostato su "PolicyName".
prin_host principal.hostname Il valore di prin_host del log non elaborato viene assegnato a principal.hostname.
proc_id Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
protocol network.ip_protocol Il valore di protocol del log non elaborato, convertito in maiuscolo, viene assegnato a network.ip_protocol. Gestione speciale per "EXTERNAL ICMP", mappato a "ICMP".
proxy_act security_result.rule_id Il valore di proxy_act del log non elaborato viene assegnato a security_result.rule_id.
proxy_act security_result.rule_name Il valore di proxy_act del log non elaborato viene assegnato a security_result.rule_name.
query_name network.dns.questions.name Il valore di query_name del log non elaborato viene assegnato a network.dns.questions.name.
query_type network.dns.questions.type Il valore di query_type del log non elaborato viene assegnato a network.dns.questions.type. Gestione speciale per i tipi di query numeriche e mappatura ai tipi di query DNS standard.
rc Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
reason security_result.summary Il valore di reason del log non elaborato viene assegnato a security_result.summary.
record_type network.dns.answers.type Il valore di record_type del log non elaborato viene mappato al tipo di record DNS corrispondente in network.dns.answers.type.
redirect_action Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
reputation additional.fields.value.string_value Il valore di reputation del log grezzo viene assegnato a additional.fields.value.string_value, con additional.fields.key impostato su "reputation".
response Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
response_code network.dns.response_code Il valore di response_code del log non elaborato viene mappato al codice di risposta DNS corrispondente in network.dns.response_code.
route_type Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
rule_name security_result.rule_name Il valore di rule_name del log non elaborato viene assegnato a security_result.rule_name.
rcvd_bytes network.received_bytes Il valore di rcvd_bytes del log non elaborato viene assegnato a network.received_bytes.
sent_bytes network.sent_bytes Il valore di sent_bytes del log non elaborato viene assegnato a network.sent_bytes.
server_ssl Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
severity Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
sig_vers network.tls.server.certificate.version Il valore di sig_vers del log non elaborato viene assegnato a network.tls.server.certificate.version.
signature_cat additional.fields.value.string_value Il valore di signature_cat dal log non elaborato viene assegnato a additional.fields.value.string_value, con additional.fields.key impostato su "signature_cat".
signature_id additional.fields.value.string_value Il valore di signature_id del log non elaborato viene assegnato a additional.fields.value.string_value, con additional.fields.key impostato su "signature_id".
signature_name additional.fields.value.string_value Il valore di signature_name del log non elaborato viene assegnato a additional.fields.value.string_value, con additional.fields.key impostato su "signature_name".
sni network.tls.client.server_name Il valore di sni del log non elaborato viene assegnato a network.tls.client.server_name.
src_ctid Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
src_host principal.hostname Il valore di src_host del log non elaborato viene assegnato a principal.hostname.
src_ip principal.ip Il valore di src_ip del log non elaborato viene assegnato a principal.ip.
src_ip_nat Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
src_mac principal.mac Il valore di src_mac del log non elaborato viene assegnato a principal.mac.
src_port principal.port Il valore di src_port del log non elaborato viene assegnato a principal.port.
src_user principal.user.user_display_name Il valore di src_user del log non elaborato viene assegnato a principal.user.user_display_name.
src_user_name principal.user.user_display_name Il valore di src_user_name del log non elaborato viene assegnato a principal.user.user_display_name.
src_vpn_ip principal.ip Il valore di src_vpn_ip del log non elaborato viene assegnato a principal.ip.
srv_ip Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
srv_port Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
ssl_offload Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
tcp_info Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
time metadata.event_timestamp.seconds, timestamp.seconds Il valore di time del log non elaborato viene analizzato e utilizzato per compilare metadata.event_timestamp.seconds e timestamp.seconds.
time1 metadata.event_timestamp.seconds, timestamp.seconds Il valore di time1 del log non elaborato viene analizzato e utilizzato per compilare metadata.event_timestamp.seconds e timestamp.seconds.
tls_profile about.labels.value Il valore di tls_profile del log non elaborato viene assegnato a about.labels.value, con about.labels.key impostato su "tls_profile".
tls_version Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
user_name principal.user.userid, principal.user.user_display_name Il valore di user_name del log non elaborato viene assegnato a principal.user.userid o principal.user.user_display_name a seconda del contesto.
user_type Non mappato Non mappato all'oggetto IDM negli esempi UDM forniti.
(N/A) intermediary.resource.type Impostato sempre su "ACCESS_POLICY".
(N/A) metadata.event_type Determinato dalla logica dell'analizzatore sintattico in base a msg_id, log_type, event_name e altri campi. Può essere 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 Sempre impostato su "Fireware".
(N/A) metadata.vendor_name È sempre impostato su "Watchguard".
(N/A) security_result.action Determinato dalla logica del parser in base a disposition. Può essere "ALLOW" o "BLOCK".
(N/A) extensions.auth.type Imposta "AUTHTYPE_UNSPECIFIED" per gli eventi di accesso/disconnessione utente e "VPN" per gli eventi di rete correlati alle VPN.
(N/A) network.application_protocol Determinato dalla logica del parser in base a msg_id e event_name. Può essere "DNS", "DHCP", "HTTP" o "HTTPS".
(N/A) network.dns.questions.type Imposta il valore su 1 per le query dei record "A".
(N/A) target.labels.key Imposta "Azione sulla risorsa" quando action è mappato su target.labels.value.
(N/A) intermediary.labels.key Imposta "Nome membro firewall" quando prin_host è mappato a intermediary.labels.value.
(N/A) intermediary.labels.key Imposta "Gateway-Endpoint" quando endpoint è mappato a intermediary.labels.value.
(N/A) principal.labels.key Imposta "Gateway" quando gateway è mappato a principal.labels.value.
(N/A) target.labels.key Imposta "Gateway" quando gateway è mappato a target.labels.value.
(N/A) principal.labels.key Imposta "state" (stato) quando status è mappato a principal.labels.value.
(N/A) target.labels.key Imposta su "Stato gateway" quando status è mappato su target.labels.value.
(N/A) additional.fields.key Imposta "signature_name", "signature_cat", "signature_id" o "reputation" quando i valori corrispondenti vengono mappati dal log non elaborato.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.