Raccogli i log di WatchGuard Firebox

Supportato in:

Questo documento spiega come importare i log di WatchGuard Firebox in Google Security Operations utilizzando Bindplane. WatchGuard Firebox è un'appliance firewall UTM (Unified Threat Management) che fornisce funzionalità di sicurezza di rete, tra cui ispezione dei pacchetti stateful, prevenzione delle intrusioni, controllo delle applicazioni, filtro URL, antivirus gateway e connettività VPN. I log di Firebox acquisiscono eventi di traffico, avvisi di sicurezza, attività di autenticazione e informazioni sullo stato del sistema.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps.
  • Un host Windows 2016 o versioni successive o Linux con systemd.
  • Se l'esecuzione avviene dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane.
  • Accesso con privilegi alla UI web di WatchGuard Firebox (UI web di Fireware) o a WatchGuard System Manager.

Ottieni le credenziali di Google SecOps per l'agente Bindplane

Per autenticare l'agente Bindplane in Google SecOps, scegli uno dei seguenti metodi:

  • Nuovi deployment: utilizza l'API Chronicle (opzione 1).
  • Deployment legacy: continua a utilizzare il file di autenticazione dell'acquisizione (Opzione 2) fino alla dismissione dell'API Ingestion il 20 luglio 2027.
  1. Accedi alla consoleGoogle Cloud e seleziona il progetto Google Cloud collegato alla tua istanza Google SecOps.
  2. Vai a IAM e amministrazione > Service account.
  3. Fai clic su Crea service account.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome service account: inserisci un nome per l'account (ad esempio, bindplane-ingest).
    • Descrizione service account: inserisci una descrizione (ad esempio Bindplane agent log ingestion).
  5. Fai clic su Crea e continua.
  6. Nella sezione Concedi a questo account di servizio l'accesso al progetto, fai clic su Seleziona un ruolo e seleziona Editor Chronicle.
  7. Fai clic su Continua, quindi su Fine.
  8. Fai clic sul account di servizio che hai creato, quindi vai alla scheda Chiavi.
  9. Fai clic su Aggiungi chiave > Crea nuova chiave.
  10. Seleziona JSON e fai clic su Crea. Il file della chiave viene scaricato sul tuo computer.
  11. Salva il file della chiave come ingestion-auth.json nella directory del raccoglitore Bindplane (/opt/observiq-otel-collector/ingestion-auth.json su Linux o C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json su Windows) o aggiorna creds_file_path in config.yaml in modo che corrisponda al percorso in cui lo salvi.
  12. Vai a IAM e amministrazione > Impostazioni e copia il Numero progetto. Ti servirà per la configurazione dell'esportatore.

Opzione 2: scarica il file di autenticazione dell'acquisizione (legacy)

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'acquisizione.
  4. Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.

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 organizzazione.

Installa l'agente Bindplane

Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.

Installazione di finestre

  1. Apri il prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installazione di Linux

  1. Apri un terminale con privilegi root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Risorse aggiuntive per l'installazione

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

  1. Accedi al file di configurazione:

    • Individua il file config.yaml. In genere si trova nella directory /opt/observiq-otel-collector/ su Linux o nella directory di installazione su Windows.
    • Apri il file utilizzando un editor di testo (ad esempio nano, vi o Blocco note).
  2. Modifica il file config.yaml come segue:

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        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
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: YOUR_CUSTOMER_ID
        endpoint: chronicle.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'WATCHGUARD'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
  • Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.
  • Sostituisci <LOCATION> con la regione della tua istanza Google SecOps (ad esempio us, europe o asia-southeast1). L'esportatore antepone chronicle.googleapis.com a questo valore.
  • Sostituisci <PROJECT_NUMBER> con il numero di progetto indicato in IAM e amministrazione > Impostazioni.
  • Sostituisci YOUR_CUSTOMER_ID con l'ID cliente effettivo.
  • Aggiorna /path/to/ingestion-authentication-file.json con il percorso del file in cui è stato salvato il file della chiave del account di servizio (Opzione 1) nel Passaggio 1.

Esportatore API di importazione legacy

  • Se utilizzi il file di autenticazione dell'acquisizione dell'Opzione 2, sostituisci il blocco exporters con il seguente. Imposta creds_file_path sul percorso del file di autenticazione dell'acquisizione e, se l'istanza si trova al di fuori degli Stati Uniti, sostituisci malachiteingestion-pa.googleapis.com con il tuo endpoint regionale (ad esempio, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: YOUR_CUSTOMER_ID
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'WATCHGUARD'
        raw_log_field: body
        ingestion_labels:
    

Riavvia l'agente Bindplane per applicare le modifiche

  1. Per riavviare l'agente Bindplane in Linux, esegui questo comando:

    sudo systemctl restart observiq-otel-collector
    
  2. Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:

    net stop observiq-otel-collector && net start observiq-otel-collector
    

Configura l'inoltro del syslog di WatchGuard Firebox

Per configurare WatchGuard Firebox in modo che inoltri i messaggi syslog all'agente Bindplane, segui questi passaggi utilizzando l'interfaccia web di Fireware:

  1. Accedi alla UI web di Fireware (https://<firebox-ip>:8080).
  2. Vai a Sistema > Logging.
  3. Fai clic su Add (Aggiungi) nella sezione Syslog Servers (Server Syslog).
  4. Fornisci i seguenti dettagli di configurazione:

    • Indirizzo IP: inserisci l'indirizzo IP dell'host dell'agente Bindplane (ad esempio, 192.168.1.100).
    • Port (Porta): inserisci 514 (o la porta configurata nell'agente Bindplane).
    • Formato log: seleziona Syslog (formato syslog BSD standard).
  5. Nella sezione Syslog Settings (Impostazioni Syslog), configura il livello di log:

    • Imposta Log Level (Livello di log) su Information (Informazioni) o su un valore superiore per acquisire eventi di traffico, sicurezza e sistema.
  6. Fai clic su Salva.

Configura i tipi di log da inoltrare

  1. Nella Fireware Web UI, vai a System > Logging > Syslog.
  2. Assicurati che i seguenti tipi di log siano abilitati per l'inoltro syslog:

    • Traffico: eventi di traffico del firewall (consenti, nega).
    • Allarme: eventi di IPS e allarme di sicurezza.
    • Evento: eventi di sistema e modifiche di stato.
    • Debug: facoltativo, solo per la risoluzione dei problemi.
  3. Fai clic su Salva.

(Alternativa) Configura tramite WatchGuard System Manager

  1. Apri WatchGuard System Manager e connettiti a Firebox.
  2. Vai a Setup > Logging > Send log messages to this syslog server (Configurazione > Logging > Invia messaggi di log a questo server syslog).
  3. Fai clic su Aggiungi.
  4. Fornisci i seguenti dettagli di configurazione:

    • Indirizzo IP: inserisci l'indirizzo IP dell'host dell'agente Bindplane.
    • Porta: inserisci 514.
    • Formato log: seleziona Syslog.
  5. Fai clic su Ok e salva la configurazione in Firebox.

Per saperne di più, consulta la documentazione di logging di WatchGuard Fireware.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
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, con target.labels.key che corrisponde ad "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 del 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 - Servizi web").
app_id about.labels.value Il valore di app_id del log non elaborato viene assegnato a about.labels.value, con about.labels.key che è "app_id".
app_name target.application Utilizzato in combinazione con app_cat_name per formare il valore di target.application (ad es. "Google - Servizi web").
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 che è "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 è preceduto da "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 non elaborato 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 che è "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 numerici 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 non elaborato viene assegnato a additional.fields.value.string_value, con additional.fields.key che è "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 del log non elaborato viene assegnato a additional.fields.value.string_value, con additional.fields.key che è "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 che è "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 del parser 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 "Firmware".
(N/A) metadata.vendor_name Impostato sempre 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 Impostato su "AUTHTYPE_UNSPECIFIED" per gli eventi di accesso/disconnessione dell'utente e su "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 su 1 per le query sui record "A".
(N/A) target.labels.key Imposta su "Azione sulla risorsa" quando action è mappato a target.labels.value.
(N/A) intermediary.labels.key Impostato su "Nome membro firewall" quando prin_host è mappato su 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 su principal.labels.value.
(N/A) target.labels.key Imposta "Gateway" quando gateway è mappato su target.labels.value.
(N/A) principal.labels.key Imposta "state" (stato) quando status è mappato a principal.labels.value.
(N/A) target.labels.key Impostato su "Stato gateway" quando status è mappato su target.labels.value.
(N/A) additional.fields.key Impostato su "signature_name", "signature_cat", "signature_id" o "reputation" quando i valori corrispondenti vengono mappati dal log non elaborato.

Log delle modifiche

Visualizza il log delle modifiche per questo parser

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