DFIR-MESI
Digital Forensics & Incident Response — Guia Completo de Instalação e Configuração
O DFIR-MESI é uma plataforma integrada de resposta a incidentes cibernéticos de ransomware que combina três ferramentas de segurança com detecção comportamental pré-criptografia, resposta automatizada e análise forense assistida por Inteligência Artificial em linguagem natural.
| Componente | Função | Versão |
|---|---|---|
| Wazuh | SIEM, XDR e detecção de ameaças | 4.14.0 |
| DFIR-IRIS | Plataforma de resposta a incidentes | 2.4.24 |
| Velociraptor | Coleta forense e endpoint detection | 0.75.3 |
| MCP Servers | Integração com Claude AI (linguagem natural) | 3 servidores |
A instalação é organizada em 4 etapas sequenciais. Cada etapa possui um script dedicado que automatiza o processo.
Pré-requisitos
Servidor
| Requisito | Mínimo | Recomendado |
|---|---|---|
| Sistema Operacional | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS |
| CPU | 4 vCPUs | 8 vCPUs |
| RAM | 8 GB | 16 GB |
| Disco | 50 GB SSD | 100 GB SSD |
| Rede | IP público fixo | IP público + domínio |
| Endpoints estimados | Até 10 agents | Até 20 agents |
DNS
Configure os seguintes registros A apontando para o IP do servidor:
iris.seudominio.com → IP_DO_SERVIDOR
velociraptor.seudominio.com → IP_DO_SERVIDOR
wazuh.seudominio.com → IP_DO_SERVIDOR
mcp-wazuh.seudominio.com → IP_DO_SERVIDOR
mcp-velociraptor.seudominio.com → IP_DO_SERVIDOR
mcp-iris.seudominio.com → IP_DO_SERVIDOR
Os 3 primeiros registros são para as interfaces web dos serviços. Os 3 últimos (mcp-*) são para os MCP Servers e só são necessários na Etapa 3.
Endpoints Windows
- Windows 10/11 ou Windows Server 2016+
- PowerShell 5.1+
- .NET Framework 4.0+ (para compilação do Active Response)
- Acesso de Administrador
Arquitetura
O diagrama completo da arquitetura está disponível como arquivo HTML interativo:
🏗️ Abrir Diagrama de Arquitetura InterativoA infraestrutura é organizada em camadas: Firewall (UFW) → Nginx Reverse Proxy → Docker Containers → Endpoints. Todos os serviços rodam em containers Docker isolados, com o Nginx fazendo terminação SSL e proxy reverso. Os MCP Servers permitem interação com os serviços via Claude AI em linguagem natural.
O que o script faz
O script automatiza completamente a instalação dos três serviços principais, configuração do Docker, Nginx com SSL e Firewall. O processo leva aproximadamente 15-20 minutos.
| Etapa | Descrição |
|---|---|
| Validação | Verifica se está rodando como root, coleta IP e domínio |
| Sistema | Atualiza pacotes, instala dependências, configura kernel |
| Docker | Instala Docker Engine e Docker Compose |
| IRIS | Clona repositório, configura banco de dados, inicia containers |
| Velociraptor | Baixa binário, gera configuração, cria container customizado |
| Wazuh | Clona repositório oficial, gera certificados, inicia stack |
| Nginx | Configura reverse proxy para cada serviço |
| SSL | Let's Encrypt (produção) ou Self-signed (desenvolvimento) |
| Firewall | UFW com regras para SSH, HTTP/S, Wazuh e Syslog |
Execução
chmod +x install-dfir-mesi.sh
sudo ./install-dfir-mesi.sh
Interação durante a instalação
O script solicitará as seguintes informações:
- Domínio principal — ex: exemplo.com.br
- IP público — detectado automaticamente, confirmação manual
- Subdomínios — padrão: iris, velociraptor, wazuh
- Email Let's Encrypt — para emissão dos certificados SSL
- Modo — Produção (Let's Encrypt) ou Desenvolvimento (Self-signed)
Credenciais
Ao final da instalação, as credenciais são exibidas na tela e salvas em:
/opt/dfir-mesi/config.env
Troque todas as senhas padrão após o primeiro acesso. O arquivo config.env tem permissão 600 (somente root).
Componentes instalados
| Componente | Versão | Função |
|---|---|---|
| Wazuh Agent | 4.14.0 | Coleta de logs, detecção de ameaças, comunicação com SIEM |
| Sysmon | 15.15 | Monitoramento detalhado de processos (SwiftOnSecurity config) |
| Velociraptor Client | latest | Coleta forense remota via VQL |
| Active Response | v2.5 | Resposta automatizada a ransomware (EXE wrapper + suspensão de processos) |
Execução
# PowerShell como Administrador
# Opção 1: Com parâmetros
.\dfir-mesi-windows-agents.ps1 -WazuhManager "SEU_IP_SERVIDOR" -VelociraptorServer "velociraptor.seudominio.com"
# Opção 2: Interativo (solicita os dados)
.\dfir-mesi-windows-agents.ps1
Parâmetros
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
-WazuhManager | Sim | IP ou hostname do servidor Wazuh |
-VelociraptorServer | Sim | Hostname do servidor Velociraptor |
-AgentName | Não | Nome do agente (padrão: nome do computador) |
-AgentGroup | Não | Grupo do agente (padrão: windows) |
Active Response
O script instala um sistema de resposta automática a ransomware que inclui um wrapper em C# compilado como EXE (resolve problema de pipe stdin do Wazuh), capacidade de suspensão de processos via kernel32.dll, whitelist de processos protegidos (explorer, powershell, etc.), criação automática de VSS snapshots e alertas desktop para todos os usuários conectados.
O script testa automaticamente a conectividade TCP na porta 1514 (Wazuh) antes de prosseguir. Certifique-se de que o firewall permite a conexão.
Os MCP Servers (Model Context Protocol) permitem que o Claude AI interaja diretamente com os serviços de segurança em linguagem natural. Cada servidor expõe as funcionalidades da ferramenta correspondente via protocolo SSE (Server-Sent Events).
Fontes dos MCP Servers
| MCP Server | Fonte | Ferramentas | Porta |
|---|---|---|---|
| Wazuh MCP | GenSecAI (open-source) | 24 ferramentas | 3002 |
| Velociraptor MCP | SOCFortress (open-source) | 20 ferramentas | 3001 |
| IRIS MCP | DFIR-MESI (custom, FastMCP) | 35 funções + KPIs | 3003 |
Pré-requisitos específicos
- Etapa 1 concluída (serviços base rodando)
- DNS configurado para os subdomínios
mcp-* - API Key do IRIS (gerada via conta de serviço em IRIS → Advanced → Access control)
Execução
chmod +x install-mcp-servers.sh
sudo ./install-mcp-servers.sh
O que o script faz
Para cada MCP Server, o script cria um container Docker com Python 3.13, configura Nginx com headers SSE otimizados, obtém certificados SSL Let's Encrypt e configura comunicação interna com os serviços correspondentes.
Particularidades técnicas
- Wazuh MCP: usa wrapper Python que importa o pacote
wazuh-mcp-serverda GenSecAI - Velociraptor MCP: inclui patch para timeout do
collect_artifacte geraapi.config.yamlautomaticamente - IRIS MCP: servidor custom com 35 funções, KPIs (MTTD, MTTA, MTTC, MTTR), conecta via rede Docker
iris_frontend
O FastMCP rejeita conexões com hostname externo. O Nginx é configurado com proxy_set_header Host localhost:PORT para contornar essa restrição.
Integrações disponíveis
As integrações abaixo dependem dos agentes Wazuh e Velociraptor estarem instalados e operacionais nos endpoints Windows (Etapa 2). Sem os agentes, o Wazuh não recebe os eventos de telemetria necessários para disparar alertas e o Velociraptor não consegue executar as coletas forenses remotas. Certifique-se de que a Etapa 2 foi concluída com sucesso antes de configurar estas integrações.
Integração 1: Regras de Detecção de Ransomware
Instala 39 regras customizadas de detecção no Wazuh Manager, focadas em indicadores comportamentais pré-criptografia. As regras cobrem deleção de Shadow Copies, execução de ferramentas de criptografia, modificações em massa de arquivos e uso de ferramentas comuns de ransomware.
Integração 2: Wazuh → IRIS
Configura o script custom-iris.py dentro do container Wazuh Manager para criar Cases automaticamente no IRIS quando alertas de nível ≥12 são detectados.
Integração 3: Wazuh → Velociraptor → IRIS
Configura o script custom-velociraptor.py dentro do container Wazuh Manager. Quando um alerta de ransomware é detectado, o script dispara automaticamente a coleta forense no Velociraptor (Windows.Triage.Targets + Windows.Triage.HighValueMemory), registra as evidências no Case do IRIS e envia notificação via Slack com todas as regras que deram match.
Integração 4: Webhook Velociraptor → IRIS
Implanta o serviço assets-webhook-service.py (porta 5555) que sincroniza automaticamente os clients do Velociraptor como assets nos Cases do IRIS quando um case é criado.
Execução
chmod +x configure-dfir-mesi.sh
sudo ./configure-dfir-mesi.sh
# 5 = instalar todas as integrações
# 6 = verificar status
As regras, scripts de integração e código do webhook são referenciados a partir de repositórios Git privados. O script guia o processo de download e instalação.
Configuração do Slack (notificações)
A Integração 3 (Wazuh → Velociraptor → IRIS) envia notificações automáticas via Slack quando um incidente de ransomware é detectado. Para isso, é necessário criar um Incoming Webhook no Slack e configurar a URL no script.
Passo a passo
- Acesse
https://api.slack.com/appse clique em Create New App → From scratch - Dê um nome (ex:
IRIS Alerts) e selecione o workspace - No menu lateral, clique em Incoming Webhooks e ative o toggle
- Clique em Add New Webhook to Workspace e selecione o canal de destino (ex:
#iris-alerts) - Copie a Webhook URL gerada (formato:
https://hooks.slack.com/services/T.../B.../xxx)
Configurar no script
Edite a variável SLACK_WEBHOOK_URL no ficheiro custom-velociraptor.py dentro do container Wazuh Manager:
SLACK_WEBHOOK_URL = "https://hooks.slack.com/services/TXXXXXXXX/BXXXXXXXX/xxxxxxxxxxxxxxxx"
Testar a conexão
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"🔔 Teste DFIR-MESI → Slack OK!"}' \
https://hooks.slack.com/services/TXXXXXXXX/BXXXXXXXX/xxxxxxxxxxxxxxxx
🔑 Primeiro Acesso
Após a instalação, acesse os serviços pelos subdomínios configurados. As credenciais iniciais estão em /opt/dfir-mesi/config.env.
DFIR-IRIS
URL: https://iris.seudominio.com
User: administrator
Pass: (ver config.env)
Após o login, crie uma conta de serviço em Advanced → Access control → Add user (marque Service Account). A User API Key gerada é necessária para a Etapa 3 (MCP) e Etapa 4 (integrações).
Velociraptor
URL: https://velociraptor.seudominio.com
User: admin
Pass: (ver config.env)
Wazuh Dashboard
URL: https://wazuh.seudominio.com
User: admin
Pass: (ver config.env)
Todas as senhas geradas automaticamente devem ser alteradas no primeiro acesso.
📖 Playbook de Resposta a Ransomware
O DFIR-MESI inclui um Playbook de Resposta a Incidentes de Ransomware organizado em 6 fases e 14 tarefas. Quando o script custom-iris.py cria um Case automaticamente no IRIS (alertas nível ≥12), as tarefas e diretórios de notas do playbook são criados junto com o case, prontos para guiar o analista durante toda a resposta ao incidente.
Fases e Tarefas
| Fase | Tarefas |
|---|---|
| 1 — Detecção e Validação Inicial | 01. Segurança Operacional 02. Escopo via Wazuh |
| 2 — Inteligência de Ameaças | 03. IrisRansomwareLive 04. Análise de TTPs |
| 3 — Coleta e Análise Forense | 05. Coleta Memória (Velociraptor) 06. Coleta Logs/Artefatos 07. Triagem 08. Análise de Memória 09. Hunting Velociraptor |
| 4 — Contenção e Erradicação | 10. Contenção 11. Erradicação |
| 5 — Recuperação | 12. Recuperação e Restauração |
| 6 — Pós-Incidente | 13. Comunicação e Compliance 14. Lições Aprendidas |
Criação automática
Cada tarefa do playbook inclui descrição detalhada, checklist operacional, queries MCP sugeridas para o Claude AI e referências aos frameworks de compliance. As 14 tarefas e os diretórios de notas correspondentes a cada fase são criados automaticamente quando o custom-iris.py dispara a abertura de um Case no IRIS.
Frameworks de referência
O playbook é mapeado para os seguintes frameworks, com citações diretas em cada tarefa:
- NIST SP 800-61r3 / CSF 2.0 (Govern → Recover)
- CISA #StopRansomware Guide
- CERT.BR — Guia de Ransomware
- ENISA Threat Landscape 2024
- FIRST CSIRT Framework v2.1
- NoMoreRansom Project
Coletas forenses automatizadas
Quando o Wazuh detecta um alerta de ransomware, o script custom-velociraptor.py dispara automaticamente duas coletas forenses no endpoint afetado via Velociraptor:
| Artefato | Descrição | Tempo estimado |
|---|---|---|
Windows.Triage.Targets | Logs de eventos, Registry hives, Prefetch, Browser history, MFT, USN Journal, Scheduled Tasks, Startup items, SRUM, Amcache e outros artefatos forenses essenciais | ~5 min |
Windows.Triage.HighValueMemory | Dump de memória de processos de alto valor: utilitários de arquivo (WinRAR, 7-zip), ferramentas de exfiltração (rclone, mega), consoles (cmd, powershell) e outros processos relevantes | ~5 min |
O fluxo completo é automatizado de ponta a ponta:
As evidências coletadas são registradas automaticamente no Case do IRIS com a descrição do artefato, e uma notificação Slack é enviada com todas as regras que foram disparadas, permitindo ao analista iniciar a análise forense imediatamente.
Cada tarefa do playbook sugere queries MCP que podem ser executadas diretamente no Claude Desktop. Por exemplo, na Tarefa 05 (Coleta Memória): "Colete o artefato Windows.Memory.Acquisition do host [HOSTNAME]" — o Claude executa via MCP do Velociraptor.
🤖 Configuração do Claude Desktop
Para interagir com os serviços via linguagem natural, configure o Claude Desktop Client com os MCP Servers.
Pré-requisitos
- Claude Desktop instalado
- Node.js 18+ instalado
Configuração
Edite o arquivo de configuração do Claude Desktop:
| Sistema | Caminho |
|---|---|
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/claude/claude_desktop_config.json |
Adicione o seguinte conteúdo:
{
"mcpServers": {
"wazuh": {
"command": "npx",
"args": ["-y", "mcp-remote",
"https://mcp-wazuh.seudominio.com/sse"]
},
"velociraptor": {
"command": "npx",
"args": ["-y", "mcp-remote",
"https://mcp-velociraptor.seudominio.com/sse"]
},
"iris": {
"command": "npx",
"args": ["-y", "mcp-remote",
"https://mcp-iris.seudominio.com/sse"]
}
}
}
Reinicie o Claude Desktop após salvar. Os MCPs aparecerão como ferramentas disponíveis no chat.
Exemplos de uso
| Pergunta | MCP |
|---|---|
| "Liste todos os agentes Wazuh ativos" | Wazuh |
| "Crie um case no IRIS para o incidente de ransomware" | IRIS |
| "Qual o MTTR médio dos últimos 30 dias?" | IRIS |
| "Liste os clientes conectados ao Velociraptor" | Velociraptor |
🧪 Testes de Validação
Verificar containers
sudo docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
Testar endpoints MCP (SSE)
# Deve retornar "event: endpoint" seguido de um session_id
timeout 3 curl -s --http1.1 -H "Accept: text/event-stream" \
https://mcp-wazuh.seudominio.com/sse | head -3
timeout 3 curl -s --http1.1 -H "Accept: text/event-stream" \
https://mcp-velociraptor.seudominio.com/sse | head -3
timeout 3 curl -s --http1.1 -H "Accept: text/event-stream" \
https://mcp-iris.seudominio.com/sse | head -3
Testar detecção de ransomware
No endpoint Windows com os agentes instalados:
# PowerShell como Administrador — dispara alerta no Wazuh
vssadmin delete shadows /all /quiet
Script de verificação completa
sudo ./configure-dfir-mesi.sh
# Selecione opção 5 (Verificar status)
📦 Repositórios
O código-fonte do projeto está organizado nos seguintes repositórios privados. Solicite acesso ao administrador do projeto.
Repositórios externos (open-source)
🔧 Troubleshooting
Problemas comuns
| Problema | Causa | Solução |
|---|---|---|
| 421 Invalid Host (MCP) | FastMCP rejeita hostname externo | Verificar proxy_set_header Host localhost:PORT no Nginx |
| 502 Bad Gateway | Container não rodando | docker ps + docker compose up -d |
| IRIS: password auth failed | Senha PostgreSQL inconsistente | Verificar DB_PASS e POSTGRES_PASSWORD no .env do IRIS |
| SSE timeout | Nginx com buffer ativo | Verificar proxy_buffering off e proxy_read_timeout 86400s |
| Velociraptor: access denied | Certificado SSL auto-assinado | Configurar proxy_ssl_verify off no Nginx |
| Wazuh Agent não registra | Porta 1514 bloqueada | Verificar firewall: ufw status |
Comandos úteis
# Status de todos os containers
docker ps --format "table {{.Names}}\t{{.Status}}"
# Logs de um serviço específico
docker logs iriswebapp_app --tail=50
docker logs velociraptor --tail=50
docker logs wazuh-wazuh.manager-1 --tail=50
# Logs dos MCP Servers
docker logs wazuh-mcp-wrapper --tail=20
docker logs velociraptor-mcp-server --tail=20
docker logs iris-mcp-server --tail=20
# Reiniciar um serviço
cd /opt/dfir-mesi/iris-web && docker compose restart
cd /opt/dfir-mesi/velociraptor && docker compose restart
cd /opt/dfir-mesi/wazuh && docker compose restart
# Verificar Nginx / Firewall / SSL
nginx -t
ufw status verbose
certbot certificates
📚 Referências
Frameworks de Compliance
- NIST SP 800-61r3 — Computer Security Incident Handling Guide
- CISA #StopRansomware — Ransomware Guide
- CERT.BR — Centro de Estudos, Resposta e Tratamento de Incidentes
- ENISA Threat Landscape — European Union Agency for Cybersecurity
- ANPD/CNPD — Autoridade Nacional de Proteção de Dados (Brasil)
Documentação das ferramentas
- Wazuh —
https://documentation.wazuh.com - DFIR-IRIS —
https://docs.dfir-iris.org - Velociraptor —
https://docs.velociraptor.app - Model Context Protocol —
https://modelcontextprotocol.io - FastMCP —
https://github.com/jlowin/fastmcp
Projeto DFIR-MESI
Desenvolvido como projeto acadêmico e operacional para automação de resposta a incidentes com integração de IA. Para mais informações, consulte a documentação acadêmica disponível nos repositórios do projeto.