Raccogliere i log di Synology
Panoramica
Questo parser estrae i campi dai messaggi SYSLOG di Synology utilizzando i pattern grok e li mappa a UDM. Gestisce vari formati di log, identifica gli accessi degli utenti 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 disporre dei seguenti prerequisiti:
- Istanza Google SecOps.
- Accesso con privilegi a Synology DSM.
Configurare i feed
Per configurare un feed:
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- 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 suddivisione: il delimitatore utilizzato per separare le righe di log, ad esempio
\n
. - Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
- Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
- Delimitatore di suddivisione: il delimitatore utilizzato per separare le righe di log, ad esempio
- Fai clic su Avanti.
- Rivedi la configurazione del feed nella schermata Finalizza 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 puoi visualizzare di nuovo questa chiave segreta. Se necessario, puoi rigenerare una nuova chiave segreta, ma questa azione rende obsoleta la chiave segreta precedente.
- Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni sull'endpoint. Devi specificare questo URL dell'endpoint nella tua applicazione client.
- Fai clic su Fine.
Crea una chiave API per il feed webhook
Vai alla consoleGoogle 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
- Nella tua applicazione client, specifica l'URL dell'endpoint HTTPS fornito nel feed webhook.
Attiva l'autenticazione specificando la chiave API e la chiave segreta come parte dell'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 parametri di ricerca 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 a 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 Synology NAS.
- 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 messaggio da inviare nel webhook.
Fai clic su Avanti.
Nome provider: assegna al webhook un nome distintivo (ad esempio Google SecOps).
Oggetto: verrà aggiunto come prefisso del messaggio di notifica.
Webhook URL (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 il webhook.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
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 "Closed)", il percorso del file tra parentesi viene estratto e assegnato a target.file.names . Se il campo desc contiene "accessed shared folder", 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 ), questo 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 . Se il messaggio contiene "accesso eseguito" o "accedi", viene creato un oggetto auth vuoto all'interno di extensions . Viene utilizzato il timestamp del campo collection_time del log non elaborato. Se il messaggio contiene "accesso eseguito" o "accedi", il valore è impostato su USER_LOGIN . Se il messaggio contiene "accessed shared folder", 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 staticamente su "SYNOLOGY". Il valore è impostato staticamente su "SYNOLOGY". Se il messaggio contiene "failed to sign", 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 è 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 su "INFORMATIONAL". |
time |
metadata.event_timestamp |
Il campo time , estratto dal filtro grok, viene analizzato e convertito in un timestamp. Questo timestamp viene quindi 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 di "\", se presente) viene estratta e assegnata a target.user.userid . Viene utilizzato il timestamp del campo collection_time del log non elaborato. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.