Raccogliere i log di SonicWall
Questo documento descrive come raccogliere i log di SonicWall utilizzando un forwarder di Google Security Operations.
Per saperne di più, consulta Importazione dei dati in Google Security Operations.
Un'etichetta di importazione identifica il parser che normalizza i dati di log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano al parser con l'etichetta di importazione SONIC_FIREWALL.
Configurare l'appliance di sicurezza SonicWall
- Accedi alla console SonicWall.
- Vai a Log > Syslog.
- Nella sezione Syslog servers (Server syslog), fai clic su Add (Aggiungi). Viene visualizzata la finestra Add syslog server (Aggiungi server syslog).
- Nel campo Name (Nome) o IP address (Indirizzo IP), fornisci il nome host o l'indirizzo IP del forwarder di Google Security Operations.
- Se la configurazione syslog non utilizza la porta 514 predefinita, specifica il numero di porta nel campo Port number (Numero di porta).
- Fai clic su Ok.
- Fai clic su Accept (Accetta) per salvare tutte le impostazioni del server syslog.
Configurare il forwarder di Google Security Operations e syslog per importare i log di SonicWall
- Vai a SIEM Settings (Impostazioni SIEM) > Forwarders (Forwarder).
- Fai clic su Add new forwarder (Aggiungi nuovo forwarder).
- Nel campo Forwarder Name (Nome forwarder), inserisci un nome univoco per il forwarder.
- Fai clic su Submit (Invia). Il forwarder viene aggiunto e viene visualizzata la finestra Add collector configuration (Aggiungi configurazione del raccoglitore).
- Nel campo Collector name (Nome raccoglitore), digita un nome.
- Seleziona SonicWall come Log type (Tipo di log).
- Seleziona Syslog come Collector type (Tipo di raccoglitore).
- Configura i seguenti parametri di input obbligatori:
- Protocollo: specifica il protocollo di connessione che l'agente di raccolta utilizzerà per rimanere in ascolto dei dati syslog.
- Address (Indirizzo): specifica l'indirizzo IP o il nome host di destinazione in cui risiede l'agente di raccolta e rimane in ascolto dei dati syslog.
- Porta: specifica la porta di destinazione in cui risiede l'agente di raccolta e rimane in ascolto dei dati syslog.
- Fai clic su Submit (Invia).
Per saperne di più sui forwarder di Google Security Operations, consulta la documentazione sui forwarder di Google Security Operations.
Per informazioni sui requisiti per ogni tipo di forwarder, consulta Configurazione del forwarder per tipo.
Se riscontri problemi durante la creazione dei forwarder, contatta l'assistenza di Google Security Operations.
Riferimento per la mappatura dei campi
Questo parser estrae le coppie chiave-valore dai messaggi syslog del firewall SonicWall, normalizza vari campi come timestamp, indirizzi IP e porte e li mappa nel formato UDM. Gestisce sia gli indirizzi IPv4 che IPv6, distingue tra eventi consentiti e bloccati ed estrae dettagli rilevanti per la sicurezza come nomi e descrizioni delle regole.
Log di esempio di SonicWall supportati
Evento firewall standard
{ "type": "SONIC_FIREWALL", "log": "<134> id=SONICWALL_FIREWALL\n" " sn=DEADD00D1234\n" " time=\"2020-04-08 13:28:45\"\n" " fw=192.0.2.1\n" " pri=6\n" " c=1024\n" " gcat=2\n" " m=97\n" " msg=\"Web site hit\"\n" " srcMac=00:00:5E:00:53:01\n" " src=192.0.2.10:12345:X0\n" " srcZone=LAN\n" " natSrc=192.0.2.10:12345\n" " dstMac=00:00:5E:00:53:02\n" " dst=198.51.100.20:443:X0\n" " dstZone=WAN\n" " natDst=198.51.100.20:443\n" " proto=tcp/https\n" " sent=1247\n" " rcvd=59996\n" " rule=\"14 (LAN->WAN)\"\n" " app=49175\n" " appName=\"General HTTP\"\n" " op=1\n" " dstname=sanitized-host.com\n" " arg=/sanitized/path/file.cab?id=REDACTED\n" " code=27\n" " Category=\"Information Technology/Computers\"\n" " n=3451648" }Evento di sessione SSL-VPN
{ "type": "SONIC_FIREWALL", "log": "<181>SSLVPN: id=sslvpn\n" " sn=DEADD00D1234\n" " time=\"2020-04-10 10:07:11\"\n" " vp_time=\"2020-04-10 08:07:11 UTC\"\n" " fw=192.0.2.1\n" " pri=5\n" " m=2\n" " c=102\n" " src=203.0.113.50\n" " dst=192.0.2.1\n" " user=\"internal_user@company.com\"\n" " usr=\"internal_user@company.com\"\n" " msg=\"NetExtender disconnected\"\n" " rule=access-policy\n" " duration=731\n" " bytesIn=47360\n" " bytesOut=10\n" " agent=\"SonicWALL NetExtender for Windows (REDACTED)\"" }Controllo avanzato delle minacce/app
{ "type": "SONIC_FIREWALL", "log": "<129> id=PD_Firewall sn=DEADD00D1234 time=\"2024-03-06 12:33:40\"\n" " fw=192.0.2.1 pri=1 c=0 m=1154 msg=\"Application Control Detection\n" " Alert: PROTOCOLS DNS Protocol -- Standard Query A\" sid=5183\n" " appcat=\"PROTOCOLS DNS Protocol -- Standard Query A\" appid=1283 catid=74\n" " n=3235773 src=192.0.2.15:58482:X0 dst=203.0.113.1:53:X2\n" " srcMac=00:00:5E:00:53:03 dstMac=00:00:5E:00:53:04 proto=udp/dns\n" " fw_action=\"NA\"" }
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Funzione logica |
|---|---|---|
| agente | event.idm.read_only_udm.network.http.user_agent |
Il valore del campo agent viene assegnato al campo UDM. |
| appcat | event.idm.read_only_udm.security_result.summary |
Il valore del campo appcat viene assegnato al campo UDM. Se appcat contiene "PROXY-ACCESS", event.idm.read_only_udm.security_result.category è impostato su "POLICY_VIOLATION" e event.idm.read_only_udm.security_result.action è impostato su "BLOCK". |
| appid | event.idm.read_only_udm.security_result.rule_id |
Il valore del campo appid viene assegnato al campo UDM. |
| arg | event.idm.read_only_udm.target.resource.name |
Il valore del campo arg viene assegnato al campo UDM. |
| avgThroughput | event.idm.read_only_udm.target.resource.attribute.labels |
Al campo UDM viene aggiunta un'etichetta con la chiave "avgThroughput" e il valore del campo avgThroughput. |
| bytesIn | event.idm.read_only_udm.network.received_bytes |
Il valore del campo bytesIn viene convertito in un numero intero senza segno e assegnato al campo UDM. |
| bytesOut | event.idm.read_only_udm.network.sent_bytes |
Il valore del campo bytesOut viene convertito in un numero intero senza segno e assegnato al campo UDM. |
| bytesTotal | event.idm.read_only_udm.target.resource.attribute.labels |
Al campo UDM viene aggiunta un'etichetta con la chiave "bytesTotal" e il valore del campo bytesTotal. |
| Categoria | event.idm.read_only_udm.security_result.category_details |
Il valore del campo Category viene assegnato al campo UDM. |
| cdur | event.idm.read_only_udm.security_result.detection_fields |
Al campo UDM viene aggiunto un campo di rilevamento con la chiave "Connection Duration (milli seconds)" (Durata della connessione (millisecondi)) e il valore del campo cdur. |
| dst | event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.port |
L'IP e la porta vengono estratti dal campo dst. Se dstV6 non è vuoto, l'IP viene estratto da dstV6. |
| dstMac | event.idm.read_only_udm.target.mac |
Il valore del campo dstMac viene assegnato al campo UDM. |
| dstV6 | event.idm.read_only_udm.target.ip |
L'IP viene estratto dal campo dstV6. |
| dstname | event.idm.read_only_udm.target.hostname |
Se dstname non è un indirizzo IP, il suo valore viene assegnato al campo UDM. |
| duration | event.idm.read_only_udm.network.session_duration.seconds |
Il valore del campo duration viene convertito in un numero intero e assegnato al campo UDM. |
| fw | event.idm.read_only_udm.principal.ip |
Il valore del campo fw viene assegnato al campo UDM. Se fw contiene "-", a event.idm.read_only_udm.additional.fields viene aggiunta un'etichetta con la chiave "fw" e il valore del campo fw. |
| fw_action | event.idm.read_only_udm.security_result.action_details, event.idm.read_only_udm.security_result.summary, event.idm.read_only_udm.security_result.action |
Il valore del campo fw_action viene assegnato a event.idm.read_only_udm.security_result.action_details. Se fw_action è "drop", event.idm.read_only_udm.security_result.action è impostato su "BLOCK" e event.idm.read_only_udm.security_result.summary è impostato sul valore di msg. |
| gw | event.idm.read_only_udm.intermediary.ip |
L'indirizzo IP viene estratto dal campo gw e assegnato al campo UDM. |
| id | event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname |
Il valore del campo id viene assegnato a entrambi i campi UDM. |
| maxThroughput | event.idm.read_only_udm.target.resource.attribute.labels |
Al campo UDM viene aggiunta un'etichetta con la chiave "maxThroughput" e il valore del campo maxThroughput. |
| msg | event.idm.read_only_udm.security_result.summary, event.idm.read_only_udm.metadata.description |
Se fw_action non è "drop" o appcat è vuoto, il valore del campo msg viene assegnato a event.idm.read_only_udm.security_result.summary. In caso contrario, viene assegnato a event.idm.read_only_udm.metadata.description. |
| natDst | event.idm.read_only_udm.target.nat_ip |
L'indirizzo IP viene estratto dal campo natDst e assegnato al campo UDM. |
| natSrc | event.idm.read_only_udm.principal.nat_ip |
L'indirizzo IP viene estratto dal campo natSrc e assegnato al campo UDM. |
| nota | event.idm.read_only_udm.security_result.description |
Il valore del campo note, dopo l'estrazione di dstip, srcip, gw e sec_desc, viene assegnato al campo UDM. |
| packetsIn | event.idm.read_only_udm.target.resource.attribute.labels |
Al campo UDM viene aggiunta un'etichetta con la chiave "packetsIn" e il valore del campo packetsIn. |
| packetsOut | event.idm.read_only_udm.target.resource.attribute.labels |
Al campo UDM viene aggiunta un'etichetta con la chiave "packetsOut" e il valore del campo packetsOut. |
| packetsTotal | event.idm.read_only_udm.target.resource.attribute.labels |
Al campo UDM viene aggiunta un'etichetta con la chiave "packetsTotal" e il valore del campo packetsTotal. |
| pri | event.idm.read_only_udm.security_result.severity |
Il valore del campo pri determina il valore del campo UDM: 0, 1, 2 -> CRITICAL; 3 -> ERROR; 4 -> MEDIUM; 5, 7 -> LOW; 6 -> INFORMATIONAL. |
| proto | event.idm.read_only_udm.network.ip_protocol, event.idm.read_only_udm.network.application_protocol, event.idm.read_only_udm.metadata.event_type |
Se proto contiene "udp", l'UDM ip_protocol è impostato su "UDP" e event_type è impostato su "NETWORK_CONNECTION". Se proto contiene "https", l'UDM application_protocol è impostato su "HTTPS". |
| rcvd | event.idm.read_only_udm.network.received_bytes |
Il valore del campo rcvd viene convertito in un numero intero senza segno e assegnato al campo UDM. |
| regola | event.idm.read_only_udm.security_result.rule_name |
Il valore del campo rule viene assegnato al campo UDM. |
| sec_desc | event.idm.read_only_udm.security_result.description |
Il valore del campo sec_desc viene assegnato al campo UDM. |
| sent | event.idm.read_only_udm.network.sent_bytes |
Il valore del campo sent viene convertito in un numero intero senza segno e assegnato al campo UDM. |
| sess | event.idm.read_only_udm.security_result.detection_fields |
Al campo UDM viene aggiunto un campo di rilevamento con la chiave "Session Type" (Tipo di sessione) e il valore del campo sess. |
| sn | event.idm.read_only_udm.additional.fields |
Al campo UDM viene aggiunta un'etichetta con la chiave "SN" e il valore del campo sn. |
| spkt | event.idm.read_only_udm.network.sent_packets |
Il valore del campo spkt viene convertito in un numero intero e assegnato al campo UDM. |
| src | event.idm.read_only_udm.principal.ip, event.idm.read_only_udm.principal.port |
L'IP e la porta vengono estratti dal campo src. Se srcV6 non è vuoto, l'IP viene estratto da srcV6. |
| srcMac | event.idm.read_only_udm.principal.mac |
Il valore del campo srcMac viene assegnato al campo UDM. |
| srcV6 | event.idm.read_only_udm.principal.ip |
L'IP viene estratto dal campo srcV6. |
| srcip | event.idm.read_only_udm.additional.fields, event.idm.read_only_udm.principal.ip |
Se srcip contiene "-", a event.idm.read_only_udm.additional.fields viene aggiunta un'etichetta con la chiave "srcip" e il valore del campo srcip. In caso contrario, il valore di srcip viene assegnato a event.idm.read_only_udm.principal.ip. |
| tempo | event.idm.read_only_udm.metadata.event_timestamp |
Il valore del campo time viene analizzato e convertito in un timestamp, che viene poi assegnato al campo UDM. |
| tipo | event.idm.read_only_udm.network.ip_protocol |
Se il campo proto è "icmp", il campo UDM è impostato su "ICMP". |
| utente/usr | event.idm.read_only_udm.principal.user.email_addresses, event.idm.read_only_udm.principal.user.user_display_name, event.idm.read_only_udm.principal.user.userid |
Se user è vuoto, viene utilizzato il valore di usr. Se il valore contiene "@", viene trattato come un indirizzo email e aggiunto a email_addresses. Se contiene uno spazio, viene trattato come un nome visualizzato. In caso contrario, viene trattato come un ID utente. |
| vpnpolicy | event.idm.read_only_udm.security_result.detection_fields |
Al campo UDM viene aggiunto un campo di rilevamento con la chiave "vpnpolicy" e il valore del campo vpnpolicy. Codificato come "SonicWall". Codificato come "Firewall". Codificato come "SONIC_FIREWALL". Determinato dalla logica in base ai valori di altri campi. Il valore predefinito è "GENERIC_EVENT", ma può essere "STATUS_UPDATE", "NETWORK_CONNECTION" o "NETWORK_HTTP". |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.