Raccogli i log di WatchGuard Firebox
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'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane.
- Accesso privilegiato all'interfaccia utente web di WatchGuard Firebox (Fireware Web UI) o a WatchGuard System Manager.
Recuperare il file di autenticazione dell'importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agente di raccolta.
Scarica il file di autenticazione dell'acquisizione.
- Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.
Recuperare l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
Installazione di Windows
- Apri il prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installazione di Linux
- Apri un terminale con privilegi root o sudo.
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
- Per ulteriori opzioni di installazione, consulta questa guida all'installazione.
Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps
Accedi al file di configurazione:
- Individua il file
config.yaml. In genere si trova nella directory/etc/bindplane-agent/su Linux o nella directory di installazione su Windows. - Apri il file utilizzando un editor di testo (ad esempio
nano,vio Blocco note).
- Individua il file
Modifica il file
config.yamlcome segue:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" 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: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
- Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.
- Sostituisci
YOUR_CUSTOMER_IDcon l'ID cliente effettivo. - Aggiorna
/path/to/ingestion-authentication-file.jsoncon il percorso del file in cui è stato salvato il file di autenticazione nel passaggio 1.
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux, esegui questo comando:
sudo systemctl restart observiq-otel-collectorPer 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 di syslog di WatchGuard Firebox
Per configurare WatchGuard Firebox in modo da inoltrare i messaggi syslog all'agente Bindplane, segui questi passaggi utilizzando la GUI web di Fireware:
- Accedi alla UI web del firmware (
https://<firebox-ip>:8080). - Vai a Sistema > Logging.
- Fai clic su Aggiungi nella sezione Server Syslog.
Fornisci i seguenti dettagli di configurazione:
- Indirizzo IP: inserisci l'indirizzo IP dell'host dell'agente Bindplane (ad esempio,
192.168.1.100). - Porta: inserisci
514(o la porta configurata nell'agente Bindplane). - Formato log: seleziona Syslog (formato syslog BSD standard).
- Indirizzo IP: inserisci l'indirizzo IP dell'host dell'agente Bindplane (ad esempio,
Nella sezione Impostazioni Syslog, configura il livello di log:
- Imposta il Livello di log su Informazioni o superiore per acquisire eventi di traffico, sicurezza e sistema.
Fai clic su Salva.
Configura i tipi di log da inoltrare
- Nell'interfaccia utente web del firmware, vai a Sistema > Logging > Syslog.
Assicurati che i seguenti tipi di log siano abilitati per l'inoltro di 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.
Fai clic su Salva.
(Alternativa) Configurazione tramite WatchGuard System Manager
- Apri WatchGuard System Manager e connettiti a Firebox.
- Vai a Configurazione > Registrazione > Invia messaggi di log a questo server syslog.
- Fai clic su Aggiungi.
Fornisci i seguenti dettagli di configurazione:
- Indirizzo IP: inserisci l'indirizzo IP dell'host dell'agente Bindplane.
- Porta: inserisci
514. - Formato log: seleziona Syslog.
Fai clic su Ok e salva la configurazione su Firebox.
Per saperne di più, consulta la documentazione sulla registrazione 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, 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 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 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 - 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 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 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 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 dal 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 non elaborato viene assegnato a additional.fields.value.string_value, con additional.fields.key impostato su "reputazione". |
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, mentre additional.fields.key è "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, mentre about.labels.key è "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 |
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 |
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 il valore su 1 per le query dei record "A". |
| (N/A) | target.labels.key |
Imposta "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 |
Imposta "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.