
Raccolta log sensore DShield con ELK
Questa è una fork e un aggiornamento significativo rispetto alla pubblicazione iniziale sul sito dell'ISC Storm Center di Scott Jensen come documento BACS e agli script pubblicati su Github.
https://github.com/fkadriver/Dshield-ELK
https://isc.sans.edu/diary/DShield+Sensor+Monitoring+with+a+Docker+ELK+Stack+Guest+Diary/30118
Questa è un buon riferimento su come usare DShield-SIEM per l'analisi: https://isc.sans.edu/diary/30962/
Questo fornisce una panoramica su come viene effettuata la raccolta dei log con il sensore DShield.
https://github.com/bruneaug/DShield-SIEM/blob/main/Troubleshooting/DShield-SIEM-Flow.png
Questo docker è costruito su misura per essere utilizzato con il DShield Honeypot per raccogliere e analizzare i log e raccogliere i dati per renderli facilmente ricercabili per scopi di ricerca. L'installazione consigliata prevede di installare il sensore DShield su un Raspberry Pi con Raspbian OS o su un sistema con Ubuntu 24.04 LTS, sia nella propria rete che nel cloud di propria scelta.
Nota: Questo deve essere installato su un server separato come indicato di seguito.
Nota: Per aggiornare i componenti del server ELK, seguire questi passaggi:
https://github.com/bruneaug/DShield-SIEM/blob/main/README.md#download-github-update
Installare docker come utente ($):````
sudo apt-get install ca-certificates curl gnupg network-manager txt2html
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Note: You may need to take the next line, remove the backlash () and put everythin in a single line in Notepad to run this echo.
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt upgrade
sudo reboot (if update were applied)
sudo apt-get install -y jq docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin pip
sudo systemctl enable docker
sudo systemctl start docker.service
Conferma che il servizio docker sia in esecuzione<br>````
sudo systemctl status docker.service
Aggiungi i seguenti nomi server ELK es01 kibana fleet-server heartbeat logstash filebeat filebeat01
a /etc/hosts dopo l'indirizzo IP e il nome server:
````
sudo vi /etc/hosts
Aggiungi questo a /etc/hosts dopo gli indirizzi IP del server ELK<br>
127.0.0.1 sensor es01 ...<br>
192.168.25.80 sensor es01 ...<br>````
es01 kibana fleet-server heartbeat logstash filebeat filebeat01
Modifica il file sysctl.conf:
````
sudo vi /etc/sysctl.conf
Aggiungi quanto segue in fondo al file:<br>````
vm.max_map_count=262144
Aggiungi e salvalo. Questo è per Elasticsearch quando si usa Docker.
sudo iptables -nL

# Configura e installa DShield ELK
Usando l'account utente ($), esegui i seguenti comandi:<br>````
git clone https://github.com/bruneaug/DShield-SIEM.git
mkdir scripts
mv DShield-SIEM/AddOnScripts/*.sh scripts
chmod 754 scripts/*.sh
cd ~/DShield-SIEM
Nota: Prima dell'installazione, puoi modificare il file .env (ls -la per vederlo) per apportare le modifiche desiderate.
- La password predefinita corrente per elastic è student
I limiti di memoria in .env sono la quantità massima di memoria che docker allocherà per ciascuno dei container ELK.
Di default è 3GB per Elasticsearch, ma può essere ampliata se hai le risorse necessarie
Modifica il file .env e configuralo per il tuo stack ELK.
````
vi .env
- Aggiorna le seguenti variabili nel file **.env** per adattarle alle informazioni DNS, hostname, IP e alla password Elastic predefinita del tuo server ELK, se desideri modificarle: <br>
- HOSTNAME="ubuntu"
- DNS_SERVER="9.9.9.9"
- IPADDRESS="192.168.25.231"
- ELASTIC_PASSWORD=student
- ES_MEM = Elasticsearch -> 4g, KB_MEM = Kibana -> 2g
- Se desideri modificare le informazioni predefinite sui nameserver e la posizione della tua rete privata locale per l'indirizzo di destinazione (ad es. mappatura sensore DShield - attualmente impostata per **Ottawa, Canada**), modifica la seguente directory per i file prima di caricare docker:<br>````
cd logstash/pipeline
Modifica heartbeat.yml per cambiare l'IP del sensore (denominato PI) con il tuo IP del sensore. Kibana heartbeat controlla lo stato dei tuoi servizi e determina se sono disponibili.
Aggiorna questo IP e hostname per adattarli al tuo sensore.
Nota: Puoi copiare e aggiungere le stesse 5 righe se hai più di un sensore che desideri monitorare
Questo può essere visualizzato in Observability -> Uptime Monitors
