This repository has been archived on 2026-02-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
breakpilot-pwa/ai-compliance-sdk/policies/ucca_policy_v1.yaml
Benjamin Admin 21a844cb8a fix: Restore all files lost during destructive rebase
A previous `git pull --rebase origin main` dropped 177 local commits,
losing 3400+ files across admin-v2, backend, studio-v2, website,
klausur-service, and many other services. The partial restore attempt
(660295e2) only recovered some files.

This commit restores all missing files from pre-rebase ref 98933f5e
while preserving post-rebase additions (night-scheduler, night-mode UI,
NightModeWidget dashboard integration).

Restored features include:
- AI Module Sidebar (FAB), OCR Labeling, OCR Compare
- GPU Dashboard, RAG Pipeline, Magic Help
- Klausur-Korrektur (8 files), Abitur-Archiv (5+ files)
- Companion, Zeugnisse-Crawler, Screen Flow
- Full backend, studio-v2, website, klausur-service
- All compliance SDKs, agent-core, voice-service
- CI/CD configs, documentation, scripts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 09:51:32 +01:00

1145 lines
36 KiB
YAML

# =============================================================================
# Breakpilot Use-Case Compliance & Feasibility Policy
# Version: 1.0
# Jurisdiction: EU (DSGVO + AI Act)
# =============================================================================
#
# GRUNDSATZ:
# - Diese Regeln sind DETERMINISTISCH und laufen OHNE LLM
# - LLM darf Hard-Blocks NICHT überschreiben
# - Bei Unsicherheit → Escalation an DSB
#
# SEVERITY LEVELS:
# INFO = Hinweis, kein Risiko
# WARN = Risiko, aber lösbar
# BLOCK = Nicht zulässig ohne grundlegende Änderung
#
# =============================================================================
policy:
name: Breakpilot Use-Case Compliance & Feasibility Policy
version: "1.0.0"
jurisdiction: EU
basis:
- GDPR
- AI_Act
- BDSG
default_feasibility: YES
default_risk_score: 0
# =============================================================================
# Schwellenwerte
# =============================================================================
thresholds:
risk:
minimal: 0 # 0-19
low: 20 # 20-39
medium: 40 # 40-59
high: 60 # 60-79
unacceptable: 80 # 80+
escalation:
- art9_data
- minor_data_with_profiling
- fully_automated_decisions
- conflicting_evidence
# =============================================================================
# Architektur-Patterns (Lösungsvorschläge)
# =============================================================================
patterns:
P_RAG_ONLY:
id: P_RAG_ONLY
title: "RAG statt Training"
description: "Retrieval-Augmented Generation ohne Modell-Training"
benefit: "Daten bleiben in Vektordatenbank, fließen nicht ins Modell"
effort: low
risk_reduction: 20
P_PRE_ANON:
id: P_PRE_ANON
title: "Vor-Anonymisierung"
description: "Irreversible Anonymisierung vor Speicherung/Verarbeitung"
benefit: "Keine personenbezogenen Daten mehr → DSGVO nicht anwendbar"
effort: medium
risk_reduction: 30
P_PIXELIZATION:
id: P_PIXELIZATION
title: "Verpixelung/Unkenntlichmachung"
description: "Identifizierende Merkmale automatisch unkenntlich machen"
benefit: "Gesichter, Kennzeichen etc. nicht mehr erkennbar"
effort: medium
risk_reduction: 25
P_HITL_ENFORCED:
id: P_HITL_ENFORCED
title: "Human-in-the-Loop erzwingen"
description: "Technisch erzwungene menschliche Überprüfung"
benefit: "Keine vollautomatisierten Entscheidungen → Art. 22 nicht anwendbar"
effort: low
risk_reduction: 20
P_RETENTION_CAP:
id: P_RETENTION_CAP
title: "Kurze Aufbewahrung"
description: "Automatische Löschung nach max. 72 Stunden"
benefit: "Minimiert Risiko durch kurze Speicherdauer"
effort: low
risk_reduction: 10
P_NAMESPACE_ISOLATION:
id: P_NAMESPACE_ISOLATION
title: "Mandantentrennung"
description: "Strikte Trennung der Daten nach Mandanten"
benefit: "Kein Datenzugriff zwischen Mandanten möglich"
effort: medium
risk_reduction: 15
P_CONSENT_FLOW:
id: P_CONSENT_FLOW
title: "Einwilligungs-Workflow"
description: "Implementierung eines rechtskonformen Einwilligungsprozesses"
benefit: "Gültige Rechtsgrundlage nach Art. 6(1)(a) / Art. 9(2)(a)"
effort: medium
risk_reduction: 20
P_EU_HOSTING:
id: P_EU_HOSTING
title: "EU-Hosting"
description: "Wechsel zu einem Anbieter mit EU-Rechenzentren"
benefit: "Kein Drittlandtransfer → Art. 44ff nicht anwendbar"
effort: medium
risk_reduction: 15
# =============================================================================
# Erforderliche Kontrollen
# =============================================================================
controls:
C_EXPLICIT_CONSENT:
id: C_EXPLICIT_CONSENT
title: "Ausdrückliche Einwilligung"
description: "Opt-in mit klarer Information über Verarbeitungszweck"
gdpr_ref: "Art. 6(1)(a), Art. 9(2)(a) DSGVO"
effort: medium
C_PARENTAL_CONSENT:
id: C_PARENTAL_CONSENT
title: "Einwilligung der Erziehungsberechtigten"
description: "Bei Minderjährigen unter 16: Elterneinwilligung erforderlich"
gdpr_ref: "Art. 8 DSGVO"
effort: high
C_DSFA:
id: C_DSFA
title: "Datenschutz-Folgenabschätzung"
description: "Formale DSFA nach Art. 35 DSGVO durchführen"
gdpr_ref: "Art. 35 DSGVO"
effort: high
C_TRANSPARENCY:
id: C_TRANSPARENCY
title: "KI-Transparenz-Hinweis"
description: "Nutzer informieren dass sie mit KI interagieren"
gdpr_ref: "Art. 13/14 DSGVO, Art. 52 AI Act"
effort: low
C_CONTESTATION:
id: C_CONTESTATION
title: "Anfechtungsrecht"
description: "Betroffene können automatisierte Entscheidungen anfechten"
gdpr_ref: "Art. 22(3) DSGVO"
effort: medium
C_ACCESS_LOGGING:
id: C_ACCESS_LOGGING
title: "Zugriffs-Protokollierung"
description: "Alle Datenzugriffe revisionssicher protokollieren"
gdpr_ref: "Art. 5(2) DSGVO"
effort: low
C_ENCRYPTION:
id: C_ENCRYPTION
title: "Verschlüsselung"
description: "Daten bei Übertragung und Speicherung verschlüsseln"
gdpr_ref: "Art. 32 DSGVO"
effort: low
C_RETENTION_POLICY:
id: C_RETENTION_POLICY
title: "Löschkonzept"
description: "Definierte Aufbewahrungsfristen mit automatischer Löschung"
gdpr_ref: "Art. 5(1)(e) DSGVO"
effort: medium
C_SCC:
id: C_SCC
title: "Standardvertragsklauseln"
description: "EU-SCC mit Drittland-Anbieter abschließen"
gdpr_ref: "Art. 46(2)(c) DSGVO"
effort: medium
C_TIA:
id: C_TIA
title: "Transfer Impact Assessment"
description: "Bewertung der Risiken bei Drittlandtransfer"
gdpr_ref: "Schrems II Urteil"
effort: high
C_SCC_NEW:
id: C_SCC_NEW
title: "Neue Standardvertragsklauseln (2021)"
description: "Verwendung der aktuellen SCC-Version seit Juni 2021"
gdpr_ref: "Art. 46(2)(c) DSGVO, EU 2021/914"
effort: medium
when_applicable: "Drittlandtransfer ohne Angemessenheitsbeschluss"
what_to_do: |
1. Korrektes SCC-Modul wählen (C2C, C2P, P2P, P2C)
2. Annex I (Datenexporteur/Importeur) ausfüllen
3. Annex II (Technische Maßnahmen) dokumentieren
4. Von beiden Parteien unterzeichnen lassen
evidence_needed:
- "Unterzeichnete SCC (PDF)"
- "Ausgefüllte Annexe I und II"
- "Dokumentation des gewählten Moduls"
C_SCC_DPF_CHECK:
id: C_SCC_DPF_CHECK
title: "DPF-Zertifizierungsprüfung"
description: "Prüfung ob US-Anbieter unter Data Privacy Framework zertifiziert ist"
gdpr_ref: "EU-US Data Privacy Framework Beschluss 2023"
effort: low
when_applicable: "Übermittlung an US-Empfänger"
what_to_do: |
1. DPF-Liste auf dataprivacyframework.gov prüfen
2. Zertifizierungsstatus dokumentieren
3. Bei Zertifizierung: SCC optional (aber empfohlen als Backup)
4. Ohne Zertifizierung: SCC zwingend erforderlich
evidence_needed:
- "Screenshot DPF-Zertifizierungsstatus"
- "Dokumentation Prüfdatum"
C_SUBPROCESSOR_SCC:
id: C_SUBPROCESSOR_SCC
title: "SCC für Unterauftragsverarbeiter"
description: "SCC-Kette zu Unterauftragsverarbeitern im Drittland"
gdpr_ref: "Art. 28(4), Art. 46 DSGVO"
effort: medium
when_applicable: "Subprozessoren im Drittland"
what_to_do: |
1. Liste aller Subprozessoren mit Standorten einholen
2. Für jeden Drittland-Subprozessor: SCC oder Angemessenheit prüfen
3. Vertragliche Weitergabe der Pflichten sicherstellen
evidence_needed:
- "Subprocessor-Liste mit Standorten"
- "SCC-Nachweis für Drittland-Subprozessoren"
C_TECHNICAL_SUPPLEMENTARY:
id: C_TECHNICAL_SUPPLEMENTARY
title: "Technische Zusatzmaßnahmen"
description: "Ergänzende technische Schutzmaßnahmen bei Drittlandtransfer"
gdpr_ref: "EDPB Recommendations 01/2020"
effort: high
when_applicable: "TIA zeigt unzureichendes Schutzniveau"
what_to_do: |
1. Ende-zu-Ende-Verschlüsselung implementieren (Schlüssel nur bei Exporteur)
2. Pseudonymisierung mit Mapping-Tabelle im EWR
3. Logging aller Drittland-Zugriffe
evidence_needed:
- "Verschlüsselungskonzept"
- "Pseudonymisierungskonzept"
- "Zugriffsprotokollierung"
# =============================================================================
# REGELN - Kategorie A: Datenklassifikation
# =============================================================================
rules:
# ---------------------------------------------------------------------------
# A. Datenklassifikation
# ---------------------------------------------------------------------------
- id: R-A001
category: "A. Datenklassifikation"
title: "Personenbezogene Daten vorhanden"
description: "Es werden personenbezogene Daten verarbeitet"
condition:
field: data_types.personal_data
operator: equals
value: true
effect:
risk_add: 10
controls_add: [C_TRANSPARENCY]
severity: INFO
gdpr_ref: "Art. 4(1), Art. 6 DSGVO"
rationale: "Personenbezogene Daten erfordern Rechtsgrundlage nach Art. 6"
- id: R-A002
category: "A. Datenklassifikation"
title: "Besondere Kategorien (Art. 9)"
description: "Gesundheitsdaten, Religion, politische Meinung etc."
condition:
field: data_types.article_9_data
operator: equals
value: true
effect:
risk_add: 25
feasibility: CONDITIONAL
controls_add: [C_EXPLICIT_CONSENT, C_DSFA, C_ENCRYPTION]
escalation: true
severity: WARN
gdpr_ref: "Art. 9 DSGVO"
rationale: "Besondere Kategorien sind grundsätzlich verboten, Ausnahmen nur nach Art. 9(2)"
- id: R-A003
category: "A. Datenklassifikation"
title: "Daten von Minderjährigen"
description: "Es werden Daten von Personen unter 18 Jahren verarbeitet"
condition:
field: data_types.minor_data
operator: equals
value: true
effect:
risk_add: 20
training_allowed: false
controls_add: [C_PARENTAL_CONSENT, C_DSFA]
severity: WARN
gdpr_ref: "Art. 8 DSGVO, ErwGr. 38"
rationale: "Kinder verdienen besonderen Schutz"
- id: R-A004
category: "A. Datenklassifikation"
title: "KFZ-Kennzeichen"
description: "Fahrzeugkennzeichen werden verarbeitet"
condition:
field: data_types.license_plates
operator: equals
value: true
effect:
risk_add: 15
controls_add: [C_RETENTION_POLICY]
suggested_patterns: [P_PIXELIZATION, P_PRE_ANON]
severity: WARN
gdpr_ref: "Art. 4(1) DSGVO"
rationale: "Kennzeichen ermöglichen Identifikation des Halters"
- id: R-A005
category: "A. Datenklassifikation"
title: "Biometrische Daten"
description: "Fingerabdrücke, Gesichtserkennung oder andere biometrische Merkmale"
condition:
field: data_types.biometric_data
operator: equals
value: true
effect:
risk_add: 30
feasibility: CONDITIONAL
controls_add: [C_EXPLICIT_CONSENT, C_DSFA, C_ENCRYPTION, C_ACCESS_LOGGING]
suggested_patterns: [P_PIXELIZATION]
escalation: true
severity: WARN
gdpr_ref: "Art. 9(1), Art. 4(14) DSGVO"
rationale: "Biometrische Daten zur Identifikation sind besondere Kategorien"
- id: R-A006
category: "A. Datenklassifikation"
title: "Standortdaten"
description: "GPS, Bewegungsprofile oder Aufenthaltsorte"
condition:
field: data_types.location_data
operator: equals
value: true
effect:
risk_add: 15
controls_add: [C_EXPLICIT_CONSENT, C_RETENTION_POLICY]
severity: WARN
gdpr_ref: "Art. 4(1) DSGVO, ErwGr. 75"
rationale: "Standortdaten ermöglichen detaillierte Bewegungsprofile"
- id: R-A007
category: "A. Datenklassifikation"
title: "Nur öffentliche/anonyme Daten"
description: "Keine personenbezogenen Daten"
condition:
field: data_types.public_data
operator: equals
value: true
effect:
risk_add: 0
severity: INFO
gdpr_ref: "ErwGr. 26 DSGVO"
rationale: "Anonyme Daten fallen nicht unter die DSGVO"
# ---------------------------------------------------------------------------
# B. Zweck & Rechtsgrundlage
# ---------------------------------------------------------------------------
- id: R-B001
category: "B. Zweck & Rechtsgrundlage"
title: "Kundenservice"
description: "Verarbeitung zum Zweck des Kundenservice"
condition:
field: purpose.customer_support
operator: equals
value: true
effect:
risk_add: 5
legal_basis: "Art. 6(1)(b) DSGVO"
severity: INFO
rationale: "Kundenservice kann auf Vertragserfüllung gestützt werden"
- id: R-B002
category: "B. Zweck & Rechtsgrundlage"
title: "Bewertung/Scoring von Personen"
description: "Personen werden bewertet, eingestuft oder gerankt"
condition:
field: purpose.evaluation_scoring
operator: equals
value: true
effect:
risk_add: 20
controls_add: [C_TRANSPARENCY, C_CONTESTATION, C_DSFA]
severity: WARN
gdpr_ref: "Art. 22, § 31 BDSG"
rationale: "Scoring erfordert besondere Transparenz und Anfechtbarkeit"
- id: R-B003
category: "B. Zweck & Rechtsgrundlage"
title: "Profiling"
description: "Automatisierte Analyse persönlicher Aspekte"
condition:
field: purpose.profiling
operator: equals
value: true
effect:
risk_add: 20
controls_add: [C_TRANSPARENCY, C_DSFA]
severity: WARN
gdpr_ref: "Art. 4(4), Art. 22 DSGVO"
rationale: "Profiling erfordert erhöhte Transparenz"
- id: R-B004
category: "B. Zweck & Rechtsgrundlage"
title: "Marketing mit personenbezogenen Daten"
description: "Werbung unter Verwendung personenbezogener Daten"
condition:
all_of:
- field: purpose.marketing
operator: equals
value: true
- field: data_types.personal_data
operator: equals
value: true
effect:
risk_add: 10
feasibility: CONDITIONAL
controls_add: [C_EXPLICIT_CONSENT]
severity: WARN
gdpr_ref: "Art. 6(1)(a), § 7 UWG"
rationale: "E-Mail-Marketing erfordert i.d.R. Einwilligung"
# ---------------------------------------------------------------------------
# C. Automatisierung & Entscheidungen
# ---------------------------------------------------------------------------
- id: R-C001
category: "C. Automatisierung"
title: "Assistive KI-Nutzung"
description: "KI macht Vorschläge, Mensch entscheidet"
condition:
field: automation
operator: equals
value: assistive
effect:
risk_add: 0
severity: INFO
rationale: "Human-in-the-loop garantiert → geringes Risiko"
- id: R-C002
category: "C. Automatisierung"
title: "Teilautomatisierung"
description: "KI trifft Vorentscheidungen, Mensch prüft"
condition:
field: automation
operator: equals
value: semi_automated
effect:
risk_add: 10
controls_add: [C_TRANSPARENCY]
severity: INFO
rationale: "Human-on-the-loop reduziert Risiko"
- id: R-C003
category: "C. Automatisierung"
title: "Vollautomatisierte Verarbeitung"
description: "KI entscheidet ohne menschliche Prüfung"
condition:
field: automation
operator: equals
value: fully_automated
effect:
risk_add: 25
art22_risk: true
controls_add: [C_CONTESTATION, C_TRANSPARENCY]
suggested_patterns: [P_HITL_ENFORCED]
severity: WARN
gdpr_ref: "Art. 22 DSGVO"
rationale: "Vollautomatisierte Entscheidungen sind nach Art. 22 grundsätzlich verboten"
- id: R-C004
category: "C. Automatisierung"
title: "Entscheidungen mit rechtlicher Wirkung"
description: "Automatisierte Entscheidungen mit rechtlichen Konsequenzen"
condition:
all_of:
- field: automation
operator: equals
value: fully_automated
- field: outputs.legal_effects
operator: equals
value: true
effect:
feasibility: NO
severity: BLOCK
gdpr_ref: "Art. 22(1) DSGVO"
rationale: "Vollautomatisierte Entscheidungen mit rechtlicher Wirkung sind verboten"
- id: R-C005
category: "C. Automatisierung"
title: "HR-Kontext mit vollautomatisiertem Scoring"
description: "Mitarbeiterbewertung durch vollautomatisierte KI"
condition:
all_of:
- field: domain
operator: in
value: [hr, recruiting]
- field: purpose.evaluation_scoring
operator: equals
value: true
- field: automation
operator: equals
value: fully_automated
effect:
feasibility: NO
severity: BLOCK
gdpr_ref: "Art. 22 DSGVO, § 26 BDSG"
rationale: "Vollautomatisiertes HR-Scoring ist unzulässig"
# ---------------------------------------------------------------------------
# D. Training & Modell-Nutzung
# ---------------------------------------------------------------------------
- id: R-D001
category: "D. Training & Modell"
title: "RAG ohne Training"
description: "Nur Dokumentensuche, kein Modell-Training"
condition:
all_of:
- field: model_usage.rag
operator: equals
value: true
- field: model_usage.training
operator: equals
value: false
effect:
risk_add: 0
suggested_patterns: [P_RAG_ONLY]
severity: INFO
rationale: "RAG ist datenschutzfreundlich - Daten fließen nicht ins Modell"
- id: R-D002
category: "D. Training & Modell"
title: "Training mit personenbezogenen Daten"
description: "KI-Training unter Verwendung personenbezogener Daten"
condition:
all_of:
- field: model_usage.training
operator: equals
value: true
- field: data_types.personal_data
operator: equals
value: true
effect:
risk_add: 25
feasibility: CONDITIONAL
training_allowed: false
suggested_patterns: [P_RAG_ONLY, P_PRE_ANON]
controls_add: [C_EXPLICIT_CONSENT, C_DSFA]
severity: WARN
gdpr_ref: "Art. 5(1)(b), Art. 6 DSGVO"
rationale: "Training ist eigenständiger Verarbeitungszweck"
- id: R-D003
category: "D. Training & Modell"
title: "Training mit Daten Minderjähriger"
description: "KI-Training mit Daten von Kindern/Jugendlichen"
condition:
all_of:
- field: model_usage.training
operator: equals
value: true
- field: data_types.minor_data
operator: equals
value: true
effect:
feasibility: NO
severity: BLOCK
gdpr_ref: "Art. 8 DSGVO"
rationale: "Training mit Daten Minderjähriger ist nicht zulässig"
- id: R-D004
category: "D. Training & Modell"
title: "Fine-Tuning mit Kundengesprächen"
description: "Modell-Anpassung mit realen Kundeninteraktionen"
condition:
all_of:
- field: model_usage.finetune
operator: equals
value: true
- field: data_types.customer_data
operator: equals
value: true
effect:
risk_add: 15
feasibility: CONDITIONAL
suggested_patterns: [P_PRE_ANON, P_RAG_ONLY]
controls_add: [C_EXPLICIT_CONSENT]
severity: WARN
rationale: "Fine-Tuning nur mit anonymisierten Daten oder Einwilligung"
# ---------------------------------------------------------------------------
# E. Hosting & Drittlandtransfer
# ---------------------------------------------------------------------------
- id: R-E001
category: "E. Hosting"
title: "EU-Hosting"
description: "Daten werden in der EU/EWR verarbeitet"
condition:
field: hosting.region
operator: equals
value: eu
effect:
risk_add: 0
severity: INFO
rationale: "EU-Hosting vermeidet Drittlandtransfer-Problematik"
- id: R-E002
category: "E. Hosting"
title: "Drittland-Hosting"
description: "Daten werden außerhalb der EU verarbeitet"
condition:
field: hosting.region
operator: equals
value: third_country
effect:
risk_add: 15
controls_add: [C_SCC, C_TIA, C_ENCRYPTION]
suggested_patterns: [P_EU_HOSTING]
severity: WARN
gdpr_ref: "Art. 44ff DSGVO"
rationale: "Drittlandtransfer erfordert zusätzliche Garantien"
- id: R-E003
category: "E. Hosting"
title: "Drittland mit sensiblen Daten"
description: "Sensible Daten außerhalb der EU"
condition:
all_of:
- field: hosting.region
operator: equals
value: third_country
- any_of:
- field: data_types.article_9_data
operator: equals
value: true
- field: data_types.biometric_data
operator: equals
value: true
- field: data_types.minor_data
operator: equals
value: true
effect:
risk_add: 25
feasibility: CONDITIONAL
escalation: true
suggested_patterns: [P_EU_HOSTING]
severity: WARN
gdpr_ref: "Art. 44, Art. 9 DSGVO"
rationale: "Sensible Daten im Drittland erfordern umfangreiche Schutzmaßnahmen"
# ---------------------------------------------------------------------------
# E2. Standardvertragsklauseln (SCC)
# ---------------------------------------------------------------------------
- id: R-E004
category: "E. Transfer"
title: "SCC vorhanden bei Drittlandtransfer"
description: "Standardvertragsklauseln mit Drittland-Provider abgeschlossen"
condition:
all_of:
- field: provider.location
operator: in
value: [us, non_eu, third_country]
- field: contracts.scc.present
operator: equals
value: true
effect:
risk_add: 5
controls_add: [C_TIA]
severity: INFO
gdpr_ref: "Art. 46(2)(c) DSGVO"
rationale: "SCC bieten rechtliche Grundlage, TIA zur Validierung erforderlich"
- id: R-E005
category: "E. Transfer"
title: "Alte SCC-Version verwendet"
description: "SCC vorhanden, aber nicht die aktuelle Version (2021)"
condition:
all_of:
- field: contracts.scc.present
operator: equals
value: true
- field: contracts.scc.version
operator: not_equals
value: new_scc_2021
effect:
risk_add: 10
controls_add: [C_SCC_NEW]
flags: ["SCC_VERSION_OUTDATED"]
severity: WARN
gdpr_ref: "EU 2021/914"
rationale: "Alte SCC-Versionen sind seit Ende 2022 nicht mehr gültig"
- id: R-E006
category: "E. Transfer"
title: "USA-Transfer mit DPF-Zertifizierung"
description: "US-Provider ist unter Data Privacy Framework zertifiziert"
condition:
all_of:
- field: provider.location
operator: equals
value: us
- field: provider.dpf_certified
operator: equals
value: true
effect:
risk_add: 0
severity: INFO
gdpr_ref: "EU-US DPF Beschluss 2023"
rationale: "DPF-Zertifizierung ermöglicht Transfer ohne zusätzliche SCC"
- id: R-E007
category: "E. Transfer"
title: "USA-Transfer ohne DPF-Zertifizierung"
description: "US-Provider ist NICHT unter DPF zertifiziert"
condition:
all_of:
- field: provider.location
operator: equals
value: us
- field: provider.dpf_certified
operator: equals
value: false
effect:
risk_add: 15
controls_add: [C_SCC, C_TIA, C_SCC_DPF_CHECK]
flags: ["US_NO_DPF"]
severity: WARN
gdpr_ref: "DSGVO Art. 44ff, Schrems II"
rationale: "Ohne DPF sind SCC + TIA zwingend erforderlich"
- id: R-E008
category: "E. Transfer"
title: "Lokales Hosting ohne Drittlandzugriff"
description: "Vollständig lokale Verarbeitung im EWR ohne externen Zugriff"
condition:
all_of:
- field: hosting.type
operator: equals
value: on_premises
- field: hosting.region
operator: equals
value: eu
- field: provider.remote_access
operator: equals
value: false
effect:
risk_add: 0
flags: ["NO_TRANSFER_REQUIRED"]
severity: INFO
rationale: "Rein lokale Verarbeitung erfordert keine SCC"
- id: R-E009
category: "E. Transfer"
title: "Support-Zugriff aus Drittland"
description: "Provider-Support kann von Drittland aus auf Daten zugreifen"
condition:
all_of:
- field: provider.support_location
operator: in
value: [us, non_eu, third_country, global]
- field: data_types.personal_data
operator: equals
value: true
effect:
risk_add: 10
controls_add: [C_SCC, C_TIA]
flags: ["SUPPORT_TRANSFER_RISK"]
severity: WARN
gdpr_ref: "Art. 44 DSGVO"
rationale: "Remote-Zugriff auf EU-Daten von Drittland = Transfer"
- id: R-E010
category: "E. Transfer"
title: "Unterauftragsverarbeiter im Drittland"
description: "Provider nutzt Subprozessoren außerhalb des EWR"
condition:
all_of:
- field: provider.subprocessors.third_country
operator: equals
value: true
effect:
risk_add: 10
controls_add: [C_SUBPROCESSOR_SCC, C_TIA]
flags: ["SUBPROCESSOR_TRANSFER"]
severity: WARN
gdpr_ref: "Art. 28(4) DSGVO"
rationale: "SCC-Kette zu Drittland-Subprozessoren erforderlich"
- id: R-E011
category: "E. Transfer"
title: "TIA zeigt unzureichendes Schutzniveau"
description: "Transfer Impact Assessment ergibt Defizite"
condition:
all_of:
- field: contracts.tia.present
operator: equals
value: true
- field: contracts.tia.result
operator: equals
value: inadequate
effect:
risk_add: 20
controls_add: [C_TECHNICAL_SUPPLEMENTARY]
flags: ["TIA_INADEQUATE"]
escalation: true
severity: WARN
gdpr_ref: "EDPB Recommendations 01/2020"
rationale: "Zusätzliche technische Maßnahmen erforderlich"
- id: R-E012
category: "E. Transfer"
title: "TIA zeigt Transfer nicht möglich"
description: "Transfer Impact Assessment ergibt: kein angemessenes Niveau erreichbar"
condition:
all_of:
- field: contracts.tia.present
operator: equals
value: true
- field: contracts.tia.result
operator: equals
value: not_feasible
effect:
feasibility: NO
flags: ["TRANSFER_BLOCKED"]
severity: BLOCK
gdpr_ref: "Art. 44 DSGVO"
rationale: "Transfer ohne angemessenes Schutzniveau ist unzulässig"
# ---------------------------------------------------------------------------
# F. Domain-spezifische Regeln
# ---------------------------------------------------------------------------
- id: R-F001
category: "F. Domain-spezifisch"
title: "Bildung + automatisiertes Scoring"
description: "Automatisierte Bewertung von Schülern/Studenten"
condition:
all_of:
- field: domain
operator: in
value: [education, higher_education, vocational_training]
- field: purpose.evaluation_scoring
operator: equals
value: true
- field: automation
operator: equals
value: fully_automated
effect:
feasibility: NO
severity: BLOCK
rationale: "Vollautomatisiertes Scoring im Bildungsbereich nicht zulässig"
- id: R-F002
category: "F. Domain-spezifisch"
title: "Stadtwerke Chatbot (Standard)"
description: "Kundenservice-Chatbot für Versorgungsunternehmen"
condition:
all_of:
- field: domain
operator: equals
value: utilities
- field: purpose.customer_support
operator: equals
value: true
- field: model_usage.rag
operator: equals
value: true
- field: model_usage.training
operator: equals
value: false
effect:
feasibility: YES
risk_add: 0
severity: INFO
rationale: "Standard-Anwendungsfall mit geringem Risiko"
- id: R-F003
category: "F. Domain-spezifisch"
title: "Parkhaus mit Kennzeichen-Training"
description: "KI-Training mit KFZ-Kennzeichen"
condition:
all_of:
- field: domain
operator: equals
value: real_estate
- field: data_types.license_plates
operator: equals
value: true
- field: model_usage.training
operator: equals
value: true
effect:
feasibility: NO
suggested_patterns: [P_PIXELIZATION]
severity: BLOCK
rationale: "Training mit Kennzeichen ohne Einwilligung nicht zulässig"
- id: R-F004
category: "F. Domain-spezifisch"
title: "Gesundheitswesen mit Art.9-Daten"
description: "KI im Gesundheitsbereich mit Patientendaten"
condition:
all_of:
- field: domain
operator: in
value: [healthcare, medical_devices, pharma, elderly_care]
- field: data_types.article_9_data
operator: equals
value: true
effect:
risk_add: 20
feasibility: CONDITIONAL
controls_add: [C_DSFA, C_ENCRYPTION, C_ACCESS_LOGGING]
escalation: true
severity: WARN
gdpr_ref: "Art. 9(2)(h) DSGVO"
rationale: "Gesundheitsdaten nur mit besonderen Schutzmaßnahmen"
# ---------------------------------------------------------------------------
# G. Aggregation & Ergebnis
# ---------------------------------------------------------------------------
- id: R-G001
category: "G. Aggregation"
title: "BLOCK-Regel greift"
description: "Mindestens eine blockierende Regel wurde ausgelöst"
condition:
aggregate: any_block
effect:
feasibility: NO
severity: BLOCK
rationale: "Hard-Block kann nicht überschrieben werden"
- id: R-G002
category: "G. Aggregation"
title: "Hoher Risikoscore"
description: "Aggregierter Risikoscore über Schwellenwert"
condition:
aggregate: risk_score_gte
value: 60
effect:
feasibility: CONDITIONAL
controls_add: [C_DSFA]
escalation: true
severity: WARN
rationale: "Hohe Risiko-Aggregation erfordert DSFA"
- id: R-G003
category: "G. Aggregation"
title: "Nur INFO-Regeln"
description: "Keine WARN oder BLOCK Regeln ausgelöst"
condition:
aggregate: only_info
effect:
feasibility: YES
severity: INFO
rationale: "Geringes Risiko bei nur informativen Regeln"
# =============================================================================
# Problem-Lösungs-Mappings (für LLM-Prompt-Generierung)
# =============================================================================
problem_solutions:
- problem_id: "license_plates_no_consent"
title: "KFZ-Kennzeichen ohne Rechtsgrundlage"
triggers:
- rule: R-A004
without_control: C_EXPLICIT_CONSENT
solutions:
- id: "pixelize"
title: "Kennzeichen verpixeln"
pattern: P_PIXELIZATION
removes_problem: true
team_question: "Funktioniert das Projekt auch mit verpixelten (nicht lesbaren) Kennzeichen?"
- id: "consent"
title: "Einwilligung einholen"
control: C_EXPLICIT_CONSENT
removes_problem: true
team_question: "Können Sie die Einwilligung aller Fahrzeughalter sicherstellen?"
- problem_id: "biometrics_no_consent"
title: "Biometrische Daten ohne Einwilligung"
triggers:
- rule: R-A005
without_control: C_EXPLICIT_CONSENT
solutions:
- id: "anonymize_faces"
title: "Gesichter anonymisieren"
pattern: P_PIXELIZATION
removes_problem: true
team_question: "Funktioniert das Projekt auch ohne erkennbare Gesichter?"
- id: "explicit_consent"
title: "Ausdrückliche Einwilligung"
control: C_EXPLICIT_CONSENT
removes_problem: true
team_question: "Können Sie eine ausdrückliche Einwilligung aller Betroffenen sicherstellen?"
- problem_id: "training_with_pii"
title: "KI-Training mit personenbezogenen Daten"
triggers:
- rule: R-D002
solutions:
- id: "use_rag"
title: "RAG statt Training"
pattern: P_RAG_ONLY
removes_problem: true
team_question: "Reicht es, wenn die KI Ihre Dokumente durchsuchen kann statt daraus zu lernen?"
- id: "anonymize_first"
title: "Trainingsdaten anonymisieren"
pattern: P_PRE_ANON
removes_problem: true
team_question: "Können die Daten vor dem Training vollständig anonymisiert werden?"
- problem_id: "fully_automated_decisions"
title: "Vollautomatisierte Entscheidungen"
triggers:
- rule: R-C003
solutions:
- id: "add_hitl"
title: "Menschliche Überprüfung einführen"
pattern: P_HITL_ENFORCED
removes_problem: true
team_question: "Kann ein Mensch jede Entscheidung vor Wirksamkeit prüfen?"
- problem_id: "third_country_no_scc"
title: "Drittlandtransfer ohne SCC"
triggers:
- rule: R-E002
without_control: C_SCC
solutions:
- id: "add_scc"
title: "SCC mit Provider abschließen"
control: C_SCC_NEW
removes_problem: true
team_question: "Kann der Provider die neuen EU-Standardvertragsklauseln unterzeichnen?"
- id: "switch_eu"
title: "Zu EU-Anbieter wechseln"
pattern: P_EU_HOSTING
removes_problem: true
team_question: "Gibt es eine EU-Alternative für diesen Dienst?"
- id: "local_hosting"
title: "Lokales Hosting nutzen"
removes_problem: true
team_question: "Kann die Verarbeitung vollständig lokal im EWR erfolgen?"
- problem_id: "us_provider_no_dpf"
title: "US-Provider ohne DPF-Zertifizierung"
triggers:
- rule: R-E007
solutions:
- id: "check_dpf"
title: "DPF-Status prüfen"
control: C_SCC_DPF_CHECK
removes_problem: false
team_question: "Wurde geprüft ob der Provider mittlerweile DPF-zertifiziert ist?"
- id: "add_scc_tia"
title: "SCC + TIA implementieren"
controls: [C_SCC_NEW, C_TIA]
removes_problem: true
team_question: "Hat der Provider die neuen SCC unterzeichnet und wurde ein TIA durchgeführt?"
- problem_id: "outdated_scc"
title: "Veraltete SCC-Version"
triggers:
- rule: R-E005
solutions:
- id: "update_scc"
title: "SCC auf Version 2021 aktualisieren"
control: C_SCC_NEW
removes_problem: true
team_question: "Kann der bestehende SCC-Vertrag auf die neue Version aktualisiert werden?"
- problem_id: "support_from_third_country"
title: "Support-Zugriff aus Drittland"
triggers:
- rule: R-E009
solutions:
- id: "restrict_access"
title: "Zugriff auf EU-Support beschränken"
removes_problem: true
team_question: "Kann der Support auf EU-basiertes Personal beschränkt werden?"
- id: "add_scc_support"
title: "SCC für Support-Zugriffe"
control: C_SCC
removes_problem: true
team_question: "Können SCC den Support-Zugriff aus dem Drittland abdecken?"
- problem_id: "tia_inadequate"
title: "TIA zeigt Defizite"
triggers:
- rule: R-E011
solutions:
- id: "add_technical_measures"
title: "Technische Zusatzmaßnahmen implementieren"
control: C_TECHNICAL_SUPPLEMENTARY
removes_problem: true
team_question: "Können Ende-zu-Ende-Verschlüsselung und Pseudonymisierung implementiert werden?"
- id: "switch_provider"
title: "Provider wechseln"
pattern: P_EU_HOSTING
removes_problem: true
team_question: "Gibt es einen alternativen Provider mit besserem Schutzniveau?"
# =============================================================================
# Escalation-Triggers (wann DSB einschalten)
# =============================================================================
escalation_triggers:
- condition: "Art. 9 Daten vorhanden"
reason: "Besondere Kategorien erfordern DSB-Freigabe"
- condition: "Minderjährige + Profiling/Scoring"
reason: "Besonderer Schutz für Kinder"
- condition: "Vollautomatisierte Entscheidungen mit Rechtswirkung"
reason: "Art. 22 DSGVO Prüfung erforderlich"
- condition: "Widersprüchliche Legal-RAG Ergebnisse"
reason: "Juristische Klärung erforderlich"
- condition: "Risikoscore >= 80"
reason: "Sehr hohes aggregiertes Risiko"