
tshark + ELK аналитическая виртуальная машина
Более новое приложение tshark-opensearch теперь доступно.
Вы можете найти его в репозитории https://github.com/h21-lab/apps-collection-info. 👉 Получить доступ
Этот проект создает виртуальную машину, которая может использоваться для анализа вывода tshark -T ek (ndjson). Виртуальное устройство собирается с помощью vagrant, который создает Debian с предустановленным и предварительно настроенным стеком ELK.
После запуска VM процесс прост:
tshark -T ek / ndjson) отправляются на VM через TCP/17570http://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
Откройте Main Dashboard и увеличьте временное окно, например, до последних 100 лет, чтобы увидеть там примеры pcaps.

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
В проект включен простой шаблон маппинга Elasticsearch, сгенерированный для протоколов frame,eth,ip,udp,tcp,dhcp.
Для эффективной обработки дополнительных протоколов может потребоваться обновить шаблон маппинга следующим образом:
# 1. Создайте пользовательский маппинг, выбрав необходимые протоколы
tshark -G elastic-mapping --elastic-mapping-filter frame,eth,ip,udp,tcp,dns > ./Kibana/custom_tshark_mapping.json
# 2. Удалите дубликаты и обработайте маппинг для соответствия текущей версии Elasticsearch
ruby ./Public/process_tshark_mapping_json.rb
# 3. Загрузите файл на vagrant VM
cd VM
vagrant upload ../Kibana/custom_tshark_mapping_deduplicated.json /home/vagrant/tsharkVM/Kibana/custom_tshark_mapping_deduplicated.json
cd ..
# 4. Подключитесь к VM и загрузите шаблон в 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
Альтернативой может быть использование динамического маппинга. Смотрите шаблон ./Kibana/template_tshark_mapping_dynamic.json. Также рассмотрите возможность установки параметра numeric_detection в true/false в зависимости от требований маппинга и используемых pcap. Загрузите шаблон в Elasticsearch аналогично описанному выше способу.
Маппинг tshark -G elastic-mapping --elastic-mapping-filter может быть устаревшим, он не следует должным образом за изменениями Elasticsearch, и вывод может быть дублированным. Требуется ручная настройка и постобработка шаблона маппинга.
Программа распространяется в надежде, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Лицензия по умолчанию для исходных кодов, предоставленных в этом проекте, — Apache License v2.0.
simple-NIDS лицензирован по AGPLv3 (Free Open Source GNU Affero GPL v3.0).
Кроме того, обращайтесь к отдельным лицензиям и условиям использования установленного программного обеспечения (см. лицензии для Wireshark, Elastic и других).
Особая благодарность людям, которые помогали в разработке Wireshark или иным образом внесли вклад в эту работу:
Пример pcap в подпапке ./Traces был загружен с https://wiki.wireshark.org/SampleCaptures
Создано Martin Kacer
Copyright 2021 H21 lab, Все права защищены, https://www.h21lab.com