
tshark + máquina virtual de análise ELK
Uma aplicação mais recente tshark-opensearch está agora disponível.
Você pode encontrá-la no repositório https://github.com/h21-lab/apps-collection-info. 👉 Obter Acesso
Este projeto constrói uma máquina virtual que pode ser usada para análise da saída tshark -T ek (ndjson).
O aparelho virtual é construído usando Vagrant, que cria um Debian com o stack ELK pré-instalado e pré-configurado.
Depois que a VM estiver ativa, o processo é simples:
tshark -T ek / ndjson) são enviados via TCP/17570 para a 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
# copie seus pcaps para ./Trace
# envie os pcaps (com nomes de arquivo)
bash upload_pcaps_with_filenames.sh
# ou use vagrant scp para copiar os arquivos ndjson para /home/vagrant/input
# ou envie os pcaps (sem nomes de arquivo)
bash upload_pcaps.sh
# ou use tshark diretamente para 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
Abra o Painel Principal e aumente o intervalo de tempo, por exemplo, para os últimos 100 anos, para ver lá os pcaps de exemplo.

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
No projeto está incluído um template de mapeamento simples do Elasticsearch gerado para os protocolos frame,eth,ip,udp,tcp,dhcp.
Para lidar com protocolos adicionais de forma eficiente, pode ser necessário atualizar o template de mapeamento da seguinte forma:
# 1. Criar um mapeamento personalizado, selecionando os protocolos necessários
tshark -G elastic-mapping --elastic-mapping-filter frame,eth,ip,udp,tcp,dns > ./Kibana/custom_tshark_mapping.json
# 2. Deduplicar e pós-processar o mapeamento para se adequar à versão atual do Elasticsearch
ruby ./Public/process_tshark_mapping_json.rb
# 3. Enviar o arquivo para a VM Vagrant
cd VM
vagrant upload ../Kibana/custom_tshark_mapping_deduplicated.json /home/vagrant/tsharkVM/Kibana/custom_tshark_mapping_deduplicated.json
cd ..
# 4. Conectar-se à VM e enviar o template para o 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
Uma alternativa pode ser usar o mapeamento dinâmico. Veja o template ./Kibana/template_tshark_mapping_dynamic.json. E considere definir o parâmetro numeric_detection como true/false dependendo dos requisitos de mapeamento e dos pcaps usados. Envie o template para o Elasticsearch de forma semelhante à descrita acima.
O mapeamento tshark -G elastic-mapping --elastic-mapping-filter pode estar desatualizado, não acompanhando adequadamente as mudanças do Elasticsearch, e a saída pode ser duplicada. É necessária configuração manual e pós-processamento do template de mapeamento.
O programa é distribuído na esperança de que seja útil, mas SEM NENHUMA GARANTIA.
A licença padrão dos códigos-fonte fornecidos neste projeto é a Apache License v2.0.
O simple-NIDS é licenciado sob a AGPLv3 (Free Open Source GNU Affero GPL v3.0).
Adicionalmente, consulte as licenças individuais e os termos de uso do software instalado (veja licenças para Wireshark, Elastic e outros).
Agradecimentos especiais às pessoas que ajudaram no desenvolvimento do Wireshark ou contribuíram de outra forma para este trabalho:
O pcap de exemplo na subpasta ./Traces foi baixado de https://wiki.wireshark.org/SampleCaptures
Criado por Martin Kacer
Copyright 2021 H21 lab, Todos os direitos reservados, https://www.h21lab.com