
Eine Implementierung des FAIR CRQ Frameworks
Eine lokale Open-Source-Plattform für quantitative Cybersicherheits-Risikobewertung unter Verwendung des FAIR v3.1 (Factor Analysis of Information Risk)-Frameworks. Modellieren Sie Bedrohungen, führen Sie Monte-Carlo-Simulationen durch, messen Sie die Wirksamkeit von Kontrollen und verwalten Sie Risikoportfolios – alles in Ihrem Browser, ohne Cloud-Konto erforderlich.
LM = PLM + SLEF × SLEM

| Anforderung | Version | Hinweise |
|---|---|---|
| Node.js | 22.5 oder höher | Verwendet das in v22.5 eingeführte integrierte node:sqlite-Modul |
| npm | wird mit Node.js ausgeliefert | Keine separate Installation erforderlich |
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
Der Installer wird:
npm für root, Backend und Frontend installieren.backend/data/ für die SQLite-Datenbank erstellen../start.sh
Dies öffnet zwei Terminalfenster (oder Hintergrundprozesse unter Linux ohne Desktop) – eines für die Backend-API und eines für den Frontend-Entwicklungsserver – und öffnet dann automatisch Ihren Browser.
start.bat
Zwei Konsolenfenster werden geöffnet (Backend und Frontend). Ihr Browser wird nach 5 Sekunden automatisch geöffnet.
Sobald die Anwendung läuft, greifen Sie unter folgenden URLs darauf zu:
| Dienst | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:3001 |
| Health check | http://localhost:3001/api/health |
Falls Port 5173 bereits belegt ist, wechselt Vite automatisch zu 5174.
CyberQRM implementiert die FAIR v3.1-Methodik in vier Schritten:
Multi-Basis-Bewertung von Vermögenswerten – schalten Sie "Erweitert: Mehrere Bewertungsbasen verwenden" im Asset Value-Schritt um, um separate Verteilungen für jede Wertdimension zu definieren. Die Simulation summiert alle Basen pro Iteration.
Primär- und Sekundärverlust – schalten Sie "Erweitert: In Primär- und Sekundärverlust aufteilen" im Loss Impact-Schritt um, um primäre direkte Kosten und sekundäre, von Stakeholdern auferlegte Kosten (Bußgelder, Reputationsschaden, Wettbewerbsverlust) mit einer bedingten SLEF-Wahrscheinlichkeit zu modellieren. Alle Beträge sind in absoluten USD.
MITRE ATT&CK – öffnen Sie den Technik-Browser auf den Schritten TEF und Vulnerability, um nach Taktik zu filtern, nach Name oder ID zu suchen und relevante Techniken auszuwählen. Die Plattform schlägt TEF-Bereiche basierend auf realen Verbreitungsstufen (entnommen aus Red Canary/CTID-Sichtungen) und Vulnerability-Bereiche basierend auf der Anzahl der von Ihnen implementierten ATT&CK-Gegenmaßnahmen vor.
Die Datenbank wird beim ersten Start automatisch erstellt (backend/data/cyberqrm.db). Alle Daten verbleiben auf Ihrem lokalen Rechner.
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
| Schicht | Technologie |
|---|---|
| Frontend-Framework | React 18, TypeScript, Vite |
| Styling | Tailwind CSS |
| Zustandsverwaltung | Zustand, TanStack React Query |
| Diagramme | Recharts |
| Backend-Framework | Express.js, TypeScript |
| Datenbank | SQLite via Node.js built-in node:sqlite |
| Validierung | Zod |
| Bedrohungsinformationen | MITRE ATT&CK Enterprise (STIX 2.1) |
Um am Code mit Hot-Reloading zu arbeiten:
# 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
Um ein Produktions-Bundle zu erstellen:
npm run build
# Then run the compiled backend:
cd backend && npm start
# Serve frontend/dist with any static file server
Beiträge sind willkommen. Bitte eröffnen Sie zuerst ein Issue, um wesentliche Änderungen zu besprechen.
git checkout -b feature/your-feature)MIT – Einzelheiten siehe LICENSE.
Dieses Projekt implementiert die FAIR™ (Factor Analysis of Information Risk)-Ontologie. FAIR ist eine Marke des FAIR Institute.
ATT&CK® ist eine eingetragene Marke der MITRE Corporation. ATT&CK-Inhalte werden unter den ATT&CK-Nutzungsbedingungen verwendet.