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: 6.587 ]

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

Exploração de Falhas em Servidores FTP

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

Montando Servidor de Internet com Ubuntu Server

Algoritmos em Shell Script

Shell Script nosso de cada dia - Episódio 3

Leitura recomendada

Instalação do Freeradius com suporte a EAP-TLS e PEAP-TTLS MSCHAPv2 no Ubuntu

Entendendo SQL Injection

Criando um repositório criptografado de dados com Cryptsetup (dm-crypt) sem (re)particionamento do HD

Alta disponibilidade com CARP

Scanners de portas e de vulnerabilidades

  
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