Elastic SIEM - Instalação e Configuração do LAB (Parte I)

SIEM significa Security Information and Event Management. As ferramentas SIEM geralmente fornecem dois resultados principais: relatórios e alertas. Uma ferramenta de apoio às equipes de segurança da informação em processos de auditoria, monitoramento e respostas a incidentes. Neste artigo, é abordado o uso do Elastic Stack para uso da funcionalidade de SIEM.

[ Hits: 5.965 ]

Por: Wagner Souza em 20/07/2022 | Blog: https://medium.com/@souzaw


A Stack Elastic - Instalação e Configuração



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! :)

Página anterior    

Páginas do artigo
   1. Introdução
   2. A Stack Elastic - Instalação e Configuração
Outros artigos deste autor

Atualização das provas LPIC-1, 304 e Essentials

Teste de Intrusão com Metasploit

Exploração de Falhas em Servidores FTP

Algoritmos em Shell Script

Montando Servidor de Internet com Ubuntu Server

Leitura recomendada

Segurança em Software de Código Aberto

Snort avançado: Projetando um perímetro seguro

Segurança com Iptables

Criptografia quântica

Como saber se houve uma invasão

  
Comentários
[1] Comentário enviado por maurixnovatrento em 23/10/2022 - 11:12h


Bom artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10

[2] Comentário enviado por FranklinSD em 03/11/2022 - 06:36h

Thanks for the information, I will try to figure it out for more. Keep sharing such informative post keep suggesting such post.


https://www.tellpopeyes.onl/

[3] Comentário enviado por ElmiroDuarte em 06/12/2022 - 03:49h


Muito interessante o artigo, alguém já implementou a pilha ELK em docker e/ou kubernets ?

[4] Comentário enviado por ricardoolonca em 13/12/2022 - 18:18h

Parabenizo as pessoas que gastam tempo fazendo artigos. Isso é louvável. Só acho que, ao invés de criar um script e ensinar a executá-lo, sugiro fazer passo-a-passo explicando o que cada comando do script está fazendo. Isso por que conheço muita gente que pega receitas de bolo como esse script e, quando algum erro aparece, não sabem como investigar a causa. O objetivo do artigo deve ser a troca de conhecimento, muito embora o script seja uma mão na roda.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts