// Package ucca implements the Unified Compliance Control Assessment engine package ucca // loadBuiltInRules loads the built-in compliance rules func (e *Engine) loadBuiltInRules() { rules := []Rule{ // DSGVO Rules { ID: "DSGVO-001", Name: "Verarbeitungsverzeichnis erforderlich", Description: "Ein Verzeichnis aller Verarbeitungstätigkeiten muss geführt werden", Regulation: "DSGVO", Article: "30", Severity: "HIGH", Category: "DOCUMENTATION", Conditions: []string{"no_processing_activities"}, }, { ID: "DSGVO-002", Name: "Technische und organisatorische Maßnahmen", Description: "Angemessene TOMs müssen implementiert sein", Regulation: "DSGVO", Article: "32", Severity: "HIGH", Category: "SECURITY", Conditions: []string{"no_toms"}, }, { ID: "DSGVO-003", Name: "Datenschutz-Folgenabschätzung", Description: "DSFA bei hohem Risiko erforderlich", Regulation: "DSGVO", Article: "35", Severity: "HIGH", Category: "RISK", Conditions: []string{"high_risk_processing", "no_dsfa"}, }, { ID: "DSGVO-004", Name: "Betroffenenrechte", Description: "Prozesse für DSR-Anfragen müssen etabliert sein", Regulation: "DSGVO", Article: "15-22", Severity: "CRITICAL", Category: "RIGHTS", Conditions: []string{"no_dsr_process"}, }, { ID: "DSGVO-005", Name: "Einwilligungsmanagement", Description: "Einwilligungen müssen dokumentiert und nachweisbar sein", Regulation: "DSGVO", Article: "7", Severity: "HIGH", Category: "CONSENT", Conditions: []string{"no_consent_management"}, }, { ID: "DSGVO-006", Name: "Datenschutzbeauftragter", Description: "DSB muss benannt sein wenn erforderlich", Regulation: "DSGVO", Article: "37", Severity: "MEDIUM", Category: "ORGANIZATION", Conditions: []string{"dpo_required", "no_dpo"}, }, { ID: "DSGVO-007", Name: "Auftragsverarbeitung", Description: "AVV mit allen Auftragsverarbeitern erforderlich", Regulation: "DSGVO", Article: "28", Severity: "HIGH", Category: "CONTRACTS", Conditions: []string{"has_processors", "missing_dpa"}, }, { ID: "DSGVO-008", Name: "Löschkonzept", Description: "Löschfristen und -prozesse müssen definiert sein", Regulation: "DSGVO", Article: "17", Severity: "MEDIUM", Category: "RETENTION", Conditions: []string{"no_retention_policies"}, }, // NIS2 Rules { ID: "NIS2-001", Name: "Risikomanagement-Maßnahmen", Description: "Umfassende Cybersecurity-Risikomanagement-Maßnahmen erforderlich", Regulation: "NIS2", Article: "21", Severity: "CRITICAL", Category: "RISK", Conditions: []string{"no_risk_management"}, }, { ID: "NIS2-002", Name: "Incident-Meldung", Description: "Meldepflicht bei Sicherheitsvorfällen", Regulation: "NIS2", Article: "23", Severity: "CRITICAL", Category: "INCIDENT", Conditions: []string{"no_incident_process"}, }, { ID: "NIS2-003", Name: "Supply Chain Security", Description: "Sicherheit der Lieferkette muss gewährleistet sein", Regulation: "NIS2", Article: "21.2d", Severity: "HIGH", Category: "SUPPLY_CHAIN", Conditions: []string{"no_supply_chain_security"}, }, { ID: "NIS2-004", Name: "Business Continuity", Description: "Geschäftskontinuitätsmanagement erforderlich", Regulation: "NIS2", Article: "21.2c", Severity: "HIGH", Category: "BCM", Conditions: []string{"no_bcm"}, }, { ID: "NIS2-005", Name: "Kryptografie", Description: "Richtlinien für Kryptografie und Verschlüsselung", Regulation: "NIS2", Article: "21.2h", Severity: "MEDIUM", Category: "ENCRYPTION", Conditions: []string{"no_crypto_policy"}, }, // AI Act Rules { ID: "AIACT-001", Name: "KI-Risikobewertung", Description: "Risikoeinstufung des KI-Systems erforderlich", Regulation: "AI_ACT", Article: "6", Severity: "CRITICAL", Category: "RISK", Conditions: []string{"uses_ai", "no_ai_risk_assessment"}, }, { ID: "AIACT-002", Name: "Hochrisiko-KI Dokumentation", Description: "Technische Dokumentation für Hochrisiko-KI", Regulation: "AI_ACT", Article: "11", Severity: "HIGH", Category: "DOCUMENTATION", Conditions: []string{"high_risk_ai", "no_ai_documentation"}, }, { ID: "AIACT-003", Name: "Datenqualität", Description: "Anforderungen an Trainingsdaten", Regulation: "AI_ACT", Article: "10", Severity: "HIGH", Category: "DATA", Conditions: []string{"high_risk_ai", "no_data_governance"}, }, { ID: "AIACT-004", Name: "Menschliche Aufsicht", Description: "Menschliche Überwachung muss gewährleistet sein", Regulation: "AI_ACT", Article: "14", Severity: "HIGH", Category: "OVERSIGHT", Conditions: []string{"high_risk_ai", "no_human_oversight"}, }, { ID: "AIACT-005", Name: "Transparenz", Description: "Transparenzanforderungen für KI-Systeme", Regulation: "AI_ACT", Article: "13", Severity: "MEDIUM", Category: "TRANSPARENCY", Conditions: []string{"uses_ai", "no_ai_transparency"}, }, // Additional cross-regulation rules { ID: "CROSS-001", Name: "Zugriffskontrolle", Description: "Implementierung von Zugriffskontrollen", Regulation: "MULTIPLE", Article: "DSGVO-32, NIS2-21", Severity: "HIGH", Category: "ACCESS_CONTROL", Conditions: []string{"no_access_controls"}, }, { ID: "CROSS-002", Name: "Schulungen", Description: "Regelmäßige Mitarbeiterschulungen", Regulation: "MULTIPLE", Article: "DSGVO-39, NIS2-20", Severity: "MEDIUM", Category: "TRAINING", Conditions: []string{"no_training_program"}, }, { ID: "CROSS-003", Name: "Audit-Protokollierung", Description: "Protokollierung sicherheitsrelevanter Ereignisse", Regulation: "MULTIPLE", Article: "DSGVO-32, NIS2-21", Severity: "HIGH", Category: "LOGGING", Conditions: []string{"no_audit_logging"}, }, } for i := range rules { e.rules[rules[i].ID] = &rules[i] } } // loadBuiltInRegulations loads the built-in regulations func (e *Engine) loadBuiltInRegulations() { regulations := []Regulation{ { Code: "DSGVO", Name: "Datenschutz-Grundverordnung", Description: "EU-Verordnung 2016/679 zum Schutz natürlicher Personen bei der Verarbeitung personenbezogener Daten", Articles: []string{"5", "6", "7", "9", "12-22", "24-32", "33-34", "35-36", "37-39", "44-49"}, Effective: "2018-05-25", }, { Code: "NIS2", Name: "NIS 2 Directive", Description: "EU-Richtlinie 2022/2555 über Maßnahmen für ein hohes gemeinsames Cybersicherheitsniveau", Articles: []string{"20", "21", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32"}, Effective: "2024-10-17", }, { Code: "AI_ACT", Name: "EU AI Act", Description: "EU-Verordnung zur Festlegung harmonisierter Vorschriften für künstliche Intelligenz", Articles: []string{"5", "6", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "52"}, Effective: "2025-02-02", }, { Code: "TDDDG", Name: "Telekommunikation-Digitale-Dienste-Datenschutz-Gesetz", Description: "Deutsches Gesetz zum Datenschutz bei Telemedien und Telekommunikation", Articles: []string{"1-30"}, Effective: "2021-12-01", }, { Code: "BDSG", Name: "Bundesdatenschutzgesetz", Description: "Deutsches Bundesdatenschutzgesetz", Articles: []string{"1-86"}, Effective: "2018-05-25", }, } for i := range regulations { e.regulations[regulations[i].Code] = ®ulations[i] } } // loadBuiltInControls loads the built-in controls catalog func (e *Engine) loadBuiltInControls() { controls := []Control{ // Access Control { ID: "AC-01", Name: "Zugriffskontrollrichtlinie", Description: "Dokumentierte Richtlinie für Zugriffskontrollen", Domain: "ACCESS_CONTROL", Category: "POLICY", Objective: "Etablierung einer konsistenten Zugriffskontrolle", Guidance: "Definieren Sie Rollen, Verantwortlichkeiten und Prozesse", Evidence: []string{"Policy-Dokument", "Genehmigungsnachweis"}, }, { ID: "AC-02", Name: "Benutzerkontenverwaltung", Description: "Verwaltung von Benutzerkonten und Zugriffsrechten", Domain: "ACCESS_CONTROL", Category: "TECHNICAL", Objective: "Kontrolle über Benutzerzugriffe", Guidance: "Implementieren Sie Prozesse für Anlage, Änderung und Löschung", Evidence: []string{"Prozessdokumentation", "IAM-Konfiguration"}, }, { ID: "AC-03", Name: "Multi-Faktor-Authentifizierung", Description: "Implementierung von MFA für kritische Systeme", Domain: "ACCESS_CONTROL", Category: "TECHNICAL", Objective: "Stärkere Authentifizierung", Guidance: "MFA für alle privilegierten Zugriffe und externe Zugänge", Evidence: []string{"MFA-Konfiguration", "Enrollment-Statistik"}, }, // Data Protection { ID: "DP-01", Name: "Datenverschlüsselung", Description: "Verschlüsselung von Daten at rest und in transit", Domain: "DATA_PROTECTION", Category: "TECHNICAL", Objective: "Schutz der Vertraulichkeit von Daten", Guidance: "TLS 1.3 für Transit, AES-256 für Rest", Evidence: []string{"Zertifikate", "Verschlüsselungskonfiguration"}, }, { ID: "DP-02", Name: "Datenklassifizierung", Description: "Schema zur Klassifizierung von Daten", Domain: "DATA_PROTECTION", Category: "ORGANIZATIONAL", Objective: "Angemessener Schutz basierend auf Sensitivität", Guidance: "Definieren Sie Klassifizierungsstufen und Handhabungsregeln", Evidence: []string{"Klassifizierungsschema", "Inventar"}, }, { ID: "DP-03", Name: "Datensicherung", Description: "Regelmäßige Backups kritischer Daten", Domain: "DATA_PROTECTION", Category: "TECHNICAL", Objective: "Wiederherstellbarkeit von Daten", Guidance: "3-2-1 Backup-Regel, regelmäßige Tests", Evidence: []string{"Backup-Logs", "Restore-Tests"}, }, // Incident Response { ID: "IR-01", Name: "Incident-Response-Plan", Description: "Dokumentierter Plan für Sicherheitsvorfälle", Domain: "INCIDENT_RESPONSE", Category: "ORGANIZATIONAL", Objective: "Strukturierte Reaktion auf Vorfälle", Guidance: "Definieren Sie Rollen, Prozesse und Kommunikationswege", Evidence: []string{"IR-Plan", "Kontaktlisten"}, }, { ID: "IR-02", Name: "Incident-Erkennung", Description: "Systeme zur Erkennung von Sicherheitsvorfällen", Domain: "INCIDENT_RESPONSE", Category: "TECHNICAL", Objective: "Frühzeitige Erkennung von Angriffen", Guidance: "SIEM, IDS/IPS, Log-Monitoring", Evidence: []string{"Monitoring-Konfiguration", "Alert-Regeln"}, }, { ID: "IR-03", Name: "Meldeprozesse", Description: "Prozesse für behördliche Meldungen", Domain: "INCIDENT_RESPONSE", Category: "ORGANIZATIONAL", Objective: "Compliance mit Meldepflichten", Guidance: "72h für DSGVO, 24h für NIS2", Evidence: []string{"Meldeprozess", "Templates"}, }, // Risk Management { ID: "RM-01", Name: "Risikobeurteilungsmethodik", Description: "Standardisierte Methodik zur Risikobewertung", Domain: "RISK_MANAGEMENT", Category: "ORGANIZATIONAL", Objective: "Konsistente Risikobewertung", Guidance: "ISO 27005 oder vergleichbar", Evidence: []string{"Methodik-Dokument", "Schulungsnachweise"}, }, { ID: "RM-02", Name: "Risikoregister", Description: "Dokumentation aller identifizierten Risiken", Domain: "RISK_MANAGEMENT", Category: "DOCUMENTATION", Objective: "Überblick über Risikolandschaft", Guidance: "Regelmäßige Aktualisierung, Maßnahmentracking", Evidence: []string{"Risikoregister", "Review-Protokolle"}, }, { ID: "RM-03", Name: "Risikobehandlung", Description: "Prozess zur Behandlung identifizierter Risiken", Domain: "RISK_MANAGEMENT", Category: "ORGANIZATIONAL", Objective: "Systematische Risikominimierung", Guidance: "Mitigate, Transfer, Accept, Avoid", Evidence: []string{"Behandlungspläne", "Statusberichte"}, }, // Business Continuity { ID: "BC-01", Name: "Business-Impact-Analyse", Description: "Analyse der Geschäftsauswirkungen", Domain: "BUSINESS_CONTINUITY", Category: "ORGANIZATIONAL", Objective: "Identifikation kritischer Prozesse", Guidance: "RTO/RPO für alle kritischen Systeme", Evidence: []string{"BIA-Dokument", "Kritikalitätseinstufung"}, }, { ID: "BC-02", Name: "Kontinuitätsplan", Description: "Plan für Geschäftskontinuität", Domain: "BUSINESS_CONTINUITY", Category: "ORGANIZATIONAL", Objective: "Aufrechterhaltung des Betriebs", Guidance: "Szenarien, Aktivierungskriterien, Ressourcen", Evidence: []string{"BCP-Dokument", "Ressourcenpläne"}, }, { ID: "BC-03", Name: "Disaster-Recovery-Plan", Description: "Plan für Wiederherstellung nach Katastrophen", Domain: "BUSINESS_CONTINUITY", Category: "TECHNICAL", Objective: "Schnelle Wiederherstellung der IT", Guidance: "DR-Standort, Failover-Prozesse, Tests", Evidence: []string{"DRP-Dokument", "Test-Protokolle"}, }, } for i := range controls { e.controls[controls[i].ID] = &controls[i] } }