Linguagem principal do backend e da camada de processamento dos eventos.
SentinelOps
Um Mini SIEM desenvolvido para estudar, na prática, coleta de logs, processamento de eventos, APIs REST, detecção de ameaças e armazenamento de eventos de segurança.
$ sentinelops start
[INFO] Log collector started
[INFO] API listening on :8080
[INFO] Redis connection OK
[INFO] PostgreSQL connection OK
[DETECTION] BRUTE_FORCE
[ALERT] security event detected
✓ SentinelOps running
Aprender Cybersecurity construindo software.
O SentinelOps nasceu como um projeto prático para unir duas áreas que estudo: desenvolvimento backend e Cybersecurity.
A ideia é construir uma pequena plataforma capaz de receber eventos de segurança, processá-los, aplicar regras de detecção e gerar alertas e incidentes.
O projeto também serve como laboratório para estudar arquitetura de APIs, persistência, cache, processamento de logs, testes automatizados e conceitos de Security Engineering.
Dos logs ao evento de segurança.
O SentinelOps trabalha com uma pipeline que transforma logs de infraestrutura em eventos estruturados que podem ser analisados pelo backend.
Tecnologias utilizadas.
Construção da API REST, serviços, validações, tratamento de exceções e configuração da aplicação.
Coleta, leitura e conversão de logs Apache para eventos estruturados enviados à API.
Banco relacional utilizado para persistência dos dados de segurança.
Utilizado para controle de cooldown de alertas e gerenciamento de estado temporário.
Ambiente importante para o estudo de logs, infraestrutura, segurança e operação do projeto.
Eventos, alertas e incidentes.
O backend recebe eventos estruturados e pode aplicar regras de detecção para identificar comportamentos potencialmente suspeitos.
Security Events
Eventos possuem informações como timestamp, endereço IP de origem, método HTTP, caminho, código de status e origem do evento.
Brute Force Detection
O projeto possui lógica para identificar eventos relacionados a tentativas de brute force e gerar alertas de segurança.
Alert Cooldown
O Redis é utilizado para controlar o intervalo entre alertas semelhantes e evitar geração excessiva de notificações.
Incidents
Eventos relacionados podem ser agrupados em incidentes, permitindo organizar ocorrências de segurança.
Como um evento percorre o sistema.
1. Coleta
O cliente Python monitora e processa logs no formato utilizado pelo Apache.
2. Conversão
As informações do log são convertidas para uma estrutura de evento compreensível pela API.
3. Ingestão
O evento é enviado para a API REST desenvolvida com Spring Boot.
4. Validação
O backend valida e normaliza os dados recebidos antes do processamento.
5. Detecção
As regras de segurança analisam o evento e podem identificar comportamentos suspeitos.
6. Persistência
Dados relevantes são armazenados no PostgreSQL, enquanto o Redis auxilia no controle temporário.
Backend orientado a eventos de segurança.
A API fornece endpoints para receber e consultar informações relacionadas aos eventos e incidentes processados pelo sistema.
Mais do que uma aplicação.
O SentinelOps foi construído como laboratório para transformar conceitos de desenvolvimento e segurança em código.
Backend
Serviços, DTOs, validação, exceções, persistência, testes e arquitetura de aplicação.
Cybersecurity
Logs, eventos, detecção de brute force, alertas, incidentes e conceitos de monitoramento.
Linux
Estudo de logs e conceitos relacionados à operação e monitoramento de sistemas.
Software Engineering
Organização de código, testes automatizados, separação de responsabilidades e evolução incremental.
Veja o código do projeto.
O desenvolvimento do SentinelOps está disponível no GitHub, incluindo sua evolução e implementação.