
Análise Forense com ELK Stack no Docker: Monitorando alterações na distro Rocky Linux 9
A análise forense digital em sistemas modernos exige ferramentas robustas para coletar, processar e visualizar grandes volumes de dados. O ELK Stack (Elasticsearch, Logstash e Kibana) é uma solução poderosa para monitorar e analisar logs e eventos em tempo real. Neste artigo, vamos explorar como configurar o ELK Stack no Docker em um sistema Rocky Linux 9 e utilizá-lo para identificar alterações suspeitas, como arquivos criados, deletados, modificações em diretórios e logs adulterados.
1. Introdução ao cenário
Imagine um servidor Rocky Linux 9 que está apresentando comportamentos anômalos, como alto uso de recursos, arquivos desconhecidos ou logs inconsistentes. O objetivo é utilizar o ELK Stack para:
-
Coletar logs do sistema e eventos de auditoria.
-
Identificar arquivos criados, modificados ou excluídos.
-
Monitorar alterações em diretórios críticos.
-
Visualizar e correlacionar eventos em tempo real.
2. Configuração do Docker no Rocky Linux 9
Antes de instalar o ELK Stack, é necessário configurar o Docker no Rocky Linux 9.
2.1. Instalação do Docker
Execute os seguintes comandos para instalar o Docker:
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker
2.2. Instalação do Docker Compose
O Docker Compose facilita a orquestração de contêineres. Instale-o com:
sudo dnf install docker-compose-plugin
3. Configuração do ELK Stack no Docker
O ELK Stack pode ser implantado rapidamente usando um arquivo docker-compose.yml
.
3.1. Criando o Arquivo docker-compose.yml
Crie um arquivo chamado docker-compose.yml
com o seguinte conteúdo:
version: '3.7' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.7.0 container_name: elasticsearch environment: - discovery.type=single-node - ES_JAVA_OPTS=-Xms512m -Xmx512m ports: - "9200:9200" networks: - elk logstash: image: docker.elastic.co/logstash/logstash:8.7.0 container_name: logstash volumes: - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf ports: - "5044:5044" networks: - elk depends_on: - elasticsearch kibana: image: docker.elastic.co/kibana/kibana:8.7.0 container_name: kibana ports: - "5601:5601" networks: - elk depends_on: - elasticsearch networks: elk: driver: bridge
3.2. Configurando o Logstash
Crie um arquivo logstash.conf
para definir o pipeline de coleta de logs:
input { file { path => "/var/log/audit/audit.log" start_position => "beginning" sincedb_path => "/dev/null" } } filter { if [path] =~ "audit" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{DATA:host}
%{DATA:program}(?:\[%{POSINT:pid}\])?: %{GREEDYDATA:message}" } } } } output { elasticsearch { hosts => ["elasticsearch:9200"] index => "audit-logs-%{+YYYY.MM.dd}" } }
3.3. Iniciando o ELK Stack
Execute o seguinte comando para iniciar os contêineres:
sudo docker-compose up -d
4. Coletando e analisando logs de auditoria
O Rocky Linux 9 utiliza o auditd
para registrar eventos do sistema. Vamos configurar o auditd
para monitorar alterações em arquivos e diretórios.
4.1. Configurando regras de auditoria
Adicione regras para monitorar alterações em diretórios críticos:
sudo auditctl -w /etc -p wa -k etc_changes sudo auditctl -w /var/log -p wa -k log_changes sudo auditctl -w /home -p wa -k home_changes
-
-w
: Define o diretório a ser monitorado. -
-p wa
: Monitora escritas (w
) e alterações de atributos (a
). -
-k
: Define uma chave para identificar a regra.
4.2. Visualizando Logs no Kibana
Acesse o Kibana em http://<IP_DO_SERVIDOR>:5601
e crie um índice para os logs de auditoria (audit-logs-*
). Use o Discover para visualizar e filtrar eventos, como:
-
Arquivos criados ou modificados.
-
Exclusões de arquivos.
-
Acessos não autorizados.
5. Identificando alterações suspeitas
Com o ELK Stack configurado, é possível identificar padrões de atividade maliciosa.
5.1. Arquivos Criados ou Modificados
Filtre eventos com a chave etc_changes
para identificar alterações em /etc
:
event.action: “created” OR event.action: “modified”
5.2. Exclusões de arquivos
Busque eventos de exclusão em /var/log
:
event.action: “deleted” AND key: “log_changes”
5.3. Acessos não autorizados
Identifique tentativas de acesso a diretórios restritos:
6. Visualizando dados no Kibana
O Kibana permite criar dashboards interativos para monitorar atividades em tempo real. Por exemplo:
-
Gráficos de eventos por hora.
-
Mapa de calor de diretórios monitorados.
-
Alertas para atividades suspeitas.
Conclusão
O ELK Stack é uma solução poderosa para análise forense, permitindo a coleta, processamento e visualização de logs em tempo real. Ao configurar o ELK Stack no Docker e integrá-lo com o auditd
do Rocky Linux 9, é possível monitorar alterações suspeitas, como arquivos criados, modificados ou excluídos, e identificar atividades maliciosas de forma eficiente.
No entanto, a análise forense exige uma abordagem abrangente: valide sempre os resultados com múltiplas ferramentas e documente todas as evidências para garantir a integridade do processo.
Referências Bibliográficas
-
Elastic. (2023). Official Elasticsearch Documentation. Disponível em: https://www.elastic.co/guide.
-
Nikkel, B. (2021). Practical Linux Forensics: A Guide for Digital Investigators. No Starch Press.
-
Rocky Linux Documentation. (2023). Official Rocky Linux Documentation. Disponível em: https://docs.rockylinux.org.
Estas obras fornecem bases técnicas aprofundadas sobre o ELK Stack, análise forense e administração de sistemas Rocky Linux, complementando os exemplos práticos deste artigo.