Wazuh è un prodotto che svolge le funzionalità di Intrusion Detection, attraverso un agente, scansiona il sistema monitorato alla ricerca di malware, rootkit e anomalie sospette.
Può rilevare file nascosti, processi nascosti o listener di rete non registrati, nonché incoerenze nelle risposte alle chiamate di sistema.
Oltre alle funzionalità dell’agente, il componente server utilizza un approccio basato sulla firma per il rilevamento delle intrusioni, utilizzando il suo motore di espressione regolare per analizzare i dati di registro raccolti e cercare indicatori di compromissione.
Wazuh è una soluzione open-source capace di integrarsi con l’intero ecosistema aziendale e aiutare le organizzazioni a monitorare i sistemi, individuare le minacce e rispondere in tempi utili agli attacchi.
Il tool unisce protezione XDR e SIEM per proteggere gli endpoint aziendali e garantire sicurezza anche agli ambienti cloud.
Integrandosi con numerose piattaforme di sicurezza, come Suricata, VirusTotal o YATA, Wazuh offre capacità di threat intelligence e detection analizzando gli stream di dati dalle diverse sorgenti.
PREREQUISITI
Ubunrtu Server 22.04
Password di root
Accesso al Server Ubuntu tramite SSH
INSTALLAZIONE DI ELASTICSEARCH
Per utilizzare appieno le funzionalità del gestore Wazuh e avere una bella interfaccia utente per la visualizzazione, Wazuh deve essere integrato con Elastic Stack e per essere precisi, Kibana, per la visualizzazione, Elasticsearch, per l’archiviazione dei dati e il motore di ricerca, Filebeat per la raccolta dei dati degli eventi del gestore Wazuh e spingendoli al motore di ricerca Elasticsearch.
Pertanto, per installare e configurare il gestore Wazuh su Ubuntu 22.04, è necessario iniziare configurando Elastic Stack; Kibana, Elasticsearch e Filebeat.
Secondo la pagina della matrice di compatibilità dei componenti Wazuh, le attuali versioni stabili di Wazuh (v4.7.0) supportano fino a ELK 7.17.13 al momento della stesura di questa guida.
Questo dovrebbe quindi guidarci sulla versione dello stack elastico da distribuire.
Per installare i componenti Elastic Stack su Ubuntu 22.04, procedere come segue.
Installare i repository APT Elastic Stack con i seguenti comandi:
0 1 2 3 4 |
apt install curl apt-transport-https unzip wget libcap2-bin software-properties-common lsb-release gnupg2 wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/elastic.gpg echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list |
Aggiornare le informazioni sui pacchetti con il comando:
0 |
apt update |
Installare Elasticsearch con il comando:
0 |
apt install elasticsearch=7.17.13 |
Per impostazione predefinita, Elasticsearch dovrebbe funzionare solo con le impostazioni predefinite.
Se sarà necessario accedere ad Elasticsearch da altri Beats esterni, sarà necessario impostare l’indirizzo IP e definire se eseguire in un cluster multi nodo o a nodo singolo.
Avviare e abilitare Elasticsearch per l’esecuzione all’avvio del sistema con il comando:
0 |
systemctl enable elasticsearch |
Verificare che la porta di Elasticsearch sia in ascolto con il comando:
0 |
ss -altnp | grep 9200 |
Se è tutto OK dovremmo vedere un output come mostrato nell’immagine sovrastante
Quindi verificare lo stato di Elasticsearch con il comando:
0 |
systemctl status elasticsearch |
Se è tutto OK dovremmo vedere un output come mostrato nell’immagine sovrastante
ATTENZIONE: E’ possibile controllare i log se necessario. Per impostazione predefinita, i log vengono scritti in /var/log/elasticsearch/CLUSTER_NAME.log, dove CLUSTER_NAME è elasticsearch per impostazione predefinita. Pertanto, il file di registro predefinito è /var/log/elasticsearch/elasticsearch.log.
INSTALLAZIONE DI KIBANA
Procedere con l’installazione di Kibana con il comando:
0 |
apt install kibana=7.17.13 |
Prima di tutto impostare l’indirizzo IP del server Kibana per consentire l’accesso esterno. Di solito ascolta solo sull’interfaccia di loopback.
Ad esempio, l’indirizzo IP del mio server è 192.168.100.239. Pertanto, per configurare Kibana in modo che ascolti su questo indirizzo IP host, eseguire il comando seguente:
0 |
sed -i '/server.host:/s/^#//;s/localhost/192.168.100.239/' /etc/kibana/kibana.yml |
Se il server Wazuh ha piu interfacce di rete e si intende configurare Kibana per l’ascolto su tutte le interfacce, usare semplicemente 0.0.0.0 invece dell’IP specifico. Di seguito il comando:
0 |
sed -i '/server.host:/s/^#//;s/localhost/0.0.0.0/' /etc/kibana/kibana.yml |
Avviare e abilitare l’esecuzione di Kibana all’avvio del sistema con il comando:
0 |
systemctl enable kibana |
Verificare che la porta di Kibana sia in ascolto con il comando:
0 |
ss -altnp | grep 5601 |
Se è tutto OK dovremmo vedere un output come mostrato nell’immagine sovrastante
Quindi verificare lo stato di Elasticsearch con il comando:
0 |
systemctl status kibana |
Se è tutto OK dovremmo vedere un output come mostrato nell’immagine sovrastante
ATTENZIONE: Se necessario, controllare i file di registro syslog e /var/log/kibana/kibana.log.
INSTALLAZIONE DI FILEBEAT
Filebeat
è necessario per inoltrare gli avvisi del gestore Wazuh e gli eventi archiviati a Elasticsearch. E’ possibile installare la versione 7.17.13, attualmente supportata da Wazuh al momento della stesura di questo articolo, utilizzando il comando seguente:
0 |
apt install filebeat=7.17.9 -y |
Abilitare l’esecuzione di Filebeat all’avvio del sistema con il comando:
0 |
systemctl enable filebeat |
INSTALLAZIONE DI WAZUH MANAGER
Procedere con l’installazione del server e gestore Wazuh su Ubuntu 22.04
Installare il repository APT Wazuh con i seguenti comandi:
0 1 2 |
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor > /etc/apt/trusted.gpg.d/wazuh.gpg echo "deb https://packages.wazuh.com/4.x/apt stable main" > /etc/apt/sources.list.d/wazuh.list |
Aggiornare le informazioni sui pacchetti con il comando:
0 |
apt update |
Installare Wazuh Manager con il comando:
0 |
apt install wazuh-manager |
Terminata l’installazione avviare e abilitare l’esecuzione di Wazuh-manager all’avvio del sistema con il comando:
0 |
systemctl enable wazuh-manager |
INTEGRAZIONE DI WAZUH MANAGER CON ELK STACK
Installare l’Applicazione Kibana manager/server Wazuh, procedere con il comando:
0 |
chown -R kibana: /usr/share/kibana/plugins |
Assicurarsi che la versione del plugin da installare sia compatibile con la versione attualmente installata dello stack ELK e con il gestore Wazuh installato.
Al seguente link è possibile visualizzare la lista dei pacchetti:
Al seguente link è presente la matrice di compatibilità:
ATTENZIONE: al momento della stesura del seguente articolo la versione compaitibile è wazuh_kibana-4.5.4_7.17.13-1.zip
Eseguire il comando:
0 |
sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.5.4_7.17.13-1.zip |
Dovremmon vedere il seguente output se tutto è andato a buon fine:
0 1 2 3 4 5 6 |
Attempting to transfer from https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.5.4_7.17.13-1.zip Transferring 36404504 bytes.................... Transfer complete Retrieving metadata from plugin archive Extracting plugin archive Extraction complete Plugin installation complete |
Creare la directory dei dati Wazuh Kibana e impostare la proprietà sull’utente Kibana con i seguenti comandi:
0 1 2 |
mkdir /usr/share/kibana/data chown -R kibana: /usr/share/kibana/data |
Riavviare Kibana con il comando:
0 |
systemctl restart kibana |
CONFIGURARE FILEBEAT PER WAZUH MANAGER
Prima di iniziare con la configurazione effettuare un backup del file di configurazione predefinito con il comando:
0 |
mv /etc/filebeat/filebeat.{yml,stock} |
Quindi eseguire il comando:
0 |
cat > /etc/filebeat/filebeat.yml << 'EOL' |
Incollare la configurazione seguente:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
output.elasticsearch: hosts: ["localhost:9200"] setup.template.json.enabled: true setup.template.json.path: '/etc/filebeat/wazuh-template.json' setup.template.json.name: 'wazuh' setup.ilm.overwrite: true setup.ilm.enabled: false filebeat.modules: - module: wazuh alerts: enabled: true archives: enabled: false logging.level: info logging.to_files: true logging.files: path: /var/log/filebeat name: filebeat keepfiles: 7 permissions: 0644 logging.metrics.enabled: false seccomp: default_action: allow syscalls: - action: allow names: - rseq |
Per uscire dalla configurazione digitare il comando:
0 |
EOL |
INSTALLAZIONE DEL MODULO FILEBEAT DI WAZUH
Eseguire il comando:
0 |
wget -qO- https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xz -C /usr/share/filebeat/module/ |
Scaricare e installare il template Elasticsearch degli Alerts di Wazuh con i seguenti comandi:
0 1 2 |
wget -O /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.7/extensions/elasticsearch/7.x/wazuh-template.json chmod go+r /etc/filebeat/wazuh-template.json |
Testare la configurazione di Filebeat con il comando:
0 |
filebeat test config |
Se è tutto OK dovremmo visualizzare il seguente Output:
0 |
Config OK |
Testare l’Output Filebeat Elasticsearch con il comando:
0 |
filebeat test output |
Se è tutto OK dovremmo vedere il seguente Output:
0 1 2 3 4 5 6 7 8 9 |
elasticsearch: http://localhost:9200... parse url... OK connection... parse host... OK dns lookup... OK addresses: 127.0.0.1 dial up... OK TLS... WARN secure connection disabled talk to server... OK version: 7.17.13 |
Sopra l’immagine che mostra l’Output del comando eseguito.
RIAVVIO DI KIBANA, ELASTICSEARCH, FILEBEAT E WAZUH-MANAGER
Adesso che la configurazione è completa riavviare tutti i servizi con il comando:
0 |
systemctl restart elasticsearch kibana filebeat wazuh-manager |
Verificare quindi lo stato di tutti i servizi con il comando:
0 |
systemctl status elasticsearch kibana filebeat wazuh-manager |
Se è tutto OK dovremmo vedere il servizio di Elasticsearch Attivo come nella figura sovrastante
Se è tutto OK dovremmo vedere il servizio di Kibana Attivo come nella figura sovrastante
Se è tutto OK dovremmo vedere il servizio di Filebeat Attivo come nella figura sovrastante
Se è tutto OK dovremmo vedere il servizio di Wazuh-Manager Attivo come nella figura sovrastante
ACCESSO ALLA WEB INTERFACE DI KIBANA
Per accedere alla web interface richiamare da un qualsiasi browser il seguente link:
http://SERVER-IP-O-FQDN:5601
Al primo accesso cliccare su Explore on my own quindi accedere alla dashboard
Cliccare sul menù in alto a destra e selezionare l’App Wazuh Kibana come mostrato nell’immagine sovrastante
Se è andato tutto a buon fine dovremmo vedere la Dashboard di Wazuh
Sopra un immagine che mostra l’accesso ai menù di Wazuh
Ora è possibile procedere all’installazione degli agenti Wazuh e avviare quindi la raccolta dei registri dagli endpoint.
INSTALLAZIONE DI WAZUH CON UN COMANDO UNICO
Prima di proecedere con l’installazione installare tutte le dipendenze con il comando seguente:
0 |
sudo apt update && sudo apt install curl apt-transport-https unzip wget libcap2-bin software-properties-common lsb-release gnupg2 |
In pratica con il comando seguente verrà implemetato Wazuh come da diagramma sovrastante.
Installare Wazuh 4.5.x tutto in uno con il comando:
curl -sO https://packages.wazuh.com/4.5/wazuh-install.sh && chmod 744 wazuh-install.sh && bash ./wazuh-install.sh -a
Se è andato tutto a buon fine dovremmo vedere una schermata come quella sovrastante che ci indica di richiamare il link https://IP-O-FQDN-SERVER
Inserire le credenziali indicate nella console SSH quindi cliccare Login
Se è andato tutto a buon fine dovremmo vedere la Dashboard di Wazuh come mostrato nell’immagine sovrastante
ABILITARE IL CAMBIO PASSWORD PER L’UTENTE ADMIN
Per poter cambiare la password di admin utilizzato per l’accesso alla Web Interface eseguire dalla console SSH il comando per installare i Wazuh Password Tool:
0 |
curl -so wazuh-passwords-tool.sh https://packages.wazuh.com/4.4/wazuh-passwords-tool.sh |
Dopo aver installato il Tool eseguire il comando seguente per cambiare la password dell’utente admin:
0 |
sudo bash wazuh-passwords-tool.sh -u admin -p PASSWORD |
NOTA BENE: inserire la password desiderata al posto di PASSWORD
Se è andato tutto a buon fine dovremmo vedere una schermata come mostrato nell’immagine sovrastante
Riavviare i servizi indicati oppure riavviare il server.
A questo punto sarà possibile loggarsi alla Web Interface con la nuova password.
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
Il sizing della Vm dipende dai servizi che si intende monitorare e dalla retention dei log. Ipotizziamo di configurare l’agent Wazuh su 10 Server e 10 CLient e di avere una retention di 6 mesi basterebbe una VM con 2 vCPU – 4 GB di ram e 100 GB di disco.
Saluti
Salve ho letto con interesse la procedura di installazione e configurazione avrei però due domande..la VM per ospitare Ubuntu e di conseguenza Wazuh come consiglieresti di carrozzarla.. ram, disco, vCpu, inoltre sono reduce di diverse dolorose esperienze con elesticsearch sia su wazuh che su security onion che dopo un pò saturano il disco e i sfascia il db ..hai mai riscontrato questo ?