Services: Admin-Compliance, Backend-Compliance, AI-Compliance-SDK, Consent-SDK, Developer-Portal, PCA-Platform, DSMS Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
310 lines
15 KiB
Python
310 lines
15 KiB
Python
"""
|
|
Compliance Risks Seed Data.
|
|
|
|
Contains potential risks for Breakpilot PWA based on regulatory requirements.
|
|
Each risk is assessed with likelihood (1-5) and impact (1-5).
|
|
|
|
Risk Categories:
|
|
- data_breach: Potential data breaches or unauthorized access
|
|
- compliance_gap: Non-compliance with regulations
|
|
- vendor_risk: Third-party/vendor related risks
|
|
- operational: Operational and availability risks
|
|
- legal: Legal and contractual risks
|
|
- reputational: Reputation and trust risks
|
|
"""
|
|
|
|
from typing import List, Dict, Any
|
|
|
|
# Likelihood Scale:
|
|
# 1 = Very Unlikely (< 5% chance per year)
|
|
# 2 = Unlikely (5-20% chance per year)
|
|
# 3 = Possible (20-50% chance per year)
|
|
# 4 = Likely (50-80% chance per year)
|
|
# 5 = Very Likely (> 80% chance per year)
|
|
|
|
# Impact Scale:
|
|
# 1 = Negligible (< 1.000 EUR, no operational impact)
|
|
# 2 = Minor (1.000-10.000 EUR, minor disruption)
|
|
# 3 = Moderate (10.000-100.000 EUR, significant disruption)
|
|
# 4 = Major (100.000-1.000.000 EUR, severe impact)
|
|
# 5 = Critical (> 1.000.000 EUR, existential threat)
|
|
|
|
RISKS_SEED: List[Dict[str, Any]] = [
|
|
# ========================================================================
|
|
# Datenschutz-Risiken (DSGVO)
|
|
# ========================================================================
|
|
{
|
|
"risk_id": "RISK-001",
|
|
"title": "Unbefugter Zugriff auf Schueler-PII",
|
|
"description": "Angreifer oder unbefugte Mitarbeiter koennten auf personenbezogene Daten von Schuelern zugreifen (Namen, Noten, Lernfortschritt). Dies wuerde eine meldepflichtige Datenpanne nach Art. 33 DSGVO darstellen.",
|
|
"category": "data_breach",
|
|
"likelihood": 2,
|
|
"impact": 4,
|
|
"mitigating_controls": ["IAM-001", "IAM-003", "CRYPTO-001", "OPS-001"],
|
|
"owner": "Datenschutzbeauftragter",
|
|
"treatment_plan": "RBAC strikt umsetzen, Mandantentrennung pruefen, regelmaessige Access Reviews durchfuehren, Logging aller Zugriffe auf PII.",
|
|
"related_regulations": ["GDPR", "BDSG"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-002",
|
|
"title": "Fehlende oder ungueltige Einwilligungen",
|
|
"description": "Verarbeitung von Daten ohne gueltige Einwilligung oder Rechtsgrundlage. Insbesondere bei minderjaehrigen Schuelern ist die Einwilligung der Erziehungsberechtigten erforderlich.",
|
|
"category": "compliance_gap",
|
|
"likelihood": 3,
|
|
"impact": 3,
|
|
"mitigating_controls": ["PRIV-001", "PRIV-003", "GOV-001"],
|
|
"owner": "Datenschutzbeauftragter",
|
|
"treatment_plan": "Consent-Management-System implementieren, Altersverifikation, Double-Opt-In fuer Eltern, Dokumentation aller Einwilligungen.",
|
|
"related_regulations": ["GDPR", "TDDDG"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-003",
|
|
"title": "Unvollstaendige Betroffenenrechte-Umsetzung",
|
|
"description": "Art. 15-22 DSGVO Anfragen (Auskunft, Loeschung, Berichtigung, Portabilitaet) werden nicht fristgerecht oder unvollstaendig beantwortet.",
|
|
"category": "compliance_gap",
|
|
"likelihood": 2,
|
|
"impact": 3,
|
|
"mitigating_controls": ["PRIV-004", "GOV-005"],
|
|
"owner": "Datenschutzbeauftragter",
|
|
"treatment_plan": "DSR-Workflow automatisieren, Fristen-Tracking implementieren, Export-Funktion fuer alle Nutzerdaten bereitstellen.",
|
|
"related_regulations": ["GDPR"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-004",
|
|
"title": "PII in Logs und Fehlerberichten",
|
|
"description": "Personenbezogene Daten werden versehentlich in Logs, Fehlerberichten oder Analytics-Daten erfasst und koennten durch Dritte eingesehen werden.",
|
|
"category": "data_breach",
|
|
"likelihood": 3,
|
|
"impact": 2,
|
|
"mitigating_controls": ["PRIV-007", "OPS-001", "SDLC-001"],
|
|
"owner": "Engineering Lead",
|
|
"treatment_plan": "PII-Redactor in allen Logging-Pipelines, SAST-Regeln fuer PII-Leaks, Log-Retention-Policy (max 30 Tage).",
|
|
"related_regulations": ["GDPR"],
|
|
},
|
|
|
|
# ========================================================================
|
|
# KI-Risiken (AI Act)
|
|
# ========================================================================
|
|
{
|
|
"risk_id": "RISK-005",
|
|
"title": "Bias in KI-generierten Lerninhalten",
|
|
"description": "KI-Modelle koennten verzerrte oder diskriminierende Inhalte generieren, die bestimmte Schuelergruppen benachteiligen.",
|
|
"category": "compliance_gap",
|
|
"likelihood": 3,
|
|
"impact": 3,
|
|
"mitigating_controls": ["AI-001", "AI-003", "AI-004"],
|
|
"owner": "AI/ML Lead",
|
|
"treatment_plan": "Bias-Monitoring implementieren, Human-in-the-Loop fuer alle KI-Outputs, regelmaessige Audits der Trainingsdaten.",
|
|
"related_regulations": ["AIACT"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-006",
|
|
"title": "Fehlende KI-Transparenz gegenueber Nutzern",
|
|
"description": "Nutzer werden nicht ausreichend darueber informiert, wenn KI-Systeme Entscheidungen treffen oder Inhalte generieren (Art. 13 AI Act).",
|
|
"category": "compliance_gap",
|
|
"likelihood": 2,
|
|
"impact": 3,
|
|
"mitigating_controls": ["AI-002", "AI-005", "GOV-001"],
|
|
"owner": "Product Owner",
|
|
"treatment_plan": "KI-Disclosure in UI implementieren, Model Cards erstellen, Transparenzbericht veroeffentlichen.",
|
|
"related_regulations": ["AIACT"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-007",
|
|
"title": "Unzureichende KI-Risikobewertung",
|
|
"description": "Bildungs-KI koennte als High-Risk nach AI Act klassifiziert werden, ohne dass die entsprechenden Anforderungen (Art. 9-15) erfuellt sind.",
|
|
"category": "compliance_gap",
|
|
"likelihood": 3,
|
|
"impact": 4,
|
|
"mitigating_controls": ["AI-005", "GOV-001", "AUD-001"],
|
|
"owner": "Compliance Officer",
|
|
"treatment_plan": "AI Act Impact Assessment durchfuehren, Risikoklassifizierung dokumentieren, Konformitaetsbewertung vorbereiten.",
|
|
"related_regulations": ["AIACT"],
|
|
},
|
|
|
|
# ========================================================================
|
|
# Cybersecurity-Risiken (CRA, NIS2)
|
|
# ========================================================================
|
|
{
|
|
"risk_id": "RISK-008",
|
|
"title": "Schwachstellen in Abhaengigkeiten",
|
|
"description": "Bekannte CVEs in Third-Party-Libraries werden nicht zeitnah gepatcht und koennten ausgenutzt werden.",
|
|
"category": "operational",
|
|
"likelihood": 4,
|
|
"impact": 4,
|
|
"mitigating_controls": ["SDLC-002", "SDLC-005", "OPS-004"],
|
|
"owner": "Engineering Lead",
|
|
"treatment_plan": "Trivy/Grype in CI/CD, automatische Dependency-Updates (Dependabot), SLA: Critical CVEs < 7 Tage patchen.",
|
|
"related_regulations": ["CRA", "NIS2"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-009",
|
|
"title": "Fehlende SBOM fuer CRA-Compliance",
|
|
"description": "Ohne Software Bill of Materials (SBOM) koennen Schwachstellen nicht effektiv verfolgt werden. CRA verlangt SBOM ab 2027.",
|
|
"category": "compliance_gap",
|
|
"likelihood": 2,
|
|
"impact": 3,
|
|
"mitigating_controls": ["CRA-001", "SDLC-005"],
|
|
"owner": "Engineering Lead",
|
|
"treatment_plan": "CycloneDX SBOM in CI generieren, SBOM-Repository aufbauen, VEX (Vulnerability Exploitability eXchange) implementieren.",
|
|
"related_regulations": ["CRA"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-010",
|
|
"title": "Unzureichende Incident Response",
|
|
"description": "Bei einem Sicherheitsvorfall fehlen klare Prozesse, was zu verzoegerter Reaktion und erhoehtem Schaden fuehrt.",
|
|
"category": "operational",
|
|
"likelihood": 2,
|
|
"impact": 4,
|
|
"mitigating_controls": ["GOV-005", "OPS-003"],
|
|
"owner": "Security Lead",
|
|
"treatment_plan": "Incident Response Plan dokumentieren, Runbooks erstellen, Tabletop-Uebungen durchfuehren, Notfall-Kontakte pflegen.",
|
|
"related_regulations": ["NIS2", "GDPR"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-011",
|
|
"title": "Secrets in Code oder Logs",
|
|
"description": "API-Keys, Passwoerter oder andere Secrets werden versehentlich ins Repository committed oder in Logs geschrieben.",
|
|
"category": "data_breach",
|
|
"likelihood": 3,
|
|
"impact": 4,
|
|
"mitigating_controls": ["SDLC-003", "CRYPTO-003"],
|
|
"owner": "Engineering Lead",
|
|
"treatment_plan": "Gitleaks/TruffleHog in Pre-Commit-Hooks, Vault fuer Secrets, automatische Key-Rotation.",
|
|
"related_regulations": ["CRA"],
|
|
},
|
|
|
|
# ========================================================================
|
|
# Vendor & Supply Chain Risiken
|
|
# ========================================================================
|
|
{
|
|
"risk_id": "RISK-012",
|
|
"title": "Drittanbieter-Datenweitergabe ohne AVV",
|
|
"description": "Personenbezogene Daten werden an Cloud-Provider oder Subunternehmer uebermittelt, ohne dass ein Auftragsverarbeitungsvertrag (AVV) vorliegt.",
|
|
"category": "vendor_risk",
|
|
"likelihood": 2,
|
|
"impact": 3,
|
|
"mitigating_controls": ["PRIV-005"],
|
|
"owner": "Datenschutzbeauftragter",
|
|
"treatment_plan": "Vendor-Register fuehren, AVVs mit allen Auftragsverarbeitern abschliessen, regelmaessige Ueberpruefung.",
|
|
"related_regulations": ["GDPR"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-013",
|
|
"title": "US-Cloud-Dienste ohne angemessene Garantien",
|
|
"description": "Nutzung von US-Cloud-Diensten ohne EU-US Data Privacy Framework Zertifizierung oder SCCs, was nach Schrems II problematisch ist.",
|
|
"category": "vendor_risk",
|
|
"likelihood": 2,
|
|
"impact": 4,
|
|
"mitigating_controls": ["PRIV-005", "GOV-001"],
|
|
"owner": "Datenschutzbeauftragter",
|
|
"treatment_plan": "Cloud-Provider auf DPF-Zertifizierung pruefen, Transfer Impact Assessment durchfuehren, EU-Hosting bevorzugen.",
|
|
"related_regulations": ["GDPR", "SCC", "DPF"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-014",
|
|
"title": "LLM-Provider Datennutzung fuer Training",
|
|
"description": "LLM-Anbieter (OpenAI, Anthropic) koennten Nutzerdaten zum Training verwenden, was ohne Einwilligung problematisch waere.",
|
|
"category": "vendor_risk",
|
|
"likelihood": 2,
|
|
"impact": 3,
|
|
"mitigating_controls": ["PRIV-005", "AI-001"],
|
|
"owner": "AI/ML Lead",
|
|
"treatment_plan": "Opt-Out fuer Training bei allen LLM-Providern, Enterprise-Agreements mit No-Training-Klausel, PII-Filtering vor API-Calls.",
|
|
"related_regulations": ["GDPR", "AIACT"],
|
|
},
|
|
|
|
# ========================================================================
|
|
# Betriebliche Risiken
|
|
# ========================================================================
|
|
{
|
|
"risk_id": "RISK-015",
|
|
"title": "Datenverlust durch fehlende Backups",
|
|
"description": "Kritische Daten gehen durch Hardware-Ausfall, Ransomware oder menschliches Versagen verloren.",
|
|
"category": "operational",
|
|
"likelihood": 2,
|
|
"impact": 5,
|
|
"mitigating_controls": ["OPS-002"],
|
|
"owner": "DevOps Lead",
|
|
"treatment_plan": "Taegliche automatische Backups, geografisch redundante Speicherung, regelmaessige Restore-Tests (quartalsweise).",
|
|
"related_regulations": ["GDPR"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-016",
|
|
"title": "Verfuegbarkeitsausfall waehrend Unterricht",
|
|
"description": "System ist waehrend des Unterrichts nicht verfuegbar, was den Lehrbetrieb stoert und Vertrauen beschaedigt.",
|
|
"category": "operational",
|
|
"likelihood": 3,
|
|
"impact": 3,
|
|
"mitigating_controls": ["OPS-005"],
|
|
"owner": "DevOps Lead",
|
|
"treatment_plan": "99.9% SLA definieren, Monitoring mit Alerting, Runbooks fuer haeufige Ausfaelle, Status-Page einrichten.",
|
|
"related_regulations": [],
|
|
},
|
|
|
|
# ========================================================================
|
|
# Rechtliche Risiken
|
|
# ========================================================================
|
|
{
|
|
"risk_id": "RISK-017",
|
|
"title": "DSGVO-Bussgeld wegen Compliance-Verstoss",
|
|
"description": "Aufsichtsbehoerde verhaengt Bussgeld wegen Datenschutzverstoss (bis zu 20 Mio EUR oder 4% Jahresumsatz).",
|
|
"category": "legal",
|
|
"likelihood": 1,
|
|
"impact": 5,
|
|
"mitigating_controls": ["PRIV-001", "PRIV-002", "PRIV-006", "GOV-001"],
|
|
"owner": "Geschaeftsfuehrung",
|
|
"treatment_plan": "Datenschutz-Audit jaehrlich, DPIA fuer neue Verarbeitungen, enge Zusammenarbeit mit DSB.",
|
|
"related_regulations": ["GDPR"],
|
|
},
|
|
{
|
|
"risk_id": "RISK-018",
|
|
"title": "Haftung bei KI-verursachten Schaeden",
|
|
"description": "Neue Produkthaftungsrichtlinie macht Hersteller fuer KI-verursachte Schaeden haftbar (fehlerhafte Lerninhalte, falsche Bewertungen).",
|
|
"category": "legal",
|
|
"likelihood": 2,
|
|
"impact": 4,
|
|
"mitigating_controls": ["AI-003", "AI-004", "AUD-001"],
|
|
"owner": "Geschaeftsfuehrung",
|
|
"treatment_plan": "Human-in-the-Loop fuer kritische Entscheidungen, Disclaimer in UI, Haftpflichtversicherung pruefen.",
|
|
"related_regulations": ["PLD", "AIACT"],
|
|
},
|
|
|
|
# ========================================================================
|
|
# Barrierefreiheit
|
|
# ========================================================================
|
|
{
|
|
"risk_id": "RISK-019",
|
|
"title": "Nicht barrierefreie Anwendung (EAA)",
|
|
"description": "European Accessibility Act verlangt ab 2025 Barrierefreiheit. Nicht-konforme Software kann vom Markt ausgeschlossen werden.",
|
|
"category": "compliance_gap",
|
|
"likelihood": 3,
|
|
"impact": 3,
|
|
"mitigating_controls": ["GOV-001"],
|
|
"owner": "Product Owner",
|
|
"treatment_plan": "WCAG 2.1 AA Audit durchfuehren, Accessibility-Tests in CI, Screenreader-Kompatibilitaet sicherstellen.",
|
|
"related_regulations": ["EAA"],
|
|
},
|
|
|
|
# ========================================================================
|
|
# Reputationsrisiken
|
|
# ========================================================================
|
|
{
|
|
"risk_id": "RISK-020",
|
|
"title": "Reputationsschaden durch Datenpanne",
|
|
"description": "Oeffentlich bekannt gewordene Datenpanne fuehrt zu Vertrauensverlust bei Schulen, Eltern und Schuelern.",
|
|
"category": "reputational",
|
|
"likelihood": 2,
|
|
"impact": 4,
|
|
"mitigating_controls": ["GOV-005", "OPS-003"],
|
|
"owner": "Geschaeftsfuehrung",
|
|
"treatment_plan": "Kommunikationsplan fuer Krisenfaelle, transparente Kommunikation, schnelle Behebung und Information Betroffener.",
|
|
"related_regulations": ["GDPR"],
|
|
},
|
|
]
|
|
|
|
|
|
def get_risks_for_seeding() -> List[Dict[str, Any]]:
|
|
"""Return all risks for database seeding."""
|
|
return RISKS_SEED
|