
tshark + ELK 분석 가상 머신
보다 최신 애플리케이션인 tshark-opensearch가 이제 사용 가능합니다.
해당 애플리케이션은 https://github.com/h21-lab/apps-collection-info 저장소에서 찾을 수 있습니다. 👉 액세스 권한 얻기
이 프로젝트는 tshark -T ek(ndjson) 출력 분석에 사용할 수 있는 가상 머신을 구축합니다. 가상 어플라이언스는 vagrant를 사용하여 구축되며, Debian에 ELK 스택이 사전 설치 및 구성되어 있습니다.
VM이 실행된 후의 과정은 간단합니다:
tshark -T ek 출력 / ndjson)이 TCP/17570을 통해 VM으로 전송됩니다.http://127.0.0.1:15601/app/kibana#/dashboards에서 접근할 수 있습니다.git 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
메인 대시보드를 열고 시간 창을 예를 들어 지난 100년으로 늘리면 샘플 pcap을 볼 수 있습니다.

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
프로젝트에는 frame,eth,ip,udp,tcp,dhcp 프로토콜에 대해 생성된 간단한 Elasticsearch 매핑 템플릿이 포함되어 있습니다.
추가 프로토콜을 효율적으로 처리하려면 다음과 같이 매핑 템플릿을 업데이트해야 할 수 있습니다:
# 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
대안으로 동적 매핑을 사용할 수 있습니다. ./Kibana/template_tshark_mapping_dynamic.json 템플릿을 참조하세요. 또한 매핑 요구 사항과 사용된 pcap에 따라 numeric_detection 매개변수를 true/false로 설정하는 것을 고려하세요. 위에서 설명한 것과 유사한 방식으로 템플릿을 Elasticsearch에 업로드하세요.
tshark -G elastic-mapping --elastic-mapping-filter 매핑은 오래되었을 수 있으며, Elasticsearch 변경 사항을 제대로 따르지 않아 출력이 중복될 수 있습니다. 매핑 템플릿의 수동 구성 및 후처리가 필요합니다.
프로그램은 유용할 것이라는 기대 하에 배포되지만, 어떠한 보증도 하지 않습니다.
이 프로젝트 내에서 제공되는 소스 코드의 기본 라이선스는 Apache License v2.0입니다.
simple-NIDS는 AGPLv3(무료 오픈 소스 GNU Affero GPL v3.0)에 따라 라이선스가 부여됩니다.
또한 설치된 소프트웨어의 개별 라이선스 및 사용 약관을 참조하십시오(Wireshark, Elastic 등의 라이선스 참조).
Wireshark 개발을 도왔거나 이 작업에 기여한 분들께 특별히 감사드립니다:
./Traces 하위 폴더의 예제 pcap은 https://wiki.wireshark.org/SampleCaptures에서 다운로드되었습니다.
만든이: Martin Kacer
Copyright 2021 H21 lab, All right reserved, https://www.h21lab.com