
Une implémentation du FAIR CRQ Framework
Une plateforme locale open-source pour l'évaluation quantitative des risques de cybersécurité utilisant le framework FAIR v3.1 (Factor Analysis of Information Risk). Modélisez les menaces, exécutez des simulations Monte Carlo, mesurez l'efficacité des contrôles et gérez des portefeuilles de risques — le tout depuis votre navigateur, sans compte cloud requis.
LM = PLM + SLEF × SLEM

| Exigence | Version | Remarques |
|---|---|---|
| Node.js | 22.5 ou ultérieure | Utilise le module node:sqlite intégré introduit dans v22.5 |
| npm | fourni avec Node.js | Aucune installation séparée nécessaire |
brew install nodenvm install 22 && nvm use 22winget install OpenJS.NodeJS# Clone the repository
git clone https://github.com/iiamit/CyberQRM.git
cd CyberQRM
# Run the installer (checks Node version, installs all dependencies, downloads ATT&CK data)
chmod +x install.sh
./install.sh
REM Clone the repository (Git Bash, PowerShell, or any terminal)
git clone https://github.com/iiamit/CyberQRM.git
cd CyberQRM
REM Run the installer (double-click or run from a terminal)
install.bat
L'installateur fera :
npm racine, backend et frontendbackend/data/ pour la base de données SQLite./start.sh
Cela ouvre deux fenêtres de terminal (ou processus en arrière-plan sur Linux sans interface graphique) — une pour l'API backend et une pour le serveur de développement frontend — puis ouvre votre navigateur automatiquement.
start.bat
Deux fenêtres de console s'ouvriront (backend et frontend). Votre navigateur s'ouvrira automatiquement après 5 secondes.
Une fois lancée, accédez à l'application aux adresses suivantes :
| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| API Backend | http://localhost:3001 |
Si le port 5173 est déjà utilisé, Vite basculera automatiquement sur le port 5174.
CyberQRM implémente la méthodologie FAIR v3.1 en quatre étapes :
Valorisation multi-base des actifs — activez l'option « Avancé : utiliser plusieurs bases de valorisation » à l'étape Valeur de l'actif pour définir des distributions distinctes pour chaque dimension de valeur. La simulation additionne toutes les bases par itération.
Pertes primaires et secondaires — activez l'option « Avancé : diviser en pertes primaires et secondaires » à l'étape Impact des pertes pour modéliser les coûts directs primaires et les coûts secondaires imposés par les parties prenantes (amendes, atteinte à la réputation, perte concurrentielle) avec une probabilité conditionnelle SLEF. Tous les montants sont en USD absolus.
MITRE ATT&CK — aux étapes TEF et Vulnérabilité, ouvrez le navigateur de techniques pour filtrer par tactique, rechercher par nom ou ID, et sélectionner les techniques pertinentes. La plateforme suggère des plages TEF basées sur les niveaux de prévalence réels (provenant des observations Red Canary / CTID) et des plages de vulnérabilité basées sur le nombre de mesures d'atténuation ATT&CK que vous avez mises en œuvre.
La base de données est créée automatiquement lors de la première exécution (backend/data/cyberqrm.db). Toutes les données restent sur votre machine locale.
CyberQRM/
├── backend/ # Express.js + TypeScript API
│ ├── src/
│ │ ├── index.ts # Server entry point (port 3001)
│ │ ├── db/ # SQLite adapter, schema & migrations
│ │ ├── routes/ # REST endpoints (scenarios, controls, portfolios, ATT&CK)
│ │ ├── services/ # Business logic, Monte Carlo engine & ATT&CK service
│ │ ├── data/ # attack-prevalence.json (bundled TEF tier data)
│ │ └── middleware/ # Error handling
│ └── data/ # SQLite database + ATT&CK STIX file (auto-created)
├── frontend/ # React 18 + Vite + TypeScript
│ └── src/
│ ├── pages/ # Dashboard, Scenarios, Controls, Portfolios
│ ├── components/ # Charts, forms, UI primitives
│ │ └── forms/ # ScenarioForm, AttackTechniqueSelector,
│ │ # ValuationBasisList, PrimarySecondaryLossForm
│ ├── store/ # Zustand state management
│ └── utils/ # API client, formatting, report generator
├── shared/ # Shared TypeScript types (FAIR data model)
├── install.sh # macOS/Linux installer
├── install.bat # Windows installer
├── start.sh # macOS/Linux launcher
└── start.bat # Windows launcher
Pour travailler sur le code avec rechargement à chaud :
# Install dependencies (if not done already)
./install.sh # macOS/Linux
install.bat # Windows
# Start both services with live reload
npm run dev # from the project root (requires npm-run-all)
# Or start them individually
npm run dev:backend
npm run dev:frontend
Pour construire un bundle de production :
npm run build
# Then run the compiled backend:
cd backend && npm start
# Serve frontend/dist with any static file server
Les contributions sont les bienvenues. Veuillez d'abord ouvrir une issue pour discuter des changements importants.
git checkout -b feature/your-feature)MIT — voir LICENSE pour les détails.
Ce projet implémente l'ontologie FAIR™ (Factor Analysis of Information Risk). FAIR est une marque déposée du FAIR Institute.
ATT&CK® est une marque déposée de The MITRE Corporation. Le contenu ATT&CK est utilisé conformément aux Conditions d'utilisation d'ATT&CK.
| Vérification de santé | http://localhost:3001/api/health |
| Couche | Technologie |
|---|
| Framework frontend | React 18, TypeScript, Vite |
| Style | Tailwind CSS |
| Gestion d'état | Zustand, TanStack React Query |
| Graphiques | Recharts |
| Framework backend | Express.js, TypeScript |
| Base de données | SQLite via node:sqlite intégré à Node.js |
| Validation | Zod |
| Renseignement sur les menaces | MITRE ATT&CK Enterprise (STIX 2.1) |