
DShield Sensor Log Collection with ELK
Este é um fork e uma atualização significativa da publicação inicial no site do ISC Storm Center por Scott Jensen como um artigo BACS e dos scripts publicados no Github.
https://github.com/fkadriver/Dshield-ELK
https://isc.sans.edu/diary/DShield+Sensor+Monitoring+with+a+Docker+ELK+Stack+Guest+Diary/30118
Esta é uma boa referência sobre como usar o DShield-SIEM para análise: https://isc.sans.edu/diary/30962/
Isso fornece uma visão geral de como é feita a coleta de logs com o sensor DShield.
https://github.com/bruneaug/DShield-SIEM/blob/main/Troubleshooting/DShield-SIEM-Flow.png
Este docker é construído sob medida para ser usado com o DShield Honeypot para coletar e analisar os logs e reunir os dados, facilitando a busca para fins de pesquisa. A instalação sugerida é instalar o sensor DShield em uma Raspberry Pi usando o Raspbian OS ou em um sistema executando Ubuntu 24.04 LTS, seja na sua rede ou na nuvem de sua escolha.
Nota: Isto deve ser instalado em um servidor separado, conforme as instruções abaixo.
Nota: Para atualizar os componentes do servidor ELK, siga estes passos:
https://github.com/bruneaug/DShield-SIEM/blob/main/README.md#download-github-update
Instale o docker como usuário ($):````
sudo apt-get install ca-certificates curl gnupg network-manager txt2html
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Note: You may need to take the next line, remove the backlash () and put everythin in a single line in Notepad to run this echo.
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt upgrade
sudo reboot (if update were applied)
sudo apt-get install -y jq docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin pip
sudo systemctl enable docker
sudo systemctl start docker.service
Confirme que o serviço docker está em execução<br>````
sudo systemctl status docker.service
Adicione o seguinte nome de servidor ELK es01 kibana fleet-server heartbeat logstash filebeat filebeat01
ao /etc/hosts após o endereço IP e o nome do servidor:
````
sudo vi /etc/hosts
Adicione isto ao /etc/hosts depois dos endereços IP do servidor ELK<br>
127.0.0.1 sensor es01 ...<br>
192.168.25.80 sensor es01 ...<br>````
es01 kibana fleet-server heartbeat logstash filebeat filebeat01
Edite o arquivo sysctl.conf:
````
sudo vi /etc/sysctl.conf
Adicione o seguinte na parte inferior do arquivo:<br>````
vm.max_map_count=262144
Adicione e salve. Isto é para Elasticsearch ao usar Docker.
sudo iptables -nL

# Configurar e instalar DShield ELK
Usando a conta de usuário ($), execute os seguintes comandos:<br>````
git clone https://github.com/bruneaug/DShield-SIEM.git
mkdir scripts
mv DShield-SIEM/AddOnScripts/*.sh scripts
chmod 754 scripts/*.sh
cd ~/DShield-SIEM
Nota: Antes da instalação, você pode editar o arquivo .env (ls -la para vê-lo) para fazer quaisquer alterações desejadas.
- A senha padrão atual para o elastic é student
Os Limites de Memória no .env são a quantidade máxima de memória que o docker alocará para cada um dos contêineres ELK.
Por padrão, 3GB para o Elasticsearch, mas pode ser expandido se você tiver recursos
Edite o arquivo .env e configure para a sua própria Stack ELK
````
vi .env
- Atualize as seguintes variáveis no arquivo **.env** para corresponder às informações de DNS do seu servidor ELK, hostname, IP e senha padrão do Elasticsearch, se quiser alterá-la: <br>
- HOSTNAME="ubuntu"
- DNS_SERVER="9.9.9.9"
- IPADDRESS="192.168.25.231"
- ELASTIC_PASSWORD=student
- ES_MEM = Elasticsearch -> 4g, KB_MEM = Kibana -> 2g
- Se quiser alterar as informações padrão dos nameservers e a localização da sua rede privada local para o endereço de destino (ou seja, mapeamento do sensor DShield - atualmente definido para **Ottawa, Canadá**), edite o seguinte diretório para os arquivos antes de carregar o docker:<br>````
cd logstash/pipeline
Edite o heartbeat.yml para alterar o IP do sensor (denominado PI) para o IP do seu próprio sensor. O heartbeat do Kibana verifica o status dos seus serviços e determina se eles estão disponíveis.
Atualize este IP e hostname para refletir o seu sensor.
Nota: Você pode copiar e adicionar as mesmas 5 linhas se tiver mais de um sensor que deseja monitorar
Isso pode ser visualizado em Observability -> Uptime Monitors

Esta linha é o endereço IP do sensor. Se ele não receber uma resposta ao conectar via TCP 12222, será marcado como inativo na interface.
Isso é iniciado pelo servidor ELK para verificar a resposta do sensor.
Atualize esta linha: hosts: ["192.168.25.165"]
````
vi ~/DShield-SIEM/heartbeat/heartbeat.yml
O script **change_perms.sh** configurará alguns dos arquivos antes de iniciar a instalação dos componentes docker.<br>
O script também atualizará o endereço IP usado na consulta do dashboard para o IP da sua stack ELK.<br>````
~/scripts/change_perms.sh
~/scripts/get_researchers.sh
Agora execute docker compose para construir as aplicações do servidor ELK.
Isso irá construir: Kibana, Elasticsearch, elastic-agent, Logstash e carregar os parsers do Cowrie, arquivos de configuração e dashboard.
````
sudo docker compose up -d
Instalação Concluída