
Uma implementação do Framework FAIR CRQ
Uma plataforma local e de código aberto para avaliação quantitativa de riscos cibernéticos usando o framework FAIR v3.1 (Factor Analysis of Information Risk). Modele ameaças, execute simulações de Monte Carlo, meça a eficácia de controles e gerencie portfólios de risco — tudo do seu navegador, sem necessidade de conta em nuvem.
LM = PLM + SLEF × SLEM

| Requisito | Versão | Observações |
|---|---|---|
| Node.js | 22.5 ou superior | Usa o módulo node:sqlite incorporado introduzido na v22.5 |
| npm | vem com Node.js | Nenhuma instalação separada necessária |
brew install nodenvm install 22 && nvm use 22winget install OpenJS.NodeJS# Clone o repositório
git clone https://github.com/iiamit/CyberQRM.git
cd CyberQRM
# Execute o instalador (verifica a versão do Node, instala todas as dependências, baixa os dados do ATT&CK)
chmod +x install.sh
./install.sh
REM Clone o repositório (Git Bash, PowerShell ou qualquer terminal)
git clone https://github.com/iiamit/CyberQRM.git
cd CyberQRM
REM Execute o instalador (clique duas vezes ou execute a partir de um terminal)
install.bat
O instalador irá:
npm da raiz, backend e frontendbackend/data/ para a base de dados SQLite./start.sh
Isso abre duas janelas de terminal (ou processos em segundo plano no Linux sem área de trabalho) — uma para a API backend e uma para o servidor de desenvolvimento frontend — e então abre seu navegador automaticamente.
start.bat
Duas janelas de console serão abertas (backend e frontend). Seu navegador será aberto automaticamente após 5 segundos.
Uma vez em execução, acesse o aplicativo em:
| Serviço | URL |
|---|---|
| Frontend | http://localhost:5173 |
| API Backend | http://localhost:3001 |
Se a porta 5173 já estiver em uso, o Vite alternará automaticamente para 5174.
O CyberQRM implementa a metodologia FAIR v3.1 em quatro etapas:
Valoração Multibase de Ativos — ative "Avançado: usar múltiplas bases de valoração" na etapa de Valor do Ativo para definir distribuições separadas para cada dimensão de valor. A simulação soma todas as bases por iteração.
Perda Primária e Secundária — ative "Avançado: dividir em Perda Primária e Secundária" na etapa de Impacto da Perda para modelar custos diretos primários e custos secundários impostos por partes interessadas (multas, danos reputacionais, perda competitiva) com uma probabilidade condicional de SLEF. Todos os valores estão em USD absolutos.
MITRE ATT&CK — nas etapas de TEF e Vulnerabilidade, abra o navegador de técnicas para filtrar por tática, pesquisar por nome ou ID e selecionar técnicas relevantes. A plataforma sugere faixas de TEF com base em níveis de prevalência do mundo real (provenientes de avistamentos da Red Canary / CTID) e faixas de vulnerabilidade com base em quantas mitigações do ATT&CK você implementou.
A base de dados é criada automaticamente na primeira execução (backend/data/cyberqrm.db). Todos os dados permanecem na sua máquina local.
CyberQRM/
├── backend/ # Express.js + TypeScript API
│ ├── src/
│ │ ├── index.ts # Ponto de entrada do servidor (porta 3001)
│ │ ├── db/ # Adaptador SQLite, esquema e migrações
│ │ ├── routes/ # Endpoints REST (cenários, controles, portfólios, ATT&CK)
│ │ ├── services/ # Lógica de negócios, mecanismo Monte Carlo e serviço ATT&CK
│ │ ├── data/ # attack-prevalence.json (dados de níveis TEF empacotados)
│ │ └── middleware/ # Tratamento de erros
│ └── data/ # Base de dados SQLite + arquivo ATT&CK STIX (criado automaticamente)
├── frontend/ # React 18 + Vite + TypeScript
│ └── src/
│ ├── pages/ # Dashboard, Cenários, Controles, Portfólios
│ ├── components/ # Gráficos, formulários, primitivos de UI
│ │ └── forms/ # ScenarioForm, AttackTechniqueSelector,
│ │ # ValuationBasisList, PrimarySecondaryLossForm
│ ├── store/ # Gerenciamento de estado com Zustand
│ └── utils/ # Cliente API, formatação, gerador de relatórios
├── shared/ # Tipos TypeScript compartilhados (modelo de dados FAIR)
├── install.sh # Instalador para macOS/Linux
├── install.bat # Instalador para Windows
├── start.sh # Lançador para macOS/Linux
└── start.bat # Lançador para Windows
Para trabalhar no código com recarregamento automático:
# Instalar dependências (se ainda não o fez)
./install.sh # macOS/Linux
install.bat # Windows
# Iniciar ambos os serviços com recarregamento automático
npm run dev # a partir da raiz do projeto (requer npm-run-all)
# Ou iniciá-los individualmente
npm run dev:backend
npm run dev:frontend
Para construir um pacote de produção:
npm run build
# Então execute o backend compilado:
cd backend && npm start
# Sirva frontend/dist com qualquer servidor de arquivos estáticos
Contribuições são bem-vindas. Por favor, abra uma issue primeiro para discutir mudanças significativas.
git checkout -b feature/sua-funcionalidade)MIT — veja LICENSE para detalhes.
Este projeto implementa a ontologia FAIR™ (Factor Analysis of Information Risk). FAIR é uma marca registrada do FAIR Institute.
ATT&CK® é uma marca registrada da The MITRE Corporation. O conteúdo do ATT&CK é usado de acordo com os Termos de Uso do ATT&CK.
| Verificação de saúde | http://localhost:3001/api/health |
| Camada | Tecnologia |
|---|
| Framework frontend | React 18, TypeScript, Vite |
| Estilização | Tailwind CSS |
| Gerenciamento de estado | Zustand, TanStack React Query |
| Gráficos | Recharts |
| Framework backend | Express.js, TypeScript |
| Base de dados | SQLite via módulo node:sqlite embutido do Node.js |
| Validação | Zod |
| Inteligência de ameaças | MITRE ATT&CK Enterprise (STIX 2.1) |