
Mecanismo de correlação de eventos de segurança para ELK stack
Dsiem é um motor de correlação de eventos de segurança para ELK stack, permitindo que a plataforma seja usada como um sistema SIEM dedicado e completo.
Dsiem fornece correlação no estilo OSSIM para logs/eventos normalizados, realiza consultas a fontes de inteligência de ameaças e informações de vulnerabilidade, e produz alarmes ajustados por risco.

flowchart TB
l1 --> |Normalized Logs/Events| e1
l1 --> |Alarms|e1
l1 --> |Normalized Logs/Events| d1
f1 --> |Logs| l1
s1 --> |Logs| f1
s2 --> |Logs| f1
s3 --> |Logs| f1
d1 --> |Alarms| d2
d2 --> |Alarms| l1
d1 --> |Query| d3
subgraph Elasticsearch
e1[Elasticsearch]
end
subgraph Logstash
l1[Logstash]
end
subgraph Filebeat
f1[Syslog/Filebeat]
end
subgraph Log Sources
s1[IDS]
s2[Firewall]
s3[OS]
end
subgraph Dsiem
d1[Dsiem]
d2[Dsiem-filebeat]
d3[Threat-Intel/Vulnerability-Info-Sources]
end
No diagrama acima:
As fontes de log enviam seus logs para Syslog/Filebeat, que então os envia para o Logstash com um campo identificador único. O Logstash então analisa os logs usando diferentes filtros baseados no tipo da fonte de log, e envia os resultados para o Elasticsearch, tipicamente criando um padrão de índice único para cada tipo de log (ex: suricata-* para logs recebidos do Suricata IDS, ssh-* para logs SSH, etc.).
O Dsiem usa um arquivo de configuração do Logstash de propósito especial para clonar eventos recebidos das fontes de log, logo após o Logstash ter feito a análise. Através do mesmo arquivo de configuração, o novo evento clonado é usado (independentemente do evento original) para coletar campos necessários do Dsiem como Título, IP de Origem, IP de Destino, e assim por diante.
A saída do passo acima é chamada de Evento Normalizado porque representa logs de múltiplas fontes diferentes em um único formato que possui um conjunto de campos comuns. Esses eventos são então enviados para o Dsiem através do plugin de saída HTTP do Logstash, e para o Elasticsearch sob o padrão de nome de índice siem_events-*.
O Dsiem correlaciona eventos normalizados recebidos com base nas regras de diretivas configuradas, realiza consultas de inteligência de ameaças e vulnerabilidades, e então gera um alarme se as condições das regras forem atendidas. O alarme é então escrito em um arquivo de log local, que é coletado por um Filebeat local configurado para enviar seu conteúdo para o Logstash.
Na extremidade do Logstash, há outro arquivo de configuração especial do Dsiem que lê esses alarmes submetidos e os envia para o índice final de alarmes SIEM no Elasticsearch.
O resultado final dos processos acima é que agora podemos monitorar novos alarmes e atualizações em um existente apenas monitorando um único índice do Elasticsearch.
Você pode usar Docker Compose ou os binários de lançamento para instalar o Dsiem. Consulte o Guia de Instalação para detalhes.
Alternativamente, há também um ambiente de demonstração baseado em Docker Compose ou máquina virtual que você pode usar para avaliar toda a integração do Dsiem a partir de uma interface web simples.
A documentação atualmente disponível está localizada aqui.
Por favor, envie relatórios de bugs e problemas abrindo uma nova issue no Github. Informações sensíveis de segurança, como detalhes de um possível bug de segurança, também podem ser enviadas para [email protected]. A chave pública GPG para esse endereço pode ser encontrada aqui.
Contribuições são muito bem-vindas! Envie PR para correções de bugs e testes adicionais, gist para arquivos de configuração do Logstash para analisar eventos de dispositivos, regras de diretivas SIEM, ou um novo plugin de consulta de inteligência de ameaças/vulnerabilidades.
Se você não tiver certeza sobre o que fazer em um assunto específico, sinta-se à vontade para abrir uma issue e discutir primeiro.
O projeto é licenciado sob GPLv3. Os contribuidores não são obrigados a assinar qualquer forma de CAA/CLA ou similar: Consideramos sua aceitação desta cláusula dos termos de serviço do Github como suficiente.