Raccogliere i log di Synology
Panoramica
Questo parser estrae i campi dai messaggi SYSLOG di Synology utilizzando i pattern Grok e li mappa all'UDM. Gestisce vari formati di log, identifica gli accessi utente e l'accesso alle risorse e classifica gli eventi in base alle parole chiave, arricchendo i dati con informazioni su fornitori e prodotti.
Prima di iniziare
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di disporre dell'accesso con privilegi a Synology DSM.
Configura un feed in Google SecOps per importare i log di Synology
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log Synology).
- Seleziona Webhook come Tipo di origine.
- Seleziona Synology come Tipo di log.
- Fai clic su Avanti.
- (Facoltativo) Specifica i valori per i seguenti parametri di input:
- Delimitatore di split: il delimitatore utilizzato per separare le righe di log, ad esempio
\n
. - Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
- Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
- Delimitatore di split: il delimitatore utilizzato per separare le righe di log, ad esempio
- Fai clic su Avanti.
- Controlla la configurazione del feed nella schermata Concludi e poi fai clic su Invia.
- Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
- Copia e memorizza la chiave segreta. Non potrai più visualizzare questa chiave segreta. Se necessario, puoi rigenerare una nuova chiave segreta, ma questa azione rende obsoleta la chiave segreta precedente.
- Dalla scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni endpoint. Devi specificare questo URL endpoint nell'applicazione client.
- Fai clic su Fine.
Crea una chiave API per il feed webhook
Vai alla console Google Cloud > Credenziali.
Fai clic su Crea credenziali e poi seleziona Chiave API.
Limita l'accesso della chiave API all'API Google Security Operations.
Specifica l'URL dell'endpoint
- Nell'applicazione client, specifica l'URL dell'endpoint HTTPS fornito nel feed webhook.
Attiva l'autenticazione specificando la chiave API e la chiave segreta nell'intestazione personalizzata nel seguente formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Consiglio: specifica la chiave API come intestazione anziché nell'URL.
Se il client webhook non supporta le intestazioni personalizzate, puoi specificare la chiave API e la chiave segreta utilizzando i parametri di query nel seguente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Sostituisci quanto segue:
ENDPOINT_URL
: l'URL dell'endpoint del feed.API_KEY
: la chiave API per l'autenticazione in Google Security Operations.SECRET
: la chiave segreta che hai generato per autenticare il feed.
Creazione di un webhook in Synology per Google SecOps
- Accedi a DiskStation Manager (DSM) sul tuo NAS Synology.
- Vai a Pannello di controllo > Notifiche > Webhook.
- Fai clic su Aggiungi.
Specifica i valori per i seguenti parametri:
- Provider: seleziona Personalizzato.
Regola: seleziona il tipo di messaggi da inviare nell'webhook.
Fai clic su Avanti.
Nome del provider: assegna al webhook un nome distintivo (ad esempio Google SecOps).
Oggetto: verrà aggiunto come prefisso del messaggio di notifica.
URL webhook: inserisci ENDPOINT_URL.
Seleziona Invia messaggi di notifica in inglese.
Fai clic su Avanti.
Metodo HTTP: seleziona POST.
Aggiungi l'intestazione X-Webhook-Access-Key con il valore SECRET.
Aggiungi l'intestazione X-goog-api-key con il valore API_KEY.
Fai clic su Applica.
Fai clic su Applica per salvare l'webhook.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
app |
target.application |
Il valore del campo app estratto dal filtro Grok viene assegnato a target.application . |
desc |
metadata.description |
Il valore del campo desc estratto dal filtro Grok viene assegnato a metadata.description . |
desc |
target.file.names |
Se il campo desc contiene "Chiuso)", il percorso del file tra parentesi viene estratto e assegnato a target.file.names . Se il campo desc contiene "cartella condivisa a cui è stato eseguito l'accesso", il percorso della cartella tra parentesi viene estratto e assegnato a target.file.names . |
host |
principal.hostname |
Il valore del campo host estratto dal filtro Grok dal campo host_and_ip viene assegnato a principal.hostname . |
host_and_ip |
principal.ip |
Il campo host_and_ip viene analizzato. Se viene trovato un indirizzo IP (ip1 ), viene assegnato a principal.ip . Se viene trovato un secondo indirizzo IP (ip2 ), viene aggiunto anche a principal.ip . |
intermediary_host |
intermediary.hostname |
Il valore del campo intermediary_host estratto dal filtro Grok viene assegnato a intermediary.hostname . In extensions viene creato un oggetto auth vuoto se il messaggio contiene "accesso eseguito" o "accedi". Viene utilizzato il timestamp del campo collection_time del log non elaborato. Se il messaggio contiene "accesso eseguito" o "accedi", il valore viene impostato su USER_LOGIN . Se il messaggio contiene "cartella condivisa a cui è stato eseguito l'accesso", il valore è impostato su USER_RESOURCE_ACCESS . In caso contrario, il valore predefinito è GENERIC_EVENT . Il valore del campo type estratto dal filtro Grok viene assegnato a metadata.product_event_type . Il valore è impostato in modo statico su "SYNOLOGY". Il valore è impostato in modo statico su "SYNOLOGY". Se il messaggio contiene "failed to sign" (Autenticazione non riuscita), il valore è impostato su BLOCK . Se il messaggio contiene "success", il valore viene impostato su ALLOW . Se il campo severity (estratto da grok) è "INFO", il valore viene impostato su INFORMATIONAL . |
severity |
security_result.severity |
Il valore del campo severity estratto dal filtro Grok viene utilizzato per determinare security_result.severity . Se il valore è "INFO", viene mappato a "INFORMATIONAL". |
time |
metadata.event_timestamp |
Il campo time , estratto dal filtro Grok, viene analizzato e convertito in un timestamp. Questo timestamp viene poi assegnato a metadata.event_timestamp . |
type |
metadata.product_event_type |
Il valore del campo type estratto dal filtro Grok viene assegnato a metadata.product_event_type . |
user |
target.administrative_domain |
Se un dominio viene estratto dal campo user , viene assegnato a target.administrative_domain . |
user |
target.user.userid |
La parte del nome utente del campo user (prima del "\", se presente) viene estratta e assegnata a target.user.userid . Viene utilizzato il timestamp del campo collection_time del log non elaborato. |
Modifiche
2024-01-16
- Parser appena creato.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.