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.

ComponenteFunçãoVersão
WazuhSIEM, XDR e detecção de ameaças4.14.0
DFIR-IRISPlataforma de resposta a incidentes2.4.24
VelociraptorColeta forense e endpoint detection0.75.3
MCP ServersIntegraçã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

RequisitoMínimoRecomendado
Sistema OperacionalUbuntu 22.04 LTSUbuntu 24.04 LTS
CPU4 vCPUs8 vCPUs
RAM8 GB16 GB
Disco50 GB SSD100 GB SSD
RedeIP público fixoIP público + domínio
Endpoints estimadosAté 10 agentsAté 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
ℹ️ Nota sobre DNS

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

Arquitetura

O diagrama completo da arquitetura está disponível como arquivo HTML interativo:

🏗️ Abrir Diagrama de Arquitetura Interativo

A 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.

1
Instalação do Servidor Base
IRIS + Velociraptor + Wazuh + Nginx + Firewall + SSL
📦
install-dfir-mesi.sh
Script principal — instala toda a infraestrutura base

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.

EtapaDescrição
ValidaçãoVerifica se está rodando como root, coleta IP e domínio
SistemaAtualiza pacotes, instala dependências, configura kernel
DockerInstala Docker Engine e Docker Compose
IRISClona repositório, configura banco de dados, inicia containers
VelociraptorBaixa binário, gera configuração, cria container customizado
WazuhClona repositório oficial, gera certificados, inicia stack
NginxConfigura reverse proxy para cada serviço
SSLLet's Encrypt (produção) ou Self-signed (desenvolvimento)
FirewallUFW 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:

Credenciais

Ao final da instalação, as credenciais são exibidas na tela e salvas em:

/opt/dfir-mesi/config.env
⚠️ Segurança

Troque todas as senhas padrão após o primeiro acesso. O arquivo config.env tem permissão 600 (somente root).

2
Instalação dos Agents Windows
Wazuh Agent + Sysmon + Velociraptor Client + Active Response
📦
dfir-mesi-windows-agents.ps1
Script PowerShell v9.5 — instala todos os agentes em endpoints Windows

Componentes instalados

ComponenteVersãoFunção
Wazuh Agent4.14.0Coleta de logs, detecção de ameaças, comunicação com SIEM
Sysmon15.15Monitoramento detalhado de processos (SwiftOnSecurity config)
Velociraptor ClientlatestColeta forense remota via VQL
Active Responsev2.5Resposta 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âmetroObrigatórioDescrição
-WazuhManagerSimIP ou hostname do servidor Wazuh
-VelociraptorServerSimHostname do servidor Velociraptor
-AgentNameNãoNome do agente (padrão: nome do computador)
-AgentGroupNãoGrupo 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.

ℹ️ Verificação de conectividade

O script testa automaticamente a conectividade TCP na porta 1514 (Wazuh) antes de prosseguir. Certifique-se de que o firewall permite a conexão.

3
Instalação dos MCP Servers
Wazuh MCP + Velociraptor MCP + IRIS MCP → Claude AI
📦
install-mcp-servers.sh
Instala os 3 MCP Servers em Docker com Nginx e SSL

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 ServerFonteFerramentasPorta
Wazuh MCPGenSecAI (open-source)24 ferramentas3002
Velociraptor MCPSOCFortress (open-source)20 ferramentas3001
IRIS MCPDFIR-MESI (custom, FastMCP)35 funções + KPIs3003

Pré-requisitos específicos

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

⚠️ Header Host (Nginx)

O FastMCP rejeita conexões com hostname externo. O Nginx é configurado com proxy_set_header Host localhost:PORT para contornar essa restrição.

4
Customização e Automação
Regras de ransomware + Integrações Wazuh→IRIS/Velociraptor + Webhook
📦
configure-dfir-mesi.sh
Menu interativo para aplicar customizações ao ambiente

Integrações disponíveis

⚠️ Pré-requisito: Agentes instalados nos endpoints

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
ℹ️ Repositórios privados

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

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)
⚠️ Troque as senhas imediatamente

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

FaseTarefas
1 — Detecção e Validação Inicial01. Segurança Operacional
02. Escopo via Wazuh
2 — Inteligência de Ameaças03. IrisRansomwareLive
04. Análise de TTPs
3 — Coleta e Análise Forense05. Coleta Memória (Velociraptor)
06. Coleta Logs/Artefatos
07. Triagem
08. Análise de Memória
09. Hunting Velociraptor
4 — Contenção e Erradicação10. Contenção
11. Erradicação
5 — Recuperação12. Recuperação e Restauração
6 — Pós-Incidente13. 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:

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:

ArtefatoDescriçãoTempo estimado
Windows.Triage.TargetsLogs 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.HighValueMemoryDump 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:

Wazuh alerta ≥12 custom-velociraptor.py automação Velociraptor coleta forense IRIS evidências Slack notificação

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.

ℹ️ Uso com Claude AI

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

Configuração

Edite o arquivo de configuração do Claude Desktop:

SistemaCaminho
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

PerguntaMCP
"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.

🔒
dfir-mesi
Repositório principal: scripts de instalação, wiki e documentação
🔒
iris-mcp-server
IRIS MCP Server custom — server.py, docker-compose.yml, INSTALL.md, .env.example — 35 funções + KPIs
🔒
dfir-mesi-rules
Regras XML de detecção de ransomware para Wazuh (39 regras)
🔒
dfir-mesi-integrations
Integrações: custom-iris.py, custom-velociraptor.py, assets-webhook-service.py

Repositórios externos (open-source)

🌐
github.com/gensecaihq/Wazuh-MCP-Server
Wazuh MCP Server — GenSecAI (24 ferramentas)
🌐
github.com/socfortress/velociraptor-mcp-server
Velociraptor MCP Server — SOCFortress (20 ferramentas)
🌐
github.com/wazuh/wazuh
Wazuh — Plataforma SIEM, XDR e segurança de endpoints
🌐
github.com/Velocidex/velociraptor
Velociraptor — Coleta forense e monitoramento de endpoints
🌐
github.com/dfir-iris/iris-web
DFIR-IRIS — Plataforma de resposta a incidentes (v2.4.24)

🔧 Troubleshooting

Problemas comuns

ProblemaCausaSolução
421 Invalid Host (MCP)FastMCP rejeita hostname externoVerificar proxy_set_header Host localhost:PORT no Nginx
502 Bad GatewayContainer não rodandodocker ps + docker compose up -d
IRIS: password auth failedSenha PostgreSQL inconsistenteVerificar DB_PASS e POSTGRES_PASSWORD no .env do IRIS
SSE timeoutNginx com buffer ativoVerificar proxy_buffering off e proxy_read_timeout 86400s
Velociraptor: access deniedCertificado SSL auto-assinadoConfigurar proxy_ssl_verify off no Nginx
Wazuh Agent não registraPorta 1514 bloqueadaVerificar 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

Documentação das ferramentas

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.