# Control Provenance Wiki

Dokumentation der rechtlichen und methodischen Grundlage fuer die Control-Erstellung.

**Frontend:** `https://macmini:3007/sdk/control-provenance`
**Production:** `https://admin-dev.breakpilot.ai/sdk/control-provenance`

---

## Methodik der Control-Erstellung

Alle Controls in der Canonical Control Library wurden **eigenstaendig formuliert** und folgen einer
**unabhaengigen Taxonomie**. Es werden keine proprietaeren Bezeichner, Nummern oder Strukturen
aus geschuetzten Quellen uebernommen.

### Dreistufiger Prozess

1. **Offene Recherche** — Identifikation von Security-Anforderungen aus oeffentlichen, frei zugaenglichen
   Frameworks (OWASP, NIST, ENISA). Jede Anforderung wird aus mindestens 2 unabhaengigen offenen Quellen belegt.

2. **Eigenstaendige Formulierung** — Jedes Control wird mit eigener Sprache, eigener Struktur und eigener
   Taxonomie (z.B. AUTH-001, NET-001) verfasst. Kein Copy-Paste, keine Paraphrase geschuetzter Texte.

3. **Too-Close-Pruefung** — Automatisierte Aehnlichkeitspruefung gegen Quelltexte mit 5 Metriken
   (Token Overlap, N-Gram Jaccard, Embedding Cosine, LCS Ratio, Exact-Phrase). Nur Controls mit
   Status PASS oder WARN (+ Human Review) werden freigegeben.

### Rechtliche Grundlage

| Gesetz | Bezug |
|--------|-------|
| **UrhG §44b** | Text & Data Mining erlaubt fuer Analyse; Kopien werden danach geloescht |
| **UrhG §23** | Hinreichender Abstand zum Originalwerk durch eigene Formulierung |
| **BSI Nutzungsbedingungen** | Kommerzielle Nutzung nur mit Zustimmung; BSI-Dokumente nur als Analysegrundlage |

---

## Filter in der Control Library

Die Control Library bietet **7 Filter-Dropdowns**, um die ueber 3.000 Controls effizient zu durchsuchen:

### Schweregrad (Severity)

| Stufe | Farbe | Bedeutung |
|-------|-------|-----------|
| **Kritisch** | Rot | Sicherheitskritische Controls — Verstoesse fuehren zu schwerwiegenden Risiken |
| **Hoch** | Orange | Wichtige Controls — sollten zeitnah umgesetzt werden |
| **Mittel** | Gelb | Standardmaessige Controls — empfohlene Umsetzung |
| **Niedrig** | Gruen | Nice-to-have Controls — zusaetzliche Haertung |

### Domain

Das Praefix der Control-ID (z.B. `AUTH-001`, `SEC-042`). Kennzeichnet den thematischen Bereich.

| Domain | Anzahl | Thema |
|--------|--------|-------|
| SEC | ~700 | Allgemeine Sicherheit, Systemhaertung |
| COMP | ~470 | Compliance, Regulierung, Nachweispflichten |
| DATA | ~400 | Datenschutz, Datenklassifizierung, DSGVO |
| AI | ~290 | KI-Regulierung (AI Act, Transparenz, Erklaerbarkeit) |
| LOG | ~230 | Logging, Monitoring, SIEM |
| AUTH | ~200 | Authentifizierung, Zugriffskontrolle |
| NET | ~150 | Netzwerksicherheit, Transport, Firewall |
| CRYP | ~90 | Kryptographie, Schluesselmanagement |
| ACC | ~25 | Zugriffskontrolle (Access Control) |
| INC | ~25 | Incident Response, Vorfallmanagement |

Zusaetzlich existieren spezialisierte Domains wie CRA, ARC, API, PKI, SUP, VUL, BCP, PHY u.v.m.

### Status (Release State)

| Status | Bedeutung |
|--------|-----------|
| **Draft** | Entwurf — noch nicht freigegeben |
| **Approved** | Freigegeben fuer Kunden |
| **Review noetig** | Muss manuell geprueft werden (Pipeline-erzeugt) |
| **Zu aehnlich** | Too-Close-Check hat Warnung ausgeloest |
| **Duplikat** | Wurde als Duplikat eines anderen Controls erkannt |
| **Deprecated** | Veraltet/geloescht |

### Nachweis (Verification Method)

| Methode | Farbe | Beschreibung |
|---------|-------|-------------|
| **Code Review** | Blau | Nachweis durch Quellcode-Inspektion |
| **Dokument** | Amber | Nachweis durch Richtlinien, Prozesse, Schulungen |
| **Tool** | Teal | Nachweis durch automatisierte Scans/Monitoring |
| **Hybrid** | Lila | Kombination aus mehreren Methoden |

### Kategorie

Thematische Einordnung (23 Kategorien). Kategorien sind **thematisch**, Domains **strukturell**.
Ein AUTH-Control kann z.B. die Kategorie "Netzwerksicherheit" haben.

### Zielgruppe (Target Audience)

| Zielgruppe | Bedeutung |
|------------|-----------|
| **Unternehmen** | Fuer Endkunden/Firmen relevant |
| **Behoerden** | Spezifisch fuer oeffentliche Verwaltung |
| **Anbieter** | Fuer SaaS/Plattform-Anbieter |
| **Alle** | Allgemein anwendbar |
| **Entwickler** | Software-Entwickler |
| **DSB** | Datenschutzbeauftragte |
| **GF** | Geschaeftsfuehrung |
| **IT** | IT-Abteilung |
| **Recht** | Rechtsabteilung |
| **Compliance** | Compliance-Officer |
| **Personal** | Personalwesen |
| **Einkauf** | Beschaffung |
| **Produktion** | Fertigung |
| **Vertrieb** | Sales |
| **Gesundheit** | Gesundheitswesen |
| **Finanzen** | Finanzwesen |
| **Oeffentl. Dienst** | Oeffentlicher Dienst |

### Dokumentenursprung (Source)

Filtert nach der Quelldokument-Herkunft des Controls. Die wichtigsten Quellen:

| Quelle | Typ |
|--------|-----|
| KI-Verordnung (EU) 2024/1689 | EU-Recht |
| Cyber Resilience Act (EU) 2024/2847 | EU-Recht |
| DSGVO (EU) 2016/679 | EU-Recht |
| NIS2-Richtlinie (EU) 2022/2555 | EU-Recht |
| NIST SP 800-53, CSF 2.0, SSDF | US-Standards |
| OWASP Top 10, ASVS, SAMM | Open Source |
| ENISA Guidelines | EU-Agentur |
| CISA Secure by Design | US-Behoerde |
| BDSG, TKG, GewO, HGB | Deutsche Gesetze |
| EDPB Leitlinien | EU Datenschutz |

---

## Badges & Lizenzregeln

### Lizenzregel-Badge (Rule 1 / 2 / 3)

Die Lizenzregel bestimmt, wie ein Control erstellt und genutzt werden darf:

| Badge | Farbe | Regel | Bedeutung |
|-------|-------|-------|-----------|
| **Free Use** | Gruen | Rule 1 | Quelle ist Public Domain oder EU-Recht — Originaltext darf gezeigt werden |
| **Zitation** | Blau | Rule 2 | Quelle ist CC-BY oder aehnlich — Zitation + Quellenangabe erforderlich |
| **Reformuliert** | Amber | Rule 3 | Quelle hat eingeschraenkte Lizenz — eigenstaendig reformuliert, kein Originaltext |

### Processing Path

| Pfad | Bedeutung |
|------|-----------|
| `structured` / `structured_batch` | Control direkt aus dem Quelltext strukturiert (Rule 1/2) |
| `llm_reform` / `llm_reform_batch` | Control vollstaendig reformuliert (Rule 3) |
| `no_control` | LLM konnte kein Control ableiten (null im Array) |

### Generation Strategy Badge

| Badge | Farbe | Bedeutung |
|-------|-------|-----------|
| **v1** | Grau | Original-Pipeline (ungrouped) |
| **v2** | Emerald | Document-grouped Pipeline |

### Weitere Badges

| Badge | Bedeutung |
|-------|-----------|
| Score | Risiko-Score (0-10) |
| Severity-Badge | Schweregrad (Kritisch/Hoch/Mittel/Niedrig) |
| State-Badge | Freigabestatus (Draft/Approved/etc.) |
| Kategorie-Badge | Thematische Kategorie |
| Zielgruppe-Badge | Enterprise/Behoerden/Anbieter/Alle/etc. |

---

## Unabhaengige Taxonomie

### Eigenes Klassifikationssystem

Die Canonical Control Library verwendet ein **eigenes Domain-Schema**, das sich bewusst von
proprietaeren Frameworks unterscheidet. Die Domains werden **automatisch** durch den
Control Generator vergeben, basierend auf dem Inhalt der Quelldokumente.

### 16 Standard-Domains

| Domain | Name | Beschreibung |
|--------|------|-------------|
| AUTH | Identity & Access Management | Authentisierung, MFA, Token-Management |
| CRYP | Cryptographic Operations | Key Management, Rotation, HSM |
| NET | Network & Transport Security | TLS, Zertifikate, Netzwerk-Haertung |
| DATA | Data Governance & Classification | Datenklassifikation, Schutzmassnahmen |
| LOG | Security Operations & Logging | Privacy-Aware Logging, SIEM |
| ACC | Access Control | Zugriffskontrolle, Berechtigungen |
| SEC | IT Security | Schwachstellen, Haertung, Konfiguration |
| INC | Incident Management | Vorfallmanagement, Wiederherstellung |
| AI | Artificial Intelligence | KI-Compliance, Bias, Transparenz |
| COMP | Compliance | Konformitaet, Audit, Zertifizierung |
| GOV | Government & Public Administration | Behoerden, Verwaltung, Aufsicht |
| LAB | Labor Law | Arbeitsrecht, Arbeitsschutz |
| FIN | Financial Regulation | Finanzregulierung, BaFin |
| TRD | Trade Regulation | Gewerbe, Handelsrecht |
| ENV | Environmental | Umweltschutz, Nachhaltigkeit |
| HLT | Health | Gesundheit, Medizinprodukte |

### Spezialisierte Domains

Neben den 16 Standard-Domains gibt es ueber 80 weitere Domains fuer spezifische Themen:
CRA, ARC (Architektur), API, PKI, SUP (Supply Chain), VUL, BCP, PHY u.v.m.

### ID-Format

Control-IDs folgen dem Muster `DOMAIN-NNN` (z.B. AUTH-001, SEC-042). Dieses Format ist
**nicht von BSI oder anderen proprietaeren Standards abgeleitet**, sondern folgt einem
allgemein ueblichen Nummerierungsschema.

!!! warning "Keine BSI-Nomenklatur"
    Die Domains verwenden bewusst KEINE BSI-Bezeichner (O.Auth_*, O.Netz_*).

---

## Offene Referenzquellen

Alle Controls sind in mindestens einer der folgenden **frei zugaenglichen** Quellen verankert:

### OWASP (CC BY-SA 4.0 — kommerziell erlaubt)

- **ASVS** — Application Security Verification Standard v4.0.3
- **MASVS** — Mobile Application Security Verification Standard v2.1
- **Top 10** — OWASP Top 10 (2021)
- **Cheat Sheets** — OWASP Cheat Sheet Series
- **SAMM** — Software Assurance Maturity Model

### NIST (Public Domain — keine Einschraenkungen)

- **SP 800-53 Rev.5** — Security and Privacy Controls
- **SP 800-63B** — Digital Identity Guidelines (Authentication)
- **SP 800-57** — Key Management Recommendations
- **SP 800-52 Rev.2** — TLS Implementation Guidelines
- **SP 800-92** — Log Management Guide
- **SP 800-218 (SSDF)** — Secure Software Development Framework

### ENISA (CC BY 4.0 — kommerziell erlaubt)

- Good Practices for IoT/Mobile Security
- Data Protection Engineering
- Algorithms, Key Sizes and Parameters Report

### Weitere offene Quellen

- **SLSA** (Supply-chain Levels for Software Artifacts) — Google Open Source
- **CIS Controls v8** (CC BY-NC-ND — nur fuer interne Analyse)
- **CISA Secure by Design** — US-Behoerde (Public Domain)

---

## Geschuetzte Quellen — Nur interne Analyse

Die folgenden Quellen werden **ausschliesslich intern zur Analyse** verwendet.
Kein Text, keine Struktur, keine Bezeichner aus diesen Quellen erscheinen im Produkt.

### BSI (Nutzungsbedingungen — kommerziell eingeschraenkt)

- TR-03161 Teil 1-3 (Mobile, Web, Hintergrunddienste)
- Nutzung: TDM unter UrhG §44b, Kopien werden geloescht
- Kein Shipping von Zitaten, Embeddings oder Strukturen

### ISO/IEC (Kostenpflichtig — kein Shipping)

- ISO 27001, ISO 27002
- Nutzung: Nur als Referenz fuer Mapping, kein Text im Produkt

### ETSI (Restriktiv — kein kommerzieller Gebrauch)

- Nutzung: Nur als Hintergrundwissen, kein direkter Einfluss

### Trennungsprinzip

| Ebene | Geschuetzte Quelle | Offene Quelle |
|-------|--------------------|---------------|
| Analyse | Darf gelesen werden | Darf gelesen werden |
| Inspiration | Darf Ideen liefern | Darf Ideen liefern |
| Formulierung | Keine Uebernahme | Darf zitiert werden |
| Struktur | Keine Uebernahme | Darf verwendet werden |
| Produkttext | Nicht erlaubt | Erlaubt |

---

## Verifikationsmethoden

Jedes Control wird einer von vier Verifikationsmethoden zugeordnet. Dies bestimmt,
**wie** ein Kunde den Nachweis fuer die Einhaltung erbringen kann:

| Methode | Beschreibung | Beispiele |
|---------|-------------|-----------|
| **Code Review** | Quellcode-Inspektion | Input-Validierung, Encryption-Konfiguration, Auth-Logic |
| **Dokument** | Richtlinien, Prozesse, Schulungen | Notfallplaene, Schulungsnachweise, Datenschutzkonzepte |
| **Tool** | Automatisierte Tools/Scans | SIEM-Logs, Vulnerability-Scans, Monitoring-Dashboards |
| **Hybrid** | Kombination mehrerer Methoden | Zugriffskontrollen (Code + Policy + Tool) |

### Bedeutung fuer Kunden

- **Code Review Controls** koennen direkt im SDK-Scan geprueft werden
- **Dokument Controls** erfordern manuelle Uploads (PDFs, Links)
- **Tool Controls** koennen per API-Integration automatisch nachgewiesen werden
- **Hybrid Controls** benoetigen mehrere Nachweisarten

---

## Thematische Kategorien (23)

Controls sind in thematische Kategorien gruppiert:

| Kategorie | Beschreibung |
|-----------|-------------|
| `encryption` | Verschluesselung, Kryptographie, Key Management |
| `authentication` | Authentifizierung, Login, MFA, Session-Management |
| `network` | Netzwerk, Firewall, VPN, Segmentierung |
| `data_protection` | Datenschutz, DSGVO, Anonymisierung |
| `logging` | Protokollierung, Monitoring, SIEM |
| `incident` | Vorfallmanagement, Meldepflichten |
| `continuity` | Business Continuity, Disaster Recovery, Backups |
| `compliance` | Konformitaet, Audit, Zertifizierung |
| `supply_chain` | Lieferkette, Vendor Risk, SBOM |
| `physical` | Physische Sicherheit, Zutritt |
| `personnel` | Schulung, Security Awareness |
| `application` | Software, Code Review, API, SAST/DAST |
| `system` | Haertung, Patch, Konfiguration |
| `risk` | Risikobewertung, -analyse, -management |
| `governance` | ISMS, Richtlinien, Sicherheitsorganisation |
| `hardware` | Hardware, Firmware, TPM, Secure Boot |
| `identity` | IAM, SSO, Federation, Verzeichnisdienste |
| `public_administration` | Behoerden, Verwaltung |
| `labor_law` | Arbeitsrecht, Arbeitsschutz |
| `finance` | Finanzregulierung, Rechnungslegung |
| `trade_regulation` | Gewerbe, Handelsrecht |
| `environmental` | Umweltschutz, Nachhaltigkeit |
| `health` | Gesundheit, Medizinprodukte |

!!! info "Abgrenzung zu Domains"
    Kategorien sind **thematisch**, Domains (AUTH, NET, etc.) sind **strukturell**.
    Ein Control AUTH-005 (Domain AUTH) hat die Kategorie "authentication",
    aber ein Control NET-012 (Domain NET) koennte ebenfalls die Kategorie
    "authentication" haben, wenn es um Netzwerk-Authentifizierung geht.

---

## Master Library Strategie

### RAG-First Ansatz

Die Canonical Control Library folgt einer **RAG-First-Strategie** in Wellen:

| Welle | Quellen | Lizenzregel | Vorteil |
|-------|---------|------------|---------|
| 1 | OWASP (ASVS, MASVS, Top10) | Rule 2 (CC-BY-SA, Zitation) | Originaltext + Zitation |
| 2 | NIST (SP 800-53, CSF, SSDF) | Rule 1 (Public Domain) | Voller Text, keine Einschraenkungen |
| 3 | EU-Verordnungen (DSGVO, AI Act, NIS2, CRA) | Rule 1 (EU Law) | Gesetzestext + Erklaerung |
| 4 | Deutsche Gesetze (BDSG, TTDSG, TKG) | Rule 1 (DE Law) | Gesetzestext + Erklaerung |

### Dedup gegen BSI Rule-3 Controls

Die BSI Rule-3 Controls werden gegen die neuen Rule 1+2 Controls abgeglichen:

- Wenn ein BSI-Control ein Duplikat eines OWASP/NIST-Controls ist → **OWASP/NIST bevorzugt**
  (weil Originaltext + Zitation erlaubt)
- BSI-Duplikate werden als `deprecated` markiert
- Tags und Anchors werden in den behaltenen Control zusammengefuehrt

---

## Automatisierte Validierung

Jedes Control wird bei jedem Commit automatisch geprueft:

### 1. Schema-Validierung

- Alle Pflichtfelder vorhanden
- Control-ID Format: `^[A-Z]{2,6}-[0-9]{3}$`
- Severity: low, medium, high, critical
- Risk Score: 0-10

### 2. No-Leak Scanner

Regex-Pruefung gegen verbotene Muster in produktfaehigen Feldern:

- `O.[A-Za-z]+_[0-9]+` — BSI Objective-IDs
- `TR-03161` — Direkte BSI-TR-Referenzen
- `BSI-TR-` — BSI-spezifische Locators
- `Anforderung [A-Z].[0-9]+` — BSI-Anforderungsformat

### 3. Open Anchor Check

Jedes freigegebene Control muss mindestens 1 Open-Source-Referenz haben.

### 4. Too-Close Detektor (5 Metriken)

| Metrik | Warn | Fail | Beschreibung |
|--------|------|------|-------------|
| Exact Phrase | ≥8 Tokens | ≥12 Tokens | Laengste identische Token-Sequenz |
| Token Overlap | ≥0.20 | ≥0.30 | Jaccard-Aehnlichkeit der Token-Mengen |
| 3-Gram Jaccard | ≥0.10 | ≥0.18 | Zeichenketten-Aehnlichkeit |
| Embedding Cosine | ≥0.86 | ≥0.92 | Semantische Aehnlichkeit (bge-m3) |
| LCS Ratio | ≥0.35 | ≥0.50 | Longest Common Subsequence |

**Entscheidungslogik:**

- **PASS** — Kein Fail + max 1 Warn
- **WARN** — Max 2 Warn, kein Fail → Human Review erforderlich
- **FAIL** — Irgendein Fail → Blockiert, Umformulierung noetig

---

## Live-Daten im Frontend

### Lizenz-Matrix

Tabelle aller `canonical_control_licenses` mit Berechtigungsbadges:

| Feld | Beschreibung |
|------|-------------|
| `license_id` | Eindeutige Lizenz-ID (z.B. `OWASP_CC_BY_SA`) |
| `name` | Lizenzname |
| `commercial_use` | `allowed` / `restricted` / `prohibited` / `unclear` |
| `ai_training_restriction` | KI-Training-Einschraenkung |
| `tdm_allowed_under_44b` | TDM nach UrhG §44b erlaubt? (`yes` / `no` / `unclear`) |
| `deletion_required` | Loeschpflicht nach Analyse? |

**API:** `GET /v1/canonical/licenses`

### Quellenregister

Karten fuer jede `canonical_control_sources` mit 4 Berechtigungsstufen:

| Feld | Beschreibung |
|------|-------------|
| `source_id` | Eindeutige Quell-ID (z.B. `OWASP_ASVS`) |
| `title` | Quellenname |
| `publisher` | Herausgeber |
| `license_name` | Verknuepfte Lizenz |
| `allowed_analysis` | Analyse erlaubt? |
| `allowed_store_excerpt` | Auszuege speichern erlaubt? |
| `allowed_ship_embeddings` | Embeddings im Produkt erlaubt? |
| `allowed_ship_in_product` | Text im Produkt erlaubt? |
| `vault_retention_days` | Aufbewahrungsfrist in Tagen |
| `vault_access_tier` | `restricted` / `internal` / `public` |

**API:** `GET /v1/canonical/sources`

---

## Quelldateien

| Datei | Beschreibung |
|-------|-------------|
| `admin-compliance/app/sdk/control-provenance/page.tsx` | Frontend (10 Sektionen + 2 Live-Daten-Tabellen) |
| `backend-compliance/migrations/044_canonical_control_library.sql` | DB-Schema (Licenses, Sources, Mappings) |
| `backend-compliance/compliance/api/canonical_control_routes.py` | API: `/v1/canonical/licenses`, `/v1/canonical/sources` |

---

## Verwandte Dokumentation

- [Canonical Control Library (CP-CLIB)](canonical-control-library.md) — Domains, Datenmodell, Pipeline, Tests
- [Control Generator Pipeline](control-generator-pipeline.md) — 7-Stufen-Pipeline, QA, Recital-Erkennung
