
Machine virtuelle d'analyse tshark + ELK
Une application plus récente tshark-opensearch est désormais disponible.
Vous pouvez la trouver dans le dépôt https://github.com/h21-lab/apps-collection-info. 👉 Obtenir l'accès
Ce projet construit une machine virtuelle qui peut être utilisée pour l'analyse de la sortie tshark -T ek (ndjson). L'appliance virtuelle est construite avec vagrant, qui crée une Debian avec une pile ELK préinstallée et préconfigurée.
Une fois la VM démarrée, le processus est simple :
tshark -T ek output / ndjson) sont envoyés via TCP/17570 à la 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
# copy your pcaps into ./Trace
# upload the pcaps (with filenames)
bash upload_pcaps_with_filenames.sh
# or use vagrant scp to copy the ndjson files into /home/vagrant/input
# or upload the pcaps (without filenames)
bash upload_pcaps.sh
# or use tshark directly towards 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
Ouvrez le tableau de bord principal et augmentez la fenêtre temporelle, par exemple aux 100 dernières années, pour y voir les pcaps d'exemple.

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
Dans le projet est inclus un modèle de mappage Elasticsearch simple généré pour les protocoles frame,eth,ip,udp,tcp,dhcp.
Pour gérer efficacement des protocoles supplémentaires, il peut être nécessaire de mettre à jour le modèle de mappage de la manière suivante :
# 1. Create custom mapping, by selecting required protocols
tshark -G elastic-mapping --elastic-mapping-filter frame,eth,ip,udp,tcp,dns > ./Kibana/custom_tshark_mapping.json
# 2. Deduplicate and post-process the mapping to fit current Elasticsearch version
ruby ./Public/process_tshark_mapping_json.rb
# 3. Upload file to vagrant VM
cd VM
vagrant upload ../Kibana/custom_tshark_mapping_deduplicated.json /home/vagrant/tsharkVM/Kibana/custom_tshark_mapping_deduplicated.json
cd ..
# 4. Connect to VM and upload template in the 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
Une alternative peut être d'utiliser le mappage dynamique. Voir le modèle ./Kibana/template_tshark_mapping_dynamic.json. Et envisagez de définir le paramètre numeric_detection sur true/false selon les exigences de mappage et les pcaps utilisés. Téléversez le modèle dans Elasticsearch de manière similaire à celle décrite ci-dessus.
tshark -G elastic-mapping --elastic-mapping-filter mapping pourrait être obsolète, il ne suit pas correctement les changements d'Elasticsearch et la sortie peut être dupliquée. La configuration manuelle et le post-traitement du modèle de mappage sont nécessaires.
Le programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE.
La licence par défaut des codes sources fournis dans ce projet est la licence Apache v2.0.
simple-NIDS est sous licence AGPLv3 (GNU Affero GPL v3.0 Open Source libre).
De plus, référez-vous aux licences individuelles et aux conditions d'utilisation des logiciels installés (voir les licences pour Wireshark, Elastic et autres).
Remerciements particuliers aux personnes qui ont aidé au développement de Wireshark ou ont autrement contribué à ce travail :
Le pcap d'exemple dans le sous-dossier ./Traces a été téléchargé depuis https://wiki.wireshark.org/SampleCaptures
Créé par Martin Kacer
Copyright 2021 H21 lab, Tous droits réservés, https://www.h21lab.com