/**
 * DSFA Massnahmenbibliothek — Vertraulichkeit / Zugriff & Integritaet
 */

import type { CatalogMitigation } from './types'

export const ACCESS_CONTROL_MITIGATIONS: CatalogMitigation[] = [
  {
    id: 'M-ACC-01',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'Multi-Faktor-Authentifizierung (MFA) & Conditional Access',
    description: 'Einfuehrung von MFA fuer alle Benutzerkonten mit Zugriff auf personenbezogene Daten. Conditional Access Policies beschraenken den Zugriff basierend auf Standort, Geraet und Risikobewertung.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['MFA-Policy-Screenshot', 'Conditional-Access-Regeln', 'Login-Statistiken'],
    addressesRiskIds: ['R-CONF-02', 'R-CONF-06'],
    effectiveness: 'high',
  },
  {
    id: 'M-ACC-02',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'Passwort-Policy & Credential-Schutz',
    description: 'Durchsetzung starker Passwort-Richtlinien, Credential-Rotation, Einsatz eines Passwort-Managers und Monitoring auf kompromittierte Zugangsdaten (Breach Detection).',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['Passwort-Policy-Dokument', 'Breach-Detection-Report'],
    addressesRiskIds: ['R-CONF-02'],
    effectiveness: 'medium',
  },
  {
    id: 'M-CONF-01',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'Rollenbasierte Zugriffskontrolle (RBAC) & Least Privilege',
    description: 'Implementierung eines RBAC-Systems mit dem Prinzip der minimalen Berechtigung. Jeder Benutzer erhaelt nur die Rechte, die fuer seine Aufgabe erforderlich sind.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO, Art. 25 Abs. 2 DSGVO',
    evidenceTypes: ['Rollen-Matrix', 'Berechtigungs-Audit-Report', 'Access-Review-Protokoll'],
    addressesRiskIds: ['R-CONF-01', 'R-CONF-03', 'R-INT-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-CONF-02',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'Security Configuration Management',
    description: 'Regelmaessige Ueberpruefung und Haertung der Systemkonfiguration. Automatisierte Konfigurationschecks (CIS Benchmarks) und Monitoring auf Konfigurationsaenderungen.',
    legalBasis: 'Art. 32 Abs. 1 lit. d DSGVO',
    evidenceTypes: ['CIS-Benchmark-Report', 'Konfigurationsaenderungs-Log'],
    addressesRiskIds: ['R-CONF-01'],
    effectiveness: 'high',
  },
  {
    id: 'M-CONF-03',
    type: 'organizational',
    sdmGoals: ['vertraulichkeit'],
    title: 'Regelmaessige Zugriffsrechte-Ueberpruefung (Access Review)',
    description: 'Quartalsweiser Review aller Zugriffsberechtigungen durch Vorgesetzte. Entzug nicht mehr benoetigter Rechte, Offboarding-Prozess bei Mitarbeiteraustritt.',
    legalBasis: 'Art. 32 Abs. 1 lit. d DSGVO',
    evidenceTypes: ['Access-Review-Protokoll', 'Offboarding-Checkliste'],
    addressesRiskIds: ['R-CONF-01', 'R-CONF-03'],
    effectiveness: 'medium',
  },
  {
    id: 'M-CONF-04',
    type: 'technical',
    sdmGoals: ['vertraulichkeit', 'integritaet'],
    title: 'Privileged Access Management (PAM)',
    description: 'Absicherung administrativer Zugriffe durch Just-in-Time-Elevation, Session-Recording und Break-Glass-Prozeduren fuer Notfallzugriffe.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['PAM-Policy', 'Session-Recording-Logs', 'Break-Glass-Protokolle'],
    addressesRiskIds: ['R-CONF-03', 'R-INT-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-CONF-05',
    type: 'organizational',
    sdmGoals: ['vertraulichkeit'],
    title: 'Vier-Augen-Prinzip fuer sensible Operationen',
    description: 'Fuer den Zugriff auf besonders schutzwuerdige Daten oder kritische Systemoperationen ist die Genehmigung durch eine zweite Person erforderlich.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['Prozessbeschreibung', 'Genehmigungsprotokoll'],
    addressesRiskIds: ['R-CONF-03'],
    effectiveness: 'medium',
  },
  {
    id: 'M-CONF-06',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'Verschluesselung at-rest und in-transit',
    description: 'Vollstaendige Verschluesselung personenbezogener Daten bei Speicherung (AES-256) und Uebertragung (TLS 1.3). Verwaltung der Schluessel ueber ein zentrales Key-Management-System.',
    legalBasis: 'Art. 32 Abs. 1 lit. a DSGVO',
    evidenceTypes: ['Verschluesselungs-Policy', 'TLS-Konfigurationsreport', 'KMS-Audit'],
    addressesRiskIds: ['R-CONF-04', 'R-TRANS-01', 'R-AUTO-05'],
    effectiveness: 'high',
  },
  {
    id: 'M-CONF-07',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'End-to-End-Verschluesselung fuer Kommunikation',
    description: 'Einsatz von End-to-End-Verschluesselung fuer sensible Kommunikation (E-Mail, Messaging), sodass auch der Betreiber keinen Zugriff auf die Inhalte hat.',
    legalBasis: 'Art. 32 Abs. 1 lit. a DSGVO',
    evidenceTypes: ['E2E-Konfiguration', 'Testbericht'],
    addressesRiskIds: ['R-CONF-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-CONF-08',
    type: 'technical',
    sdmGoals: ['vertraulichkeit', 'datenminimierung'],
    title: 'Log-Sanitization & PII-Filtering',
    description: 'Automatische Filterung personenbezogener Daten aus Logs, Fehlermeldungen und Debug-Ausgaben. Einsatz von Tokenisierung oder Maskierung.',
    legalBasis: 'Art. 25 Abs. 1 DSGVO, Art. 32 Abs. 1 lit. a DSGVO',
    evidenceTypes: ['Log-Policy', 'PII-Filter-Konfiguration', 'Stichproben-Audit'],
    addressesRiskIds: ['R-CONF-07'],
    effectiveness: 'medium',
  },
]

export const INTEGRITY_MITIGATIONS: CatalogMitigation[] = [
  {
    id: 'M-INT-01',
    type: 'technical',
    sdmGoals: ['integritaet'],
    title: 'Input-Validierung & Injection-Schutz',
    description: 'Konsequente Validierung aller Eingaben, Prepared Statements fuer Datenbankzugriffe, Content Security Policy und Output-Encoding zum Schutz vor Injection-Angriffen.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['SAST-Report', 'Penetrationstest-Bericht', 'WAF-Regeln'],
    addressesRiskIds: ['R-INT-01'],
    effectiveness: 'high',
  },
  {
    id: 'M-INT-02',
    type: 'technical',
    sdmGoals: ['integritaet', 'transparenz'],
    title: 'Audit-Logging & SIEM-Integration',
    description: 'Lueckenlose Protokollierung aller sicherheitsrelevanten Ereignisse mit Weiterleitung an ein SIEM-System. Manipulation-sichere Logs mit Integritaetspruefung.',
    legalBasis: 'Art. 32 Abs. 1 lit. d DSGVO',
    evidenceTypes: ['SIEM-Dashboard-Screenshot', 'Audit-Log-Beispiel', 'Alert-Regeln'],
    addressesRiskIds: ['R-INT-01', 'R-INT-04', 'R-INT-05', 'R-CONF-03', 'R-ORG-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-INT-03',
    type: 'technical',
    sdmGoals: ['integritaet'],
    title: 'Web Application Firewall (WAF) & API-Gateway',
    description: 'Einsatz einer WAF zum Schutz vor OWASP Top 10 Angriffen und eines API-Gateways fuer Rate-Limiting, Schema-Validierung und Anomalie-Erkennung.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['WAF-Regelset', 'API-Gateway-Konfiguration', 'Blockierungs-Statistiken'],
    addressesRiskIds: ['R-INT-01'],
    effectiveness: 'medium',
  },
  {
    id: 'M-INT-04',
    type: 'technical',
    sdmGoals: ['integritaet'],
    title: 'Daten-Synchronisations-Monitoring & Integritaetspruefung',
    description: 'Automatische Ueberwachung von Synchronisationsprozessen mit Checksummen-Vergleich, Konflikterkennung und Alerting bei Inkonsistenzen.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['Sync-Monitoring-Dashboard', 'Checksummen-Report', 'Incident-Log'],
    addressesRiskIds: ['R-INT-02'],
    effectiveness: 'medium',
  },
  {
    id: 'M-INT-05',
    type: 'technical',
    sdmGoals: ['integritaet'],
    title: 'Versionierung & Change-Tracking fuer personenbezogene Daten',
    description: 'Alle Aenderungen an personenbezogenen Daten werden versioniert gespeichert (Audit-Trail). Wer hat wann was geaendert ist jederzeit nachvollziehbar.',
    legalBasis: 'Art. 5 Abs. 1 lit. f DSGVO',
    evidenceTypes: ['Versionierungs-Schema', 'Change-Log-Beispiel'],
    addressesRiskIds: ['R-INT-02', 'R-INT-05'],
    effectiveness: 'medium',
  },
]
