Come Esportare i Log da Splunk per l’Analisi di Sicurezza

Come Esportare i Log da Splunk per l’Analisi di Sicurezza

SOC Prime Team
SOC Prime Team linkedin icon Segui

La risposta breve: esegui la ricerca, fai clic su Esporta nella barra degli strumenti del lavoro sotto la barra di ricerca e scegli Eventi grezzi, CSV or JSON. Per alcune migliaia di eventi, questo è tutto ciò di cui hai bisogno. Per estrazioni più grandi, salta il browser e usa il CLI di ricerca di Splunk o l’endpoint di esportazione REST. Entrambi trasmettono risultati invece di far costruire un file enorme a Splunk Web per te.

Perché esportare da Splunk del tutto, se i dati sono già indicizzati? Di solito perché qualcuno al di fuori del tuo Splunk deve guardarli: un partner IR, un collega di un altro team o tu, su un laptop, senza scrivere SPL per un’ora. Prime Core ha 23.674 regole di rilevamento per Splunk mappate a 676 tecniche MITRE ATT&CK. È una grande quantità di logica di rilevamento che puoi eseguire su una piccola parte dei tuoi dati una volta che sono fuori. Di seguito è descritto come ottenere quella parte, sanitizzarla e indagarla gratuitamente in LogTotal.

Inizia gratis

TL;DR

PercorsoUsalo quandoCosa ti serve
Splunk Web → EsportaEsportazione una tantum, piccola, hai già la ricerca apertaAccesso di ricerca all’indice
CLI di ricerca SplunkHai una shell su un search head di Splunk EnterpriseAccesso al sistema operativo + credenziali Splunk
REST search/jobs/exportGrandi esportazioni, scripting, o Splunk CloudAccesso alla porta di gestione (8089) + un token

Prima di iniziare

Tre cose decidono quale percorso funziona per te: dove gira il tuo Splunk, cosa può cercare il tuo ruolo e se ti è permesso estrarre i dati.

  • Accesso all’indice. Puoi esportare solo ciò che il tuo ruolo può cercare. Se una ricerca torna vuota ma sai che i dati ci sono, controlla gli indici consentiti del tuo ruolo prima di riscrivere SPL. Metti index= esplicitamente nella ricerca; non fare affidamento sugli indici di default.
  • Splunk Cloud vs. Enterprise. Sulla piattaforma Splunk Cloud non c’è shell, quindi il percorso CLI è escluso. Anche l’API REST non è attiva per default: qualcuno deve richiedere l’accesso per il tuo stack e le prove gratuite non possono usarla affatto. L’esportazione da Splunk Web funziona ovunque.
  • Permesso di esportare. I log grezzi contengono nomi utente, nomi host, IP interni, a volte token negli URL. LogTotal sanitizza i caricamenti prima dell’analisi, ma si applica comunque la politica di gestione dei dati della tua azienda. Ottieni l’ok prima. Ci vogliono cinque minuti, e lo vorrai per iscritto se questo si trasforma in un incidente.

I comandi sotto seguono l’attuale documentazione di Splunk per Splunk Enterprise e Splunk Cloud Platform, verificata nell’ottobre 2026. I collegamenti a ogni pagina che abbiamo usato sono alla fine.

Passo 1: Definisci l’ambito della ricerca prima di esportare qualsiasi cosa

L’errore più comune è esportare un intero indice ‘per sicurezza’. Finisci con un file che nessuno vuole aprire. Decidi quale domanda stai rispondendo, quindi definire indice, sourcetype, host e tempo:

index=linux sourcetype=linux_secure host=web-03 earliest=-24h@h latest=@h

Per eventi di sicurezza di Windows raccolti dall’Add-on Splunk per Windows in modalità XML:

index=wineventlog source="XmlWinEventLog:Security" host=dc-01 earliest=-24h@h latest=@h

Due regole mantengono l’esportazione utile.

Mantieni _raw. Se la ricerca termina con stats, table o chart, stai esportando un riassunto, non log, e Splunk Web disabiliterà il formato Eventi grezzi. Esporta eventi, non risultati. Se scegli JSON, riduci i campi estratti in modo che il file non triplichi le dimensioni:

... | fields _time host source sourcetype _raw

Usa l’ora assoluta quando conta. earliest=-24h significa qualcosa di diverso ogni minuto. Se Splunk deve rieseguire la tua ricerca durante l’esportazione (più su questo sotto), una finestra relativa può restituire un set di eventi leggermente diverso. Per qualsiasi cosa legata a incidenti, usa timestamp esatti.

Una cosa da sapere sui dati di Windows: Splunk non conserva i file .evtx originali. Indicizza il testo dell’evento renderizzato, XML o classico chiave=valore. Quindi ciò che esporti è quel testo, non un EVTX binario.

Passo 2a: Esporta da Splunk Web

Va bene per esportazioni piccole e una tantum quando la ricerca è già sul tuo schermo.

  1. Esegui la ricerca e lascia che il lavoro finisca. Esportare un lavoro in corso ti dà solo una visione parziale.
  2. Clicca Esporta (la freccia di download) nella fila delle azioni del lavoro sotto la barra di ricerca.
  3. Scegli il formato. Eventi grezzi ti dà le linee di log originali esattamente come erano indicizzate, che è ciò che vuoi per fonti in stile syslog come linux_secure. JSON mantiene host, source e sourcetype accanto a ogni evento. Questo aiuta quando l’esportazione abbraccia diversi host.
  4. Nomina il file in modo che tu possa riconoscerlo la settimana prossima, per esempio web-03_sshd_2026-10-19.log.
  5. Lascia vuoto Numero di Risultati per esportare tutto ciò che la ricerca ha restituito. Se digiti 500, ottieni i primi 500 e nulla ti dice che ce ne erano di più.
  6. Clicca Esporta.

Un dettaglio che confonde le persone: l’esportazione funziona dall’artifact del lavoro di ricerca, non da ciò che vedi nel browser. Se Splunk non ha conservato ogni risultato con il lavoro, il dialogo avverte che rieseguirà la ricerca. È normale. Semplicemente ci vuole più tempo, motivo per cui l’intervallo di tempo assoluto del Passo 1 è importante. Esportazioni molto lunghe possono anche colpire il timeout della sessione di Splunk Web. Se l’esportazione dura diversi minuti, passa al CLI o REST.

Passo 2b: Esporta con il CLI di Splunk (solo Enterprise)

Se hai una shell sul search head, questo è il percorso più veloce e il più semplice da scriptare. Accedi prima, così la tua password non finisce nella cronologia della shell come farebbe con -auth:

$SPLUNK_HOME/bin/splunk login

$SPLUNK_HOME/bin/splunk search
  'index=linux sourcetype=linux_secure host=web-03 earliest="10/19/2026:00:00:00" latest="10/20/2026:00:00:00"'
  -preview 0 -maxout 0 -output rawdata > web-03_sshd.log

Cosa fa ogni flag:

  • -maxout 0 rimuove il limite. Per default il CLI esporta 100 eventi e si ferma senza una parola. Se il tuo file ha esattamente 100 righe, ecco perché, non un host silenzioso.
  • -preview 0 mantiene i risultati anteprima fuori dal file.
  • -output rawdata scrive le linee originali. Usa -output json se vuoi eventi strutturati con metadati.

Puoi anche eseguire il CLI contro un search head remoto con -uri https://<search-head>:8089, purché la porta di gestione sia raggiungibile da dove ti trovi.

Due controlli rapidi di sanità mentale prima di caricare:

wc -l web-03_sshd.log
head -3 web-03_sshd.log

Per fonti a linea singola come linux_secure, il conteggio delle righe dovrebbe approssimativamente corrispondere al conteggio degli eventi che Splunk Web mostra per la stessa ricerca. Le prime righe dovrebbero sembrare linee di log, non messaggi di errore.

Passo 2c: Trasmetti i risultati attraverso l’API REST

Questo è il percorso per grandi esportazioni, estrazioni programmate e Splunk Cloud (una volta che l’accesso REST è abilitato per il tuo stack). L’endpoint di esportazione trasmette risultati mentre la ricerca è in corso, quindi non c’è nessun lavoro da interrogare e nessuna pagina di risultati da scorrere.

Usa un token di autenticazione invece di un nome utente e una password. Ne crei uno in Impostazioni → Token, se il tuo amministratore ha abilitato l’autenticazione con token.

export SPLUNK_TOKEN='<your token>'

curl -sS
  -H "Authorization: Bearer $SPLUNK_TOKEN"
  https://sh01.example.com:8089/services/search/v2/jobs/export
  --data-urlencode search='search index=linux sourcetype=linux_secure host=web-03'
  -d earliest_time='2026-10-19T00:00:00.000+00:00'
  -d latest_time='2026-10-20T00:00:00.000+00:00'
  -d output_mode=raw
  -o web-03_sshd.log

Cose che fanno inciampare le persone:

  • La stringa di ricerca deve iniziare con search (o un comando generativo come | tstats). Incolla la tua query senza di essa e Splunk la rifiuta.
  • output_mode=raw ti dà le righe originali, ed è la modalità più veloce. output_mode=json trasmette un oggetto JSON per linea, con l’evento sotto una chiave result. Se vuoi solo gli eventi stessi, rimuovi l’involucro con jq: jq -c ‘select(.result) | .result’ export.json > events.ndjson. Per un caricamento in LogTotal, rimani su raw.
  • Le instanze di laboratorio spesso usano certificati auto-firmati, e ogni risposta su Stack Overflow ti dirà di aggiungere -k. In produzione, punta curl al tuo CA con –cacert invece.
  • Se fai POST a search/v2/jobs e leggi da /results, il server limita le righe per richiesta e devi paginare con offset. export non lo fa, ed è il motivo per usarlo qui.

Passo 3: Carica, sanitizza e rivedi in LogTotal

LogTotal è il servizio gratuito di SOC Prime per eseguire logica di rilevamento su un file di log senza configurare nulla. Sanitizza ciò che carichi e non mantiene i tuoi file.

  1. Carica. Apri logtotal.com e carica il file dal Passo 2.
  2. Sanitizza. Esaminare tutto prima di continuare. Conosci meglio tu il tuo ambiente rispetto a qualsiasi regola di mascheramento.
  3. Rivedi. 

Quando l’esportazione va male

SintomoCausa probabileFix
Il file CLI ha esattamente 100 eventiIl -maxout predefinito è 100Aggiungi -maxout 0
Eventi grezzi è disattivato nella finestra di dialogo EsportaLa ricerca termina con un comando di trasformazione (stats, table, chart)Esporta invece gli eventi o scegli JSON
La ricerca non restituisce nulla, ma i dati ci sonoL’indice non è nei tuoi indici consentiti o predefiniti del ruolo, o intervallo di tempo sbagliatoAggiungi index= esplicitamente; chiedi al tuo amministratore del ruolo
La finestra di dialogo dice che la ricerca verrà rieseguitaL’artifact del lavoro non ha conservato ogni risultatoComportamento previsto; usa un intervallo di tempo assoluto affinché la nuova esecuzione restituisca gli stessi eventi
L’esportazione del browser si blocca o il file è troncatoTimeout della sessione di Splunk Web su un’esportazione lungaPassa al CLI o REST
401 Non autorizzato da curlToken scaduto, disabilitato, o autenticazione token disattivataCrea un nuovo token in Impostazioni → Token
curl si blocca o riceve connessione rifiutata su 8089Porta di gestione bloccata, o REST non abilitato su Splunk CloudControlla le regole del firewall; richiedi l’accesso REST per il tuo stack Cloud
REST restituisce un errore di sintassi di ricercaLa query non inizia con searchPrefissala con search
Il file JSON è molto più grande del previstoOgni campo estratto è stato esportatoAggiungi | fields _time host source sourcetype _raw

FAQ

Posso esportare i log da Splunk Cloud?

Sì. L’esportazione da Splunk Web funziona allo stesso modo di Enterprise. L’endpoint di esportazione REST funziona una volta che l’accesso API è abilitato per il tuo stack; le prove gratuite non lo ottengono. Il CLI non è un’opzione, perché su Splunk Cloud non c’è shell.

Posso ottenere indietro i file EVTX originali da Splunk?

No. Splunk memorizza il testo dell’evento renderizzato, non il binario .evtx. Puoi esportare quel testo come eventi grezzi o JSON. Per file EVTX reali, esportali direttamente dall’host Windows stesso.

Eventi grezzi o JSON: quale dovrei scegliere per LogTotal?

Grezzi. Ottieni le stesse linee che si trovano sull’host e LogTotal legge i file in formato syslog così come sono. JSON avvolge ogni evento nella struttura propria di Splunk. È utile quando hai bisogno di host e sourcetype accanto a ogni evento, ma per un caricamento in LogTotal, grezzo è la scelta più sicura.

È sicuro caricare un’esportazione Splunk su uno strumento online?

LogTotal sanitizza i caricamenti prima dell’analisi e non conserva i file.

Quanti eventi posso esportare?

Dal lato Splunk, quanti ne vuoi: lascia vuoto Numero di Risultati in Splunk Web o imposta -maxout 0 nel CLI. In pratica, il limite è la dimensione di caricamento dall’altra parte. Quindi conviene definire correttamente l’ambito della ricerca nel Passo 1.

Unisciti alla piattaforma Detection as Code di SOC Prime per migliorare la visibilità sulle minacce più rilevanti per il tuo business. Per aiutarti a iniziare e aumentare immediatamente il valore, prenota ora un incontro con gli esperti di SOC Prime.