A Elastic iniciou suas atividades com o motor de buscas Elasticsearch e em pouco tempo desenvolveu outras ferramentas para visualização (Kibana) e ingestão de dados (Logstash). Com o passar dos anos, trouze os Beats, agentes coletores de dados, proporcionando o termo que define bem a atuação da empresa no mercado de monitoramento, busca e experiência do usuário:
Busca. Observar. Proteger. Abaixo, um resumo dos componentes da Elastic Stack:
- Elasticsearch: é um mecanismo de busca e análise de dados distribuído, gratuito e aberto para todos os tipos de dados, incluindo textuais, numéricos, geoespaciais, estruturados e não estruturados. O Elasticsearch é desenvolvido sobre o Apache Lucene e foi lançado pela primeira vez em 2010 pela Elasticsearch N.V. (agora conhecida como Elastic).
- Logstash: é um pipeline de processamento de dados que faz a ingestão de dados de inúmeras fontes, transforma-os e envia-os para o Elasticsearch.
- Kibana: é uma aplicação gratuita e aberta de front-end que trabalha com o Elastic Stack, fornecendo recursos de busca e visualização de dados indexados no Elasticsearch. Também atua como interface do usuário para monitorar, gerenciar e proteger um cluster do Elastic Stack, além de ser o hub centralizado para soluções integradas. Este foi desenvolvido em 2013.
- Beats: é uma plataforma de agentes coletores de dados com a finalidade única. Eles enviam dados de centenas ou milhares de computadores e sistemas para o Logstash ou o Elasticsearch.

Instalação e Configuração
Feitas as devidas apresentações, seguiremos para a parte prática onde será feita a instalação e configuração básica. A ideia é desenvolver a parte II sobre o mesmo tema já aplicando recursos mais avançados.
Desenvolvi um script para instalação automática do Elasticsearch e Kibana pois são os componentes iniciais para uso do SIEM. Ainda não tenho o costume de utilizar o Logstash, porém a configuração segue a mesma ideia dos outros componentes caso queiram fazer a instalação. O script foi homologado na distribuição Debian 11 mas acredito que deve funcionar no Ubuntu 20.04 e pode ser adaptado para uso no CentOS. A versão do Elasticsearch e Kibana é a 7.17.x.
1 - Crie um arquivo utilizando seu editor de texto preferido e insira as informações abaixo:
#!/bin/bash
apt-get install gnupg2 apt-transport-https curl -y
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list
apt-get update && apt-get install elasticsearch kibana -y
systemctl daemon-reload
systemctl enable elasticsearch.service
# Setting up Elasticsearch
cd /etc/elasticsearch/
cp elasticsearch.yml elasticsearch.yml.bkp
# Replace with your server IP
sed -i 's/#network.host: 192.168.0.1/network.host: 192.168.56.130/g' elasticsearch.yml
sed -i 's/#http.port: 9200/http.port: 9200/g' elasticsearch.yml
sed -i '71s/^/discovery.type: single-node/' elasticsearch.yml
sed -i 's/discovery.type: single-node#/discovery.type: single-node/g' elasticsearch.yml
systemctl restart elasticsearch
# Setting up Kibana
cd /etc/kibana/
cp kibana.yml kibana.yml.bkp
sed -i 's/#server.port: 5601/server.port: 5601/g' kibana.yml
sed -i 's/#server.host: "localhost"/server.host: "192.168.56.130"/g' kibana.yml
sed -i 's/#elasticsearch.hosts: ["http://localhost:9200"]/elasticsearch.hosts: ["http://192.168.56.130:9200"]/g' kibana.yml
systemctl daemon-reload
systemctl enable kibana.service
systemctl restart kibana.serviceh
2 - Salve o arquivo e dê permissão de execução. Em seguida, inicie a instalação da Stack
# chmod +x script
# ./script
Após a instalação, aguarde um pouco pois o Kibana demora um pouco para subir a interface. Aguarde de 5 a 10 minutos. Pode ser mais rápido a depender do seu hardware. Como estou usando um VM, os recursos são mais limitados.
Utilize o comando netstat -nlupt para ver se as portas dos serviços estão UP como visto na figura 2:
Verifique também o status dos serviços:
# systemctl status elasticsearch
# systemctl status kibana
O Elasticsearch usa as portas TCP 9200 e 9300 e o Kibana a porta TCP 5601. Após validar todo o serviço, acesse, pelo navegador, a página do Kibana por meio da URL http://192.168.56.130:5601.
Clique em Explore on my own tendo em vista que ainda não temos nenhum dado para análise no front-end. Após isso, será apresentado os ambientes de trabalho. Clique em Security.
Note que você acessou o Kibana sem precisar utilizar login e senha. Com isso, algumas funcionalidades, como as regras de detecção, não estarão disponíveis. O controle de segurança vem desabilitado por padrão e é preciso aplicar o mecanismo de autenticação e autorização para deixar o ambiente mais seguro. A maioria dos problemas de vazamento de dados, relacionados ao Elasticsearch, é devido a não configuração desse controle de segurança por parte do utilizador da Stack. Nessa primeira faze de configuração do LAB, tenha muito cuidado para não expor o Elastic à internet ou para demais usuários em sua rede local.
No painel do lado esquerdo, clique em Alerts e veja a mensagem de permissão requerida e informações de como resolver essa questão.
Isso não o impede de configurar os Beats, como mostrado em artigos anteriores, e passar a coletar os dados nos sistemas que desejar. No próximo artigo, vamos avançar aplicando os recursos de segurança e trazendo melhorias a nossa Stack. Dúvidas ou sugestões é só postar nos comentários. Até o próximo artigo! :)