# Risiken (CP-RSK) Verwaltet Datenschutz- und KI-Risiken mit Risikobewertung nach Likelihood × Impact. **Prefix:** `CP-RSK` · **Frontend:** `https://macmini:3007/sdk/risks` **Proxy:** `/api/sdk/v1/compliance/[[...path]]` → `backend-compliance:8002/compliance/...` --- ## Features - Risikomatrix (Likelihood × Impact, 5×5) - Kategorisierung nach Datenschutz, KI, Betrieb, Sicherheit - Status-Tracking: open / mitigated / accepted / closed - Restrisiko nach Mitigationsmaßnahmen - Verknüpfung mit Controls --- ## Rechtsgrundlage | Artikel | Bezug | |---------|-------| | Art. 24 DSGVO | Risikobasierter Ansatz | | Art. 32 DSGVO | Risikobewertung für Sicherheitsmaßnahmen | | Art. 35 DSGVO | DSFA bei hohem Risiko | | Art. 9 AI Act | Risikomanagementsystem für KI | --- ## Risikobewertung | Stufe | Likelihood × Impact | Farbe | |-------|---------------------|-------| | `low` | ≤ 4 | Grün | | `medium` | 5–9 | Gelb | | `high` | 10–19 | Orange | | `critical` | ≥ 20 | Rot | --- ## API Endpoints | Methode | Pfad | Beschreibung | |---------|------|--------------| | `GET` | `/risks` | Liste (`category`, `status`, `risk_level`) | | `POST` | `/risks` | Neues Risiko anlegen | | `PUT` | `/risks/{risk_id}` | Risiko aktualisieren (Status, Restrisiko) | | `DELETE` | `/risks/{risk_id}` | Risiko löschen | | `GET` | `/risks/matrix` | Risikomatrix (Likelihood × Impact) | ### Risikomatrix-Response ```http GET /risks/matrix ``` ```json { "matrix": { "3": { "4": ["RISK-001", "RISK-007"] }, "1": { "1": [] } }, "risks": [...] } ``` Die Matrix ist nach `likelihood` (1–5) → `impact` (1–5) → `[risk_ids]` strukturiert. ### Request-Beispiel (POST) ```json { "title": "Unbefugter Datenzugriff durch Dritte", "category": "data_privacy", "likelihood": 3, "impact": 4, "description": "Dritte könnten über unsichere APIs auf personenbezogene Daten zugreifen.", "mitigation": "Einführung von API-Gateway mit Authentifizierung" } ``` --- ## Frontend **URL:** `https://macmini:3007/sdk/risks` Interaktive Risikomatrix als 5×5-Heatmap. Listenansicht mit Status-Badges und Kategorie-Filter. Neue Risiken können über ein Formular angelegt und direkt gemindert werden. --- ## Datenbankschema ```sql compliance_risks ( id UUID PRIMARY KEY, risk_id VARCHAR UNIQUE, -- z.B. "RISK-001" title TEXT, category VARCHAR, -- data_privacy/ai/operational/security description TEXT, likelihood INTEGER CHECK (likelihood BETWEEN 1 AND 5), impact INTEGER CHECK (impact BETWEEN 1 AND 5), inherent_risk VARCHAR, -- low/medium/high/critical residual_risk VARCHAR, status VARCHAR DEFAULT 'open', mitigation TEXT, owner VARCHAR, created_at TIMESTAMP, updated_at TIMESTAMP ) ``` --- ## Tests **Testdatei:** `backend-compliance/tests/test_risk_routes.py` **Anzahl Tests:** 16 (+ 8 aus Paket 2) · **Status:** ✅ alle bestanden (Stand 2026-03-05) ```bash cd backend-compliance python3 -m pytest tests/test_risk_routes.py -v ```