
tshark + macchina virtuale per analisi ELK
Una applicazione più recente tshark-opensearch è ora disponibile.
Puoi trovarla nel repository https://github.com/h21-lab/apps-collection-info. 👉 Ottieni Accesso
Questo progetto costruisce una macchina virtuale che può essere utilizzata per l'analisi dell'output tshark -T ek (ndjson).
L'appliance virtuale è costruita usando Vagrant, che crea Debian con lo stack ELK pre-installato e pre-configurato.
Dopo l'avvio della VM, il processo è semplice:
tshark -T ek / ndjson) vengono inviati su TCP/17570 alla VMhttp://127.0.0.1:15601/app/kibana#/dashboardsgit clone https://github.com/H21lab/tsharkVM.git
sudo apt update
sudo apt install tshark virtualbox vagrant
vagrant plugin install vagrant-disksize
vagrant plugin install vagrant-scp
bash ./build.sh
# copia i tuoi pcap in ./Trace
# carica i pcap (con i nomi dei file)
bash upload_pcaps_with_filenames.sh
# oppure usa vagrant scp per copiare i file ndjson in /home/vagrant/input
# oppure carica i pcap (senza i nomi dei file)
bash upload_pcaps.sh
# oppure usa tshark direttamente verso 127.0.0.1 17570/tcp
tshark -r trace.pcapng -x -T ek > /dev/tcp/localhost/17570
firefox http://127.0.0.1:15601/app/kibana#/dashboards
Aprire la Dashboard principale e aumentare l'intervallo di tempo, ad esempio agli ultimi 100 anni, per vedere lì i pcap di esempio.

cd ./VM
vagrant ssh
cd ./VM
vagrant destroy default
cd ./VM
vagrant up
cd ./VM
vagrant halt
cd ./VM
vagrant ssh
sudo systemctl status kibana.service
sudo systemctl status elasticsearch.service
sudo systemctl status logstash.service
Nel progetto è incluso un semplice template di mapping Elasticsearch generato per i protocolli frame,eth,ip,udp,tcp,dhcp.
Per gestire ulteriori protocolli in modo efficiente potrebbe essere necessario aggiornare il template di mapping nel seguente modo:
# 1. Creare un mapping personalizzato, selezionando i protocolli richiesti
tshark -G elastic-mapping --elastic-mapping-filter frame,eth,ip,udp,tcp,dns > ./Kibana/custom_tshark_mapping.json
# 2. Deduplicare e post-elaborare il mapping per adattarlo alla versione corrente di Elasticsearch
ruby ./Public/process_tshark_mapping_json.rb
# 3. Caricare il file nella VM Vagrant
cd VM
vagrant upload ../Kibana/custom_tshark_mapping_deduplicated.json /home/vagrant/tsharkVM/Kibana/custom_tshark_mapping_deduplicated.json
cd ..
# 4. Connettersi alla VM e caricare il template in Elasticsearch
cd VM
vagrant ssh
cd tsharkVM/Kibana
curl -X PUT "localhost:9200/_index_template/packets_template" -H 'Content-Type: application/json' -d@custom_tshark_mapping_deduplicated.json
In alternativa si può utilizzare il mapping dinamico. Vedi il template ./Kibana/template_tshark_mapping_dynamic.json. E considera di impostare il parametro numeric_detection su true/false a seconda dei requisiti di mapping e dei pcap utilizzati. Caricare il template in Elasticsearch in modo simile a quanto descritto sopra.
Il mapping tshark -G elastic-mapping --elastic-mapping-filter potrebbe non essere aggiornato, non segue correttamente le modifiche di Elasticsearch e l'output può essere duplicato. È necessaria la configurazione manuale e la post-elaborazione del template di mapping.
Il programma è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA.
La licenza predefinita dei codici sorgente forniti in questo progetto è la Apache License v2.0.
simple-NIDS è concesso in licenza AGPLv3 (Free Open Source GNU Affero GPL v3.0).
Inoltre, fai riferimento alle singole licenze e ai termini di utilizzo del software installato (vedi licenze per Wireshark, Elastic e altro).
Un ringraziamento speciale alle persone che hanno aiutato con lo sviluppo di Wireshark o che hanno altrimenti contribuito a questo lavoro:
Il pcap di esempio nella sottocartella ./Traces è stato scaricato da https://wiki.wireshark.org/SampleCaptures
Creato da Martin Kacer
Copyright 2021 H21 lab, Tutti i diritti riservati, https://www.h21lab.com