Introduzione
I tutorial precedenti di questa serie ti hanno guidato nell’installazione, configurazione ed esecuzione di Suricata come sistema di rilevamento delle intrusioni (IDS) e di prevenzione delle intrusioni (IPS). Hai anche imparato le regole di Suricata e come crearne di nuove.
In questo tutorial esplorerai come integrare Suricata con Elasticsearch, Kibana e Filebeat per iniziare a creare il tuo strumento di gestione delle informazioni e degli eventi di sicurezza (SIEM) utilizzando l’insieme Elastic e Rocky Linux 8. Gli strumenti SIEM vengono utilizzati per raccogliere, aggregare, archiviare e analizzare i dati degli eventi per cercare minacce alla sicurezza e attività sospette sulle tue reti e server.
I componenti che utilizzerai per creare il tuo SIEM sono:
- Elasticsearch per archiviare, indicizzare, correlare e cercare gli eventi di sicurezza che provengono dal tuo server Suricata.
- Kibana per visualizzare e navigare tra i log degli eventi di sicurezza archiviati in Elasticsearch.
- Filebeat per analizzare il file di log
eve.json
di Suricata e inviare ciascun evento a Elasticsearch per l’elaborazione. - Suricata per analizzare il traffico di rete alla ricerca di eventi sospetti e, eventualmente, registrare o eliminare i pacchetti non validi.
Prima installerai e configurerai Elasticsearch e Kibana con alcune impostazioni di autenticazione specifiche. Successivamente aggiungerai Filebeat al tuo sistema Suricata per inviare i suoi registri eve.json
a Elasticsearch.
Infine, imparerai come connetterti a Kibana usando SSH e il tuo browser web, e quindi caricare e interagire con i dashboard di Kibana che mostrano gli eventi e gli avvisi di Suricata.
Prerequisiti
Se hai seguito questa serie di tutorial, dovresti già avere Suricata in esecuzione su un server Rocky Linux. Questo server sarà indicato come il tuo server Suricata.
- Se hai ancora bisogno di installare Suricata, puoi seguire questo tutorial che spiega Come Installare Suricata su Rocky Linux 8.
Avrai anche bisogno di un secondo server per ospitare Elasticsearch e Kibana. Questo server sarà indicato come il tuo server Elasticsearch. Dovrebbe essere un server Rocky Linux 8 con:
- 4GB di RAM e 2 CPU configurate con un utente sudo non root. Puoi realizzare questo seguendo la Configurazione Iniziale del Server con Rocky Linux 8.
Ai fini di questo tutorial, entrambi i server dovrebbero essere in grado di comunicare utilizzando indirizzi IP privati. Puoi utilizzare una VPN come WireGuard per connettere i tuoi server, oppure utilizzare un fornitore di servizi cloud che abbia una rete privata tra gli host. Puoi anche scegliere di eseguire Elasticsearch, Kibana, Filebeat e Suricata sullo stesso server per sperimentare.
Passaggio 1 — Installazione di Elasticsearch e Kibana
Il primo passaggio in questo tutorial è installare Elasticsearch e Kibana sul tuo server Elasticsearch. Per iniziare, aggiungi la chiave GPG di Elastic al tuo server con il seguente comando:
Successivamente, crea un file elasticsearch.repo
nella directory /etc/yum/yum.repos.d
con i seguenti contenuti, utilizzando vi
o il tuo editor preferito. Ciò garantisce che verranno utilizzati i repository Elasticsearch upstream durante l’installazione di nuovi pacchetti tramite yum
:
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
Se stai utilizzando vi
, quando hai finito di apportare modifiche, premi ESC
e quindi :x
per scrivere le modifiche nel file e uscire.
Ora installa Elasticsearch e Kibana utilizzando il comando dnf
. Premi Y
per accettare eventuali prompt relativi alle impronte digitali delle chiavi GPG:
L’opzione --enablerepo
viene utilizzata per sovrascrivere l’impostazione predefinita disabilitata nel file /etc/yum.repos.d/elasticsearch.repo
. Questo approccio garantisce che i pacchetti Elasticsearch e Kibana non vengano aggiornati accidentalmente quando si installano altri aggiornamenti dei pacchetti sul server.
Una volta completata l’installazione dei pacchetti, trova e registra l’indirizzo IP privato del tuo server utilizzando il comando ip address show
:
Riceverai un output simile al seguente:
Outputlo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 159.89.122.115/20 10.20.0.8/16 2604:a880:cad:d0::e56:8001/64 fe80::b832:69ff:fe46:7e5d/64
eth1 UP 10.137.0.5/16 fe80::b883:5bff:fe19:43f3/64
L’interfaccia di rete privata in questo output è il dispositivo eth1
evidenziato, con l’indirizzo IPv4 10.137.0.5
. Il nome del dispositivo e gli indirizzi IP saranno diversi. Indipendentemente dal nome del dispositivo e dall’indirizzo IP privato, l’indirizzo sarà tratto dai seguenti blocchi riservati:
10.0.0.0
a10.255.255.255
(prefisso 10/8)172.16.0.0
a172.31.255.255
(prefisso 172.16/12)192.168.0.0
a192.168.255.255
(prefisso 192.168/16)
Se desideri saperne di più su come sono allocati questi blocchi, visita la specifica RFC 1918.
Registra l’indirizzo IP privato del tuo server Elasticsearch (in questo caso 10.137.0.5
). Questo indirizzo sarà chiamato your_private_ip
nel resto di questo tutorial. Nota anche il nome dell’interfaccia di rete, in questo caso eth1
. Nella prossima parte di questo tutorial configurerai Elasticsearch e Kibana per ascoltare le connessioni sull’indirizzo IP privato proveniente dal tuo server Suricata.
Passaggio 2 — Configurazione di Elasticsearch
Elasticsearch è configurato per accettare solo connessioni locali per impostazione predefinita. Inoltre, non ha abilitata alcuna autenticazione, quindi strumenti come Filebeat non saranno in grado di inviare log ad esso. In questa sezione del tutorial configurerai le impostazioni di rete per Elasticsearch e abiliterai il modulo di sicurezza xpack
integrato in Elasticsearch.
Configurazione della rete Elasticsearch
Dato che i tuoi server Elasticsearch e Suricata sono separati, dovrai configurare Elasticsearch per ascoltare le connessioni sulla sua interfaccia di rete privata.
Apri il file /etc/elasticsearch/elasticsearch.yml
utilizzando vi
o il tuo editor preferito:
Trova la riga commentata #network.host: 192.168.0.1
tra le righe 50 e 60 e aggiungi una nuova riga dopo di essa che configura l’impostazione network.bind_host
, come evidenziato di seguito:
# Per impostazione predefinita, Elasticsearch è accessibile solo su localhost. Imposta un diverso
# indirizzo qui per esporre questo nodo sulla rete:
#
#network.host: 192.168.0.1
network.bind_host: ["127.0.0.1", "your_private_ip"]
#
# Per impostazione predefinita, Elasticsearch ascolta il traffico HTTP sulla prima porta libera che
# trova a partire dalla porta 9200. Imposta qui una porta HTTP specifica:
Sostituisci il tuo indirizzo IP privato al posto dell’indirizzo your_private_ip
. Questa riga garantirà che Elasticsearch sia ancora disponibile sul suo indirizzo locale in modo che Kibana possa raggiungerlo, oltre che sull’indirizzo IP privato per il tuo server.
Successivamente, vai alla fine del file utilizzando il comando vi
SHIFT+G
.
Aggiungi le seguenti righe evidenziate alla fine del file:
. . .
discovery.type: single-node
xpack.security.enabled: true
Impostando il valore di discovery.type
è possibile far funzionare Elasticsearch come singolo nodo, invece che in un cluster di altri server Elasticsearch. Impostando xpack.security.enabled
si attivano alcune delle funzionalità di sicurezza incluse con Elasticsearch.
Salva e chiudi il file quando hai finito di modificarlo.
Infine, aggiungi regole del firewall per garantire che il tuo server Elasticsearch sia raggiungibile sulla sua interfaccia di rete privata. Se hai seguito i tutorial preliminari e stai utilizzando firewalld
, esegui i seguenti comandi:
Sostituisci il nome dell’interfaccia della tua rete privata al posto di eth1
nel primo comando se il tuo è diverso. Quel comando cambia le regole dell’interfaccia per utilizzare la zona internal
di Firewalld, che è più permissiva rispetto alla zona predefinita public
.
I comandi successivi aggiungono regole per consentire il traffico di Elasticsearch sulla porta 9200 e 9300, insieme al traffico di Kibana sulla porta 5601.
Il comando finale ricarica il servizio Firewalld con le nuove regole permanenti in atto.
Successivamente avvierai il demone Elasticsearch e quindi configurerai le password per l’uso del modulo di sicurezza xpack
.
Avvio di Elasticsearch
Ora che hai configurato la rete e le impostazioni di sicurezza xpack
per Elasticsearch, devi avviarlo affinché le modifiche abbiano effetto.
Esegui il seguente comando systemctl
per avviare Elasticsearch:
Una volta che Elasticsearch ha finito di avviarsi, puoi procedere alla sezione successiva di questo tutorial dove genererai le password per gli utenti predefiniti integrati in Elasticsearch.
Configurazione delle Password di Elasticsearch
Ora che hai abilitato l’impostazione xpack.security.enabled
, devi generare le password per gli utenti predefiniti di Elasticsearch. Elasticsearch include un’utilità nella directory /usr/share/elasticsearch/bin
che può generare automaticamente password casuali per questi utenti.
Esegui il seguente comando per cd
alla directory e poi genera password casuali per tutti gli utenti predefiniti:
Riceverai un output simile al seguente. Quando ti verrà chiesto di continuare, premi y
e poi RETURN
o ENTER
:
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y
Changed password for user apm_system
PASSWORD apm_system = eWqzd0asAmxZ0gcJpOvn
Changed password for user kibana_system
PASSWORD kibana_system = 1HLVxfqZMd7aFQS6Uabl
Changed password for user kibana
PASSWORD kibana = 1HLVxfqZMd7aFQS6Uabl
Changed password for user logstash_system
PASSWORD logstash_system = wUjY59H91WGvGaN8uFLc
Changed password for user beats_system
PASSWORD beats_system = 2p81hIdAzWKknhzA992m
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = 85HF85Fl6cPslJlA8wPG
Changed password for user elastic
PASSWORD elastic = 6kNbsxQGYZ2EQJiqJpgl
Non sarai in grado di eseguire nuovamente l’utilità, quindi assicurati di registrare queste password in un luogo sicuro. Avrai bisogno di utilizzare la password dell’utente kibana_system
nella prossima sezione di questo tutorial e la password dell’utente elastic
nel passaggio Configurazione di Filebeat di questo tutorial.
A questo punto nel tutorial hai finito di configurare Elasticsearch. La prossima sezione spiega come configurare le impostazioni di rete di Kibana e il suo modulo di sicurezza xpack
.
Passaggio 3 — Configurazione di Kibana
Nella sezione precedente di questo tutorial, hai configurato Elasticsearch per ascoltare le connessioni sull’indirizzo IP privato del tuo server Elasticsearch. Dovrai fare lo stesso per Kibana in modo che Filebeats sul tuo server Suricata possano raggiungerlo.
Prima attiverai la funzionalità di sicurezza xpack
di Kibana generando alcuni segreti che Kibana utilizzerà per memorizzare i dati in Elasticsearch. Successivamente, configurerai le impostazioni di rete e le informazioni di autenticazione di Kibana per connettersi a Elasticsearch.
Abilitare xpack.security
in Kibana
Per iniziare con le impostazioni di sicurezza xpack
in Kibana, è necessario generare alcune chiavi di crittografia. Kibana utilizza queste chiavi per memorizzare i dati di sessione (come i cookie), nonché vari dashboard salvati e visualizzazioni dei dati in Elasticsearch.
È possibile generare le chiavi di crittografia richieste utilizzando l’utilità kibana-encryption-keys
inclusa nella directory /usr/share/kibana/bin
. Esegui quanto segue per cd
nella directory e quindi generare le chiavi:
Il flag -q
sopprime le istruzioni del tool, e il flag --force
assicurerà che tu crei nuove chiavi. Dovresti ricevere un output simile al seguente:
Outputxpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585
xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef
xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
Copia queste tre chiavi in un luogo sicuro. Ora le aggiungerai al file di configurazione /etc/kibana/kibana.yml
di Kibana.
Apri il file utilizzando vi
o il tuo editor preferito:
Vai alla fine del file utilizzando la scorciatoia SHIFT+G
di vi
. Incolla le tre righe xpack
che hai copiato alla fine del file:
. . .
# Specifica la localizzazione da utilizzare per tutte le stringhe localizzabili, le date e i formati numerici.
# Le lingue supportate sono le seguenti: Inglese - en, di default, Cinese - zh-CN.
#i18n.locale: "en"
xpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585
xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef
xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
Mantieni il file aperto e procedi alla sezione successiva dove configurerai le impostazioni di rete di Kibana.
Configurazione della rete di Kibana
Per configurare la rete di Kibana in modo che sia disponibile sull’indirizzo IP privato del tuo server Elasticsearch, trova la linea commentata #server.host: "localhost"
in /etc/kibana/kibana.yml
. La linea si trova all’inizio del file. Aggiungi una nuova linea dopo di essa con l’indirizzo IP privato del tuo server, come evidenziato di seguito:
# Kibana è servita da un server back-end. Questa impostazione specifica la porta da utilizzare.
#server.port: 5601
# Specifica l'indirizzo a cui il server Kibana si legherà. Sia gli indirizzi IP che i nomi host sono valori validi.
# Il valore predefinito è 'localhost', che di solito significa che le macchine remote non saranno in grado di connettersi.
# Per consentire le connessioni dagli utenti remoti, imposta questo parametro su un indirizzo non di loopback.
#server.host: "localhost"
server.host: "your_private_ip"
Sostituisci il tuo IP privato al posto dell’indirizzo your_private_ip
.
Salva e chiudi il file quando hai finito di modificarlo. Successivamente, dovrai configurare il nome utente e la password che Kibana utilizza per connettersi a Elasticsearch.
Configurazione delle credenziali di Kibana
Ci sono due modi per impostare il nome utente e la password che Kibana utilizza per autenticarsi su Elasticsearch. Il primo è modificare il file di configurazione /etc/kibana/kibana.yml
e aggiungere i valori lì. Il secondo metodo è memorizzare i valori nel keystore di Kibana, che è un file oscurato che Kibana può utilizzare per memorizzare i segreti.
Useremo il metodo keystore in questo tutorial poiché evita di modificare direttamente il file di configurazione di Kibana.
Se preferisci modificare il file invece, le impostazioni da configurare in esso sono elasticsearch.username
e elasticsearch.password
.
Se scegli di modificare il file di configurazione, salta il resto dei passaggi in questa sezione.
Per aggiungere un segreto al keystore utilizzando l’utilità kibana-keystore
, prima cd
nella directory /usr/share/kibana/bin
. Successivamente, esegui il seguente comando per impostare il nome utente per Kibana:
Riceverai un prompt simile al seguente:
Enter value for elasticsearch.username: *************
Inserisci kibana_system
quando richiesto, sia copiando e incollando che digitando attentamente il nome utente. Ogni carattere che digiti verrà mascherato con un carattere asterisco *
. Premi ENTER
o RETURN
quando hai finito di inserire il nome utente.
Adesso ripeti il processo, questa volta per salvare la password. Assicurati di copiare la password per l’utente kibana_system
che hai generato nella sezione precedente di questo tutorial. Per riferimento, in questo tutorial l’esempio di password è 1HLVxfqZMd7aFQS6Uabl
.
Esegui il seguente comando per impostare la password:
Quando richiesto, incolla la password per evitare errori di trascrizione:
Enter value for elasticsearch.password: ********************
Avvio di Kibana
Ora che hai configurato la rete e le impostazioni di sicurezza xpack
per Kibana, e hai aggiunto le credenziali allo store di chiavi, devi avviarlo affinché le modifiche abbiano effetto.
Esegui il seguente comando systemctl
per riavviare Kibana:
Una volta avviato Kibana, puoi continuare alla prossima sezione di questo tutorial dove configurerai Filebeat sul tuo server Suricata per inviare i suoi log a Elasticsearch.
Passaggio 4 — Installazione di Filebeat
Ora che i tuoi processi Elasticsearch e Kibana sono configurati con le impostazioni di rete e autenticazione corrette, il passaggio successivo è installare e configurare Filebeat sul tuo server Suricata.
Per iniziare l’installazione di Filebeat, aggiungi la chiave GPG di Elastic al tuo server Suricata con il seguente comando:
Successivamente, crea un file elasticsearch.repo
nella directory /etc/yum/yum.repos.d
con il seguente contenuto, utilizzando vi
o il tuo editor preferito:
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
Quando hai finito di apportare le modifiche, salva e esci dal file. Ora installa il pacchetto Filebeat utilizzando il comando dnf
:
Successivamente, dovrai configurare Filebeat per connettersi sia a Elasticsearch che a Kibana. Apri il file di configurazione /etc/filebeat/filebeat.yml
utilizzando vi
o il tuo editor preferito:
Trova la sezione Kibana
del file intorno alla riga 100. Aggiungi una riga dopo la riga commentata #host: "localhost:5601"
che punta all’indirizzo IP privato e alla porta dell’istanza Kibana:
. . .
# A partire dalla versione 6.0.0 di Beats, i dashboard vengono caricati tramite l'API di Kibana.
# Questo richiede una configurazione dell'endpoint Kibana.
setup.kibana:
# Host Kibana
# Lo schema e la porta possono essere omessi e verranno impostati sul valore predefinito (http e 5601)
# Nel caso in cui specifichi un percorso aggiuntivo, è richiesto lo schema: http://localhost:5601/percorso
# Gli indirizzi IPv6 devono sempre essere definiti come: https://[2001:db8::1]:5601
#host: "localhost:5601"
host: "your_private_ip:5601"
. . .
Questo cambiamento garantirà che Filebeat possa connettersi a Kibana per creare i vari indici SIEM, dashboard e pipeline di elaborazione in Elasticsearch per gestire i log di Suricata.
Successivamente, trova la sezione Output Elasticsearch
del file circa alla riga 130 e modifica le impostazioni hosts
, username
e password
in modo che corrispondano ai valori del tuo server Elasticsearch:
output.elasticsearch:
# Array degli host a cui connettersi.
hosts: ["your_private_ip:9200"]
# Protocollo - o `http` (predefinito) o `https`.
#protocol: "https"
# Credenziali di autenticazione - API key o nome utente/password.
#api_key: "id:api_key"
username: "elastic"
password: "6kNbsxQGYZ2EQJiqJpgl"
. . .
Sostituisci con l’indirizzo IP privato del tuo server Elasticsearch sulla riga hosts
. Rimuovi il commento dal campo username
e lascialo impostato sull’utente elastic
. Cambia il valore del campo password
da changeme
alla password per l’utente elastic
che hai generato nella sezione Configurazione delle Password di Elasticsearch di questo tutorial.
Salva e chiudi il file quando hai finito di modificarlo. Successivamente, abilita il modulo Suricata integrato di Filebeat con il seguente comando:
Ora che Filebeat è configurato per connettersi a Elasticsearch e Kibana, con il modulo Suricata abilitato, il prossimo passo è caricare le dashboard e le pipeline SIEM in Elasticsearch.
Esegui il comando filebeat setup
. Potrebbe richiedere alcuni minuti per caricare tutto:
Una volta che il comando è terminato, dovresti ricevere un output simile al seguente:
OutputOverwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/machine-learning/current/index.html
It is not possble to load ML jobs into an Elasticsearch 8.0.0 or newer using the Beat.
Loaded machine learning job configurations
Loaded Ingest pipelines
Se non ci sono errori, utilizza il comando systemctl
per avviare Filebeat. Inizierà a inviare eventi dal registro eve.json
di Suricata a Elasticsearch una volta che sarà in esecuzione.
Ora che hai configurato Filebeat, Kibana ed Elasticsearch per elaborare i tuoi log di Suricata, l’ultimo passaggio di questo tutorial è quello di connettersi a Kibana ed esplorare i pannelli SIEM.
Passaggio 5 — Navigare nei pannelli SIEM di Kibana
Kibana è il componente grafico dello stack Elastic. Utilizzerai Kibana con il tuo browser per esplorare i dati sugli eventi e gli alert di Suricata. Poiché hai configurato Kibana per essere disponibile solo tramite l’indirizzo IP privato del tuo server Elasticsearch, dovrai utilizzare un tunnel SSH per connetterti a Kibana.
Connessione a Kibana con SSH
SSH ha un’opzione -L
che ti consente di inoltrare il traffico di rete su una porta locale sulla sua connessione a un indirizzo IP e una porta remoti su un server. Utilizzerai questa opzione per inoltrare il traffico dal tuo browser alla tua istanza di Kibana.
Su Linux, macOS e versioni aggiornate di Windows 10 e superiori, puoi utilizzare il client SSH integrato per creare il tunnel. Utilizzerai questo comando ogni volta che desideri connetterti a Kibana. Puoi chiudere questa connessione in qualsiasi momento e quindi eseguire nuovamente il comando SSH per ristabilire il tunnel.
Esegui il seguente comando in un terminale sul tuo computer desktop o laptop locale per creare il tunnel SSH verso Kibana:
I vari argomenti per SSH sono:
- Il flag
-L
inoltra il traffico al tuo sistema locale sulla porta5601
al server remoto. - La parte
your_private_ip:5601
del comando specifica il servizio sul tuo server Elasticsearch dove verrà inoltrato il traffico. In questo caso quel servizio è Kibana. Assicurati di sostituire l’indirizzo IP privato del tuo server Elasticsearch al posto diyour_private_ip
. - L’indirizzo
203.0.113.5
è l’indirizzo IP pubblico che utilizzi per connetterti e amministrare il tuo server. Sostituisci l’indirizzo IP pubblico del tuo server Elasticsearch al suo posto. - Il flag
-N
istruisce SSH a non eseguire un comando come una shell interattiva/bin/bash
, e invece mantenere aperta solo la connessione. Viene generalmente utilizzato quando si inoltrano porte come in questo esempio.
Se desideri chiudere il tunnel in qualsiasi momento, premi CTRL+C
.
Su Windows, il tuo terminale dovrebbe assomigliare alla seguente schermata:
Nota: Potresti essere invitato a inserire una password se non stai utilizzando una chiave SSH. Digita o incolla la password nel prompt e premi INVIO
o RITORNO
.
Su macOS e Linux, il tuo terminale sarà simile allo screenshot seguente:
Una volta connesso al tuo server Elasticsearch tramite SSH con il port forwarding attivo, apri il browser e visita http://127.0.0.1:5601. Sarai reindirizzato alla pagina di accesso di Kibana:
Se il tuo browser non può connettersi a Kibana, riceverai un messaggio simile al seguente nel tuo terminale:
Outputchannel 3: open failed: connect failed: No route to host
Questo errore indica che il tunnel SSH non riesce a raggiungere il servizio Kibana sul tuo server. Assicurati di aver specificato l’indirizzo IP privato corretto per il tuo server Elasticsearch e ricarica la pagina nel tuo browser.
Accedi al tuo server Kibana utilizzando elastic
come Nome utente e la password che hai copiato in precedenza in questo tutorial per l’utente.
Esplorazione dei dashboard SIEM di Kibana
Una volta effettuato l’accesso a Kibana, puoi esplorare i dashboard Suricata che Filebeat ha configurato per te.
Nel campo di ricerca nella parte superiore della pagina di benvenuto di Kibana, inserisci i termini di ricerca type:dashboard suricata
. Questa ricerca restituirà due risultati: i dashboard Eventi Suricata e Allarmi Suricata come nello screenshot seguente:
Clicca sul risultato [Filebeat Suricata] Panoramica degli eventi
per visitare il cruscotto Kibana che mostra una panoramica di tutti gli eventi Suricata registrati:
Per visitare il cruscotto degli Allarmi Suricata, ripeti la ricerca o clicca sul link Allarmi
incluso nel cruscotto degli Eventi. La tua pagina dovrebbe assomigliare alla seguente schermata:
Se desideri ispezionare gli eventi e gli allarmi visualizzati da ciascun cruscotto, scorri fino in fondo alla pagina dove troverai una tabella che elenca ogni evento e allarme. Puoi espandere ogni voce per visualizzare l’ingresso di registro originale da Suricata e esaminare in dettaglio i vari campi come indirizzi IP di origine e destinazione per un allarme, il tipo di attacco, l’ID della firma di Suricata e altri.
Kibana ha anche un insieme integrato di cruscotti di sicurezza a cui puoi accedere utilizzando il menu sul lato sinistro della finestra del browser. Naviga fino al cruscotto Rete per una panoramica degli eventi visualizzati su una mappa, oltre a dati aggregati sugli eventi sulla tua rete. Il tuo cruscotto dovrebbe assomigliare alla seguente schermata:
Puoi scorrere fino in fondo al cruscotto di Rete per una tabella che elenca tutti gli eventi che corrispondono al tuo periodo di ricerca specificato. Puoi anche esaminare ogni evento in dettaglio o selezionare un evento per generare una timeline di Kibana, che puoi poi utilizzare per investigare flussi di traffico specifici, allarmi o ID della comunità.
Conclusion
In questo tutorial hai installato e configurato Elasticsearch e Kibana su un server autonomo. Hai configurato entrambi gli strumenti per essere disponibili su un indirizzo IP privato. Hai inoltre configurato le impostazioni di autenticazione di Elasticsearch e Kibana utilizzando il modulo di sicurezza xpack
incluso in ciascuno strumento.
Dopo aver completato i passaggi di configurazione di Elasticsearch e Kibana, hai anche installato e configurato Filebeat sul tuo server Suricata. Hai utilizzato Filebeat per popolare i dashboard di Kibana e iniziare a inviare i log di Suricata a Elasticsearch.
Infine, hai creato un tunnel SSH verso il tuo server Elasticsearch e ti sei connesso a Kibana. Hai individuato i nuovi dashboard Eventi e Allarmi di Suricata, oltre al dashboard di Rete.
L’ultimo tutorial di questa serie ti guiderà nell’uso della funzionalità SIEM di Kibana per elaborare gli allarmi di Suricata. Esplorerai come creare casi per monitorare specifici allarmi, timeline per correlare i flussi di rete e regole per corrispondere a eventi specifici di Suricata che desideri monitorare o analizzare in modo più dettagliato.