diff --git a/backend-compliance/migrations/055_wiki_cra.sql b/backend-compliance/migrations/055_wiki_cra.sql new file mode 100644 index 0000000..9742334 --- /dev/null +++ b/backend-compliance/migrations/055_wiki_cra.sql @@ -0,0 +1,230 @@ +-- Migration 055: CRA (Cyber Resilience Act) Wiki-Kategorie und Artikel +-- Neue Kategorie + 3 Artikel zum EU Cyber Resilience Act + +-- Kategorie: CRA +INSERT INTO compliance_wiki_categories (id, name, description, icon, sort_order) VALUES +('cra', 'Cyber Resilience Act (CRA)', 'EU-Verordnung fuer Cybersicherheit von Produkten mit digitalen Elementen', 'Shield', 75) +ON CONFLICT (id) DO NOTHING; + +-- Artikel 1: CRA Grundlagen +INSERT INTO compliance_wiki_articles (id, category_id, title, summary, content, legal_refs, tags, relevance, source_urls) VALUES +('cra-grundlagen', 'cra', + 'Cyber Resilience Act — Ueberblick und Pflichten', + 'Der CRA (EU) 2024/2847 verpflichtet Hersteller von Produkten mit digitalen Elementen zu umfassenden Cybersicherheits-Massnahmen ueber den gesamten Produktlebenszyklus.', + '## Ueberblick + +Der **EU Cyber Resilience Act (CRA)**, Verordnung (EU) 2024/2847, ist am **10. Dezember 2024** in Kraft getreten. Er etabliert horizontale Cybersicherheitsanforderungen fuer alle **Produkte mit digitalen Elementen**, die in der EU in Verkehr gebracht werden. + +## Zeitplan + +| Datum | Meilenstein | +|-------|------------| +| 10.12.2024 | Inkrafttreten | +| 11.06.2026 | Konformitaetsbewertungsstellen muessen benannt sein | +| 11.09.2026 | Meldepflicht fuer Schwachstellen und Vorfaelle | +| 11.12.2027 | Volle Anwendung — CE-Kennzeichnung erforderlich | + +## Was sind "Produkte mit digitalen Elementen"? + +Jedes Software- oder Hardware-Produkt, das: +- Eine **Datenverbindung** (direkt oder indirekt) zu einem Geraet oder Netzwerk hat +- **Software** enthaelt, die bestimmungsgemaeß genutzt wird + +**Beispiele:** IoT-Geraete, Firmware, eigenstaendige Software, Betriebssysteme, Router, Smart-Home-Geraete, industrielle Steuerungssysteme. + +## Kernpflichten fuer Hersteller + +### 1. Cybersecurity-Risikobewertung +- Systematische Bewertung der Cybersecurity-Risiken des Produkts +- Dokumentation der Risikoanalyse +- Regelmaessige Aktualisierung + +### 2. Secure Development (SSDLC) +- Sichere Entwicklungsprozesse etablieren +- Code Reviews und Security Testing +- Supply-Chain-Security pruefen + +### 3. Vulnerability Management +- Aktives CVE-Monitoring +- Coordinated Vulnerability Disclosure (CVD) +- Patch-Bereitstellung waehrend des gesamten Support-Zeitraums + +### 4. Security Updates +- Sichere Update-Mechanismen (signiert, integritaetsgeprueft) +- Automatische oder einfache Update-Moeglichkeit fuer Nutzer +- Mindest-Support-Zeitraum: 5 Jahre oder erwartete Produktlebensdauer + +### 5. Software Bill of Materials (SBOM) +- Dokumentation aller Software-Komponenten +- Top-Level-Abhaengigkeiten +- Maschinenlesbares Format + +### 6. Incident Reporting +- **24 Stunden:** Fruehwarnung an ENISA/nationale Behoerde +- **72 Stunden:** Detaillierter Incident Report +- Meldepflicht fuer aktiv ausgenutzte Schwachstellen + +## CE-Kennzeichnung + +Der CRA wird Teil der **CE-Konformitaet**. Ab Dezember 2027 duerfen Produkte ohne Cybersecurity-Konformitaet **nicht mehr in der EU verkauft werden**. + +## Sanktionen + +| Verstoss | Bussgeld | +|----------|----------| +| Wesentliche Anforderungen (Annex I) | Bis 15 Mio. EUR oder 2,5% des Jahresumsatzes | +| Sonstige Pflichten | Bis 10 Mio. EUR oder 2% des Jahresumsatzes | +| Falsche Informationen | Bis 5 Mio. EUR oder 1% des Jahresumsatzes |', + ARRAY['Art. 13 CRA', 'Art. 14 CRA', 'Annex I CRA', 'Annex II CRA', '(EU) 2024/2847'], + ARRAY['cra', 'cybersecurity', 'ce-kennzeichnung', 'iot', 'software', 'sbom', 'vulnerability', 'incident-reporting'], + 'critical', + ARRAY['https://eur-lex.europa.eu/eli/reg/2024/2847/oj/eng']) +ON CONFLICT (id) DO NOTHING; + +-- Artikel 2: CRA Security Controls (Annex I) +INSERT INTO compliance_wiki_articles (id, category_id, title, summary, content, legal_refs, tags, relevance, source_urls) VALUES +('cra-security-controls', 'cra', + 'CRA Annex I — 35 Essential Cybersecurity Requirements', + 'Der CRA definiert in Annex I die wesentlichen Cybersicherheitsanforderungen. Daraus ergeben sich etwa 35 konkrete Security-Controls fuer den gesamten Produktlebenszyklus.', + '## Ueberblick + +Annex I des CRA enthaelt die **Essential Cybersecurity Requirements**. Sie lassen sich in 7 Themenbereiche mit insgesamt etwa 35 konkreten Controls aufteilen. + +## 1. Secure-by-Design / Architektur + +| # | Control | Beschreibung | +|---|---------|-------------| +| 1 | Secure-by-default | Produkte mit sicheren Standardeinstellungen ausliefern | +| 2 | Minimale Angriffsflaeche | Nur notwendige Dienste und Schnittstellen aktivieren | +| 3 | Sichere Systemarchitektur | Sicherheitskritische Komponenten isolieren und schuetzen | +| 4 | Least-Privilege-Prinzip | Minimale Berechtigungen fuer Komponenten und Nutzer | +| 5 | Trennung kritischer Funktionen | Isolation sicherheitskritischer Funktionen | +| 6 | System-Haertung | Deaktivierung unnoetigerServices und Ports | +| 7 | Manipulationsschutz | Schutz vor unautorisierter Software-Aenderung | +| 8 | Integritaetspruefung | Signaturen und Integritaetschecks | +| 9 | Zugriffsschutz | Zugriffskontrollen implementieren | + +## 2. Authentifizierung & Zugriffskontrolle + +| # | Control | Beschreibung | +|---|---------|-------------| +| 10 | Starke Authentifizierung | Sichere Authentifizierungsmechanismen | +| 11 | Keine Default-Passwoerter | Keine universellen Standardpasswoerter | +| 12 | Credential-Management | Sichere Verwaltung von Zugangsdaten | +| 13 | Sitzungsmanagement | Sichere Session-Verwaltung | +| 14 | Brute-Force-Schutz | Schutz vor Brute-Force-Angriffen | +| 15 | Autorisierung | Rollenbasierte Zugriffskontrolle | + +## 3. Kryptografie & Datenschutz + +| # | Control | Beschreibung | +|---|---------|-------------| +| 16 | Datenverschluesselung | Verschluesselung sensibler Daten | +| 17 | Speicher-Schutz | Schutz gespeicherter Daten (at-rest) | +| 18 | Transport-Schutz | Schutz uebertragener Daten (in-transit) | +| 19 | Schluesselmanagement | Sicheres kryptografisches Schluesselmanagement | +| 20 | Schluesselschutz | Schutz kryptografischer Schluessel vor Zugriff | + +## 4. Software-Lifecycle-Security + +| # | Control | Beschreibung | +|---|---------|-------------| +| 21 | Secure Development Lifecycle | Strukturierter SSDLC-Prozess | +| 22 | Code Reviews | Systematische Code-Ueberpruefungen | +| 23 | Sichere Entwicklungspraktiken | Static Analysis, SAST, DAST | +| 24 | Supply-Chain-Security | Pruefung von Drittanbieter-Komponenten | +| 25 | Dependency-Monitoring | Ueberwachung von Abhaengigkeiten | +| 26 | SBOM | Software Bill of Materials fuehren | + +## 5. Logging, Monitoring & Incident Detection + +| # | Control | Beschreibung | +|---|---------|-------------| +| 27 | Security-Logging | Protokollierung sicherheitsrelevanter Ereignisse | +| 28 | Ereignis-Monitoring | Ueberwachung sicherheitsrelevanter Events | +| 29 | Anomalie-Erkennung | Erkennung von Angriffen oder Anomalien | +| 30 | Log-Integritaet | Schutz der Protokoll-Integritaet | + +## 6. Update- und Patch-Management + +| # | Control | Beschreibung | +|---|---------|-------------| +| 31 | Sichere Update-Mechanismen | Sichere Verfahren fuer Software-Updates | +| 32 | Update-Authentizitaet | Signaturen fuer Updates | +| 33 | Update-Integritaet | Integritaetspruefung bei Updates | +| 34 | Lifecycle-Support | Security-Updates waehrend des gesamten Lebenszyklus | + +## 7. Vulnerability-Handling + +| # | Control | Beschreibung | +|---|---------|-------------| +| 35 | Vulnerability-Management | Strukturierter Prozess fuer Schwachstellen-Behandlung | + +Dazu gehoert: +- Koordinierte Offenlegung (Coordinated Vulnerability Disclosure) +- CVE-Monitoring +- Patch-Bereitstellung innerhalb angemessener Frist + +## Automatisierungspotential + +Diese 35 Controls koennen automatisch zu folgenden Dokumenten fuehren: +- **Cybersecurity Policy** (Grundsatzdokument) +- **Secure Development Policy** (SSDLC) +- **Vulnerability Management Policy** (CVD, Patching) +- **Incident Response Policy** (24h/72h Meldung) +- **SBOM-Dokumentation** (Komponentenliste)', + ARRAY['Annex I CRA', 'Art. 13 CRA', 'Art. 14 CRA', 'Art. 15 CRA'], + ARRAY['security-controls', 'annex-i', 'secure-by-design', 'authentifizierung', 'kryptografie', 'sbom', 'vulnerability', 'patching'], + 'critical', + ARRAY['https://eur-lex.europa.eu/eli/reg/2024/2847/oj/eng']) +ON CONFLICT (id) DO NOTHING; + +-- Artikel 3: CRA + NIS2 + AI Act Zusammenspiel +INSERT INTO compliance_wiki_articles (id, category_id, title, summary, content, legal_refs, tags, relevance, source_urls) VALUES +('cra-regulierungsrahmen', 'cra', + 'CRA + NIS2 + AI Act — Das neue EU-Security-Framework', + 'CRA, NIS2-Richtlinie und AI Act bilden zusammen ein umfassendes EU-Sicherheitsframework fuer digitale Produkte, Infrastrukturen und KI-Systeme.', + '## Ueberblick + +Die EU hat mit drei zentralen Rechtsakten ein zusammenhaengendes Framework fuer Cybersicherheit und KI-Regulierung geschaffen. Fuer Softwarehersteller, die KI einsetzen, sind alle drei relevant. + +## Die drei Saeulen + +| Verordnung | Fokus | Zielgruppe | Anwendung ab | +|-----------|-------|-----------|-------------| +| **CRA** (2024/2847) | Produkt-Cybersecurity | Hersteller von Hardware/Software | 12/2027 | +| **NIS2** (2022/2555) | Infrastruktur-Security | Betreiber wesentlicher Dienste | 10/2024 (national) | +| **AI Act** (2024/1689) | KI-Regulierung | Anbieter/Betreiber von KI-Systemen | 08/2025 (stufenweise) | + +## Abgrenzung + +### CRA vs. NIS2 +- **CRA**: Regelt die **Sicherheit des Produkts** selbst (Design, Updates, Vulnerability Handling) +- **NIS2**: Regelt die **Sicherheit der Organisation** (Risikomanagement, Incident Response, Supply Chain) +- **Ueberschneidung**: Beide fordern Incident Reporting und Supply-Chain-Security + +### CRA vs. AI Act +- **CRA**: Cybersecurity-Anforderungen an **alle** digitalen Produkte +- **AI Act**: Zusaetzliche Anforderungen fuer Produkte, die **KI enthalten** (Transparenz, Erklaerbarkeit, Risikobewertung) +- **Ueberschneidung**: Hochrisiko-KI-Systeme muessen sowohl CRA als auch AI Act erfuellen + +## Synergien nutzen + +Ein Unternehmen, das alle drei Verordnungen erfuellen muss, kann Synergien nutzen: + +| Thema | CRA | NIS2 | AI Act | +|-------|-----|------|--------| +| Risikobewertung | Produkt-Risiko | Org-Risiko | KI-Risiko | +| Incident Reporting | 24h/72h | 24h/72h | Meldepflicht | +| Supply Chain | SBOM | Lieferantenpruefung | Drittanbieter-KI | +| Dokumentation | Tech. Doku | Policies | KI-Registrierung | +| Audit/Konformitaet | CE-Kennzeichnung | Zertifizierung | Konformitaetsbewertung | + +## Empfehlung + +Bauen Sie ein **integriertes Compliance-Management-System** auf, das alle drei Verordnungen abdeckt. Gemeinsame Policies (Security, Incident Response, Risk Management) koennen fuer alle drei Regelwerke genutzt werden.', + ARRAY['(EU) 2024/2847', '(EU) 2022/2555', '(EU) 2024/1689', 'Art. 13 CRA', 'Art. 21 NIS2', 'Art. 9 AI Act'], + ARRAY['cra', 'nis2', 'ai-act', 'security-framework', 'compliance', 'synergien', 'ce-kennzeichnung'], + 'important', + ARRAY[]::text[]) +ON CONFLICT (id) DO NOTHING; diff --git a/backend-compliance/migrations/056_cra_cybersecurity_policy.sql b/backend-compliance/migrations/056_cra_cybersecurity_policy.sql new file mode 100644 index 0000000..74cfb2b --- /dev/null +++ b/backend-compliance/migrations/056_cra_cybersecurity_policy.sql @@ -0,0 +1,515 @@ +-- Migration 056: CRA Cybersecurity Policy Template +-- Unternehmensrichtlinie Cybersecurity basierend auf EU Cyber Resilience Act, ISO 27001 Best Practices + +INSERT INTO compliance_legal_templates ( + id, tenant_id, document_type, title, description, content, + placeholders, language, jurisdiction, + license_id, license_name, source_name, + attribution_required, is_complete_document, version, status, + created_at, updated_at +) VALUES ( + gen_random_uuid(), + '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e', + 'cybersecurity_policy', + 'Unternehmensrichtlinie Cybersecurity (CRA-konform)', + 'Umfassende Cybersecurity-Richtlinie basierend auf dem EU Cyber Resilience Act (EU) 2024/2847, ISO 27001 und Secure-Development-Standards. Deckt Governance, Risikomanagement, Secure Development, Vulnerability Management, Incident Response und Compliance ab.', + $template$# Unternehmensrichtlinie Cybersecurity + +**{{COMPANY_NAME}}** + +*(Cybersecurity Policy — CRA-konform)* + +| Feld | Inhalt | +|------|--------| +| Dokumenttyp | Unternehmensrichtlinie | +| Version | {{DOCUMENT_VERSION}} | +| Datum | {{VERSION_DATE}} | +| Naechste Ueberpruefung | {{NEXT_REVIEW_DATE}} | +| Verantwortlich | {{ISB_NAME}} (CISO/ISB) | +| Freigabe | {{GF_NAME}} (Geschaeftsfuehrung) | +| Vertraulichkeit | Intern | + +--- + +## 1. Zweck der Richtlinie + +Diese Cybersecurity-Richtlinie legt die organisatorischen und technischen Massnahmen fest, mit denen {{COMPANY_NAME}}: + +- Informationssysteme schuetzt +- Cyberrisiken systematisch reduziert +- Gesetzliche Anforderungen erfuellt (insb. EU Cyber Resilience Act, NIS2, DSGVO) +- Sicherheitsvorfaelle erkennt, behandelt und meldet + +Die Richtlinie gilt fuer alle: + +- Mitarbeiterinnen und Mitarbeiter von {{COMPANY_NAME}} +- Externe Dienstleister und Auftragnehmer +- IT-Systeme, Software und Cloud-Services +- Produkte mit digitalen Elementen im Sinne des CRA + +--- + +## 2. Geltungsbereich + +Diese Richtlinie gilt fuer: + +- Unternehmens-IT und Netzwerkinfrastruktur +- Interne Softwareentwicklung +- Cloud-Infrastruktur und SaaS-Dienste +- Datenverarbeitungssysteme +- Produkte mit digitalen Elementen (Software, IoT, Firmware) +- Lieferanten und Dienstleister mit Zugang zu Systemen von {{COMPANY_NAME}} + +Betroffene Assets: + +- Server und Netzwerkkomponenten +- Endgeraete (Laptops, Mobilgeraete) +- Software und Firmware +- Datenbanken und APIs +- Kryptografische Schluessel und Zertifikate + +--- + +## 3. Sicherheitsziele + +Die Cybersecurity-Strategie von {{COMPANY_NAME}} verfolgt folgende Ziele: + +### Vertraulichkeit +Schutz sensibler Daten vor unbefugtem Zugriff. Klassifizierung von Daten nach Schutzbedarf. + +### Integritaet +Sicherstellung, dass Daten und Systeme nicht unautorisiert veraendert werden. Einsatz von Integritaetspruefungen und Signaturen. + +### Verfuegbarkeit +Systeme und Dienste muessen gemaess den vereinbarten SLAs verfuegbar sein. Redundanz und Wiederherstellungsfaehigkeit sicherstellen. + +### Nachvollziehbarkeit +Sicherheitsrelevante Ereignisse muessen lueckenlos dokumentiert und fuer Audits nachvollziehbar sein. + +--- + +## 4. Governance und Verantwortlichkeiten + +### 4.1 Geschaeftsfuehrung + +{{GF_NAME}} ist verantwortlich fuer: + +- Festlegung der Sicherheitsstrategie +- Bereitstellung angemessener Ressourcen +- Ueberwachung der Compliance-Einhaltung +- Jaehrliche Freigabe dieser Richtlinie + +### 4.2 Chief Information Security Officer (CISO/ISB) + +{{ISB_NAME}} ist verantwortlich fuer: + +- Umsetzung der Sicherheitsstrategie +- Risikomanagement und Risikoberichterstattung +- Security-Monitoring und Threat Intelligence +- Koordination des Incident-Response-Teams +- Kontaktperson fuer Behoerden bei Sicherheitsvorfaellen + +### 4.3 Datenschutzbeauftragter + +{{DPO_NAME}} ({{DPO_EMAIL}}) wird bei sicherheitsrelevanten Vorfaellen einbezogen, die personenbezogene Daten betreffen. + +### 4.4 IT-Abteilung + +Verantwortlich fuer: + +- Sichere Infrastruktur und Systemhaertung +- Patch-Management und Update-Bereitstellung +- Netzwerksegmentierung und Firewall-Management +- Monitoring und Log-Management + +### 4.5 Entwicklerteams + +Verantwortlich fuer: + +- Secure Coding und Code Reviews +- Dependency Management und SBOM-Pflege +- Security Testing (SAST, DAST, SCA) +- Vulnerability Remediation + +### 4.6 Alle Mitarbeiter + +Alle Mitarbeiter von {{COMPANY_NAME}} muessen: + +- Sicherheitsrichtlinien einhalten +- Sicherheitsvorfaelle unverzueglich melden +- An jaehrlichen Security-Schulungen teilnehmen +- Phishing-Versuche und verdaechtige Aktivitaeten melden + +--- + +## 5. Risikomanagement + +{{COMPANY_NAME}} fuehrt regelmaessig eine Cyber-Risikoanalyse durch. + +### Prozess + +1. **Identifikation** kritischer Assets und Daten +2. **Bedrohungsanalyse** (Threat Modeling, STRIDE) +3. **Schwachstellenanalyse** (CVE-Monitoring, Vulnerability Scanning) +4. **Risikobewertung** (Eintrittswahrscheinlichkeit x Auswirkung) +5. **Risikobehandlung** (Vermeiden, Reduzieren, Uebertragen, Akzeptieren) + +### Frequenz + +Risikobewertungen erfolgen: + +- Mindestens jaehrlich +- Bei wesentlichen Systemanderungen +- Bei neuen Produkten oder Dienstleistungen +- Nach Sicherheitsvorfaellen + +### Dokumentation + +Alle Risikoanalysen werden dokumentiert und fuer mindestens 3 Jahre aufbewahrt. Die Ergebnisse werden der Geschaeftsfuehrung in Form eines Risikoberichts vorgelegt. + +--- + +## 6. Secure System Architecture + +Systeme von {{COMPANY_NAME}} muessen nach folgenden Prinzipien entwickelt und betrieben werden: + +### Security by Design +Sicherheitsanforderungen werden bereits in der Architekturphase beruecksichtigt. Jedes neue System durchlaeuft ein Security Architecture Review. + +### Security by Default +Systeme werden mit sicheren Grundeinstellungen ausgeliefert. Keine Dienste oder Ports sind standardmaessig aktiviert, die nicht benoetigt werden. + +### Least Privilege +Benutzer und Systeme erhalten nur die minimal notwendigen Berechtigungen. Privilegierte Zugriffe werden gesondert protokolliert. + +### Segmentierung +Kritische Systeme werden durch Netzwerksegmentierung isoliert. Produktiv-, Entwicklungs- und Testumgebungen sind strikt getrennt. + +### Haertung +Alle Systeme werden gemaess anerkannter Haertungsrichtlinien (CIS Benchmarks, BSI IT-Grundschutz) konfiguriert. + +--- + +## 7. Zugriffskontrollen + +### Anforderungen + +- Eindeutige, personalisierte Benutzerkonten +- Starke Passwortrichtlinie (mind. 12 Zeichen, Komplexitaet) +- Multi-Faktor-Authentifizierung (MFA) fuer alle administrativen Zugriffe und externe Zugaenge +- Rollenbasierte Zugriffskontrolle (RBAC) mit regelmaessiger Rezertifizierung +- Automatische Sperrung nach 5 fehlgeschlagenen Login-Versuchen + +### Verboten + +- Gemeinsam genutzte Accounts (Shared Accounts) +- Universal-Default-Passwoerter +- Unverschluesselte Speicherung von Zugangsdaten +- Weitergabe von Zugangsdaten per E-Mail + +### Privileged Access Management + +Administratorzugriffe muessen: + +- Gesondert beantragt und genehmigt werden +- Zeitlich begrenzt sein (Just-in-Time Access) +- Vollstaendig protokolliert werden + +--- + +## 8. Kryptografie + +{{COMPANY_NAME}} verwendet ausschliesslich moderne, anerkannte kryptografische Verfahren. + +### Verschluesselung erforderlich fuer + +- Gespeicherte sensible Daten (at rest) — AES-256 +- Datenuebertraung (in transit) — TLS 1.2+, vorzugsweise TLS 1.3 +- Backups — vollstaendig verschluesselt +- Konfigurationsdaten und Secrets — Vault oder vergleichbar + +### Schluesselmanagement + +- Schluessel muessen sicher gespeichert werden (HSM oder Vault) +- Regelmaessige Rotation (mind. jaehrlich, bei Kompromittierung sofort) +- Zugriff nur fuer autorisierte Personen +- Dokumentation der Schluessel-Lebenszyklen + +### Verbotene Verfahren + +- MD5 und SHA-1 fuer kryptografische Zwecke +- DES und 3DES +- SSL und TLS < 1.2 + +--- + +## 9. Secure Software Development Lifecycle (SSDLC) + +Alle Softwareprodukte von {{COMPANY_NAME}} muessen einen sicheren Entwicklungsprozess durchlaufen. Dies entspricht den Anforderungen des CRA Annex I. + +### Entwicklungsprozess + +1. **Security Requirements** — Sicherheitsanforderungen in User Stories und Epics +2. **Threat Modeling** — Bedrohungsanalyse in der Designphase +3. **Secure Coding** — Einhaltung von Secure-Coding-Standards +4. **Code Review** — Peer Review mit Security-Fokus +5. **Security Testing** — Automatisierte und manuelle Tests +6. **Release-Freigabe** — Security Sign-off vor Deployment + +### Pflichtmassnahmen + +- **Static Application Security Testing (SAST)** — in der CI/CD-Pipeline +- **Software Composition Analysis (SCA)** — Dependency Scanning +- **Dynamic Application Security Testing (DAST)** — vor jedem Major Release +- **Secrets Detection** — Automatische Pruefung auf eingebettete Zugangsdaten +- **Penetration Testing** — mindestens jaehrlich durch externe Tester + +--- + +## 10. Software-Supply-Chain-Security + +{{COMPANY_NAME}} kontrolliert externe Softwarekomponenten systematisch. + +### Software Bill of Materials (SBOM) + +Fuer alle Produkte wird ein SBOM gefuehrt, das mindestens folgende Informationen enthaelt: + +- Name und Version aller Software-Komponenten +- Lizenzinformationen +- Bekannte Schwachstellen (CVE) + +Das SBOM wird bei jedem Release aktualisiert und in maschinenlesbarem Format (CycloneDX oder SPDX) bereitgestellt. + +### Open-Source-Kontrolle + +- Lizenzpruefung vor Aufnahme neuer Abhaengigkeiten +- Monitoring auf bekannte Schwachstellen (CVE) +- Regelmaessige Updates von Abhaengigkeiten + +--- + +## 11. Logging und Monitoring + +### Logging umfasst + +- Erfolgreiche und fehlgeschlagene Login-Versuche +- Administrative Systemanderungen +- Zugriffe auf sensible Daten +- Sicherheitsrelevante Konfigurationsanderungen +- API-Zugriffe und Fehler + +### Anforderungen an Logs + +- Manipulationssicher (append-only, signiert oder WORM) +- Zentral gesammelt (SIEM oder vergleichbar) +- Aufbewahrung mindestens 12 Monate +- Zugriff nur fuer autorisiertes Security-Personal + +### Monitoring + +- Echtzeit-Ueberwachung sicherheitsrelevanter Ereignisse +- Automatische Alarmierung bei Anomalien +- Korrelation von Events aus verschiedenen Quellen + +--- + +## 12. Vulnerability Management + +{{COMPANY_NAME}} betreibt ein strukturiertes Schwachstellenmanagement. + +### Prozess + +1. **Identifikation** — Automatische Scans, Bug Bounty, CVE-Monitoring +2. **Bewertung** — Risikobewertung nach CVSS +3. **Priorisierung** — Kritische Schwachstellen zuerst +4. **Behebung** — Patch-Entwicklung und Deployment +5. **Verifizierung** — Bestaetigung der Behebung +6. **Kommunikation** — Information betroffener Kunden und Behoerden + +### Coordinated Vulnerability Disclosure (CVD) + +{{COMPANY_NAME}} veroeffentlicht eine CVD-Policy. Sicherheitsforscher koennen Schwachstellen an {{SECURITY_EMAIL}} melden. Meldungen werden innerhalb von 5 Werktagen bestaetigt. + +--- + +## 13. Patch- und Update-Management + +Alle Systeme muessen regelmaessig aktualisiert werden. + +### Patchzyklen + +| Risikostufe | Reaktionszeit | +|-------------|---------------| +| Kritisch (CVSS >= 9.0) | 24-72 Stunden | +| Hoch (CVSS 7.0-8.9) | 7 Tage | +| Mittel (CVSS 4.0-6.9) | 30 Tage | +| Niedrig (CVSS < 4.0) | Naechster regulaerer Update-Zyklus | + +### Anforderungen an Updates + +- Alle Updates muessen **digital signiert** sein +- Integritaetspruefung vor Installation +- Rollback-Moeglichkeit bei fehlerhaften Updates +- Automatische Update-Benachrichtigung fuer Kunden +- **Mindest-Support-Zeitraum: 5 Jahre** (gemaess CRA) + +--- + +## 14. Incident Response + +{{COMPANY_NAME}} betreibt einen dokumentierten Incident-Response-Prozess. + +### Schritte + +1. **Detection** — Erkennung durch Monitoring, Meldung oder externe Information +2. **Classification** — Einstufung nach Schweregrad (P1-P4) +3. **Containment** — Sofortige Eindaemmung des Vorfalls +4. **Investigation** — Forensische Analyse und Ursachenermittlung +5. **Recovery** — Wiederherstellung des Normalbetriebs +6. **Reporting** — Dokumentation und Meldung an Behoerden +7. **Lessons Learned** — Nachbereitung und Verbesserung + +### Meldepflichten (CRA-konform) + +| Meldung | Frist | Empfaenger | +|---------|-------|-----------| +| **Fruehwarnung** | 24 Stunden | ENISA / nationale Behoerde | +| **Detaillierter Bericht** | 72 Stunden | ENISA / nationale Behoerde | +| **Abschlussbericht** | 1 Monat | ENISA / nationale Behoerde | + +Bei personenbezogenen Daten gelten zusaetzlich die Fristen nach Art. 33/34 DSGVO (72 Stunden an Aufsichtsbehoerde). + +### Kontakte + +| Rolle | Person | Kontakt | +|-------|--------|---------| +| CISO/ISB | {{ISB_NAME}} | {{ISB_EMAIL}} | +| DSB | {{DPO_NAME}} | {{DPO_EMAIL}} | +| GF | {{GF_NAME}} | {{GF_EMAIL}} | + +--- + +## 15. Security Testing + +Folgende Tests werden regelmaessig durchgefuehrt: + +| Test | Frequenz | Durchfuehrung | +|------|----------|--------------| +| Vulnerability Scans | Woechentlich | Automatisiert (CI/CD) | +| SAST/SCA | Bei jedem Commit | Automatisiert (CI/CD) | +| DAST | Vor Major Releases | Automatisiert + manuell | +| Penetration Tests | Jaehrlich | Externer Dienstleister | +| Red-Team-Tests | Alle 2 Jahre | Externer Dienstleister | +| Social Engineering | Jaehrlich | Externer Dienstleister | + +--- + +## 16. Backup und Wiederherstellung + +### Anforderungen + +- **Taegliche Backups** aller kritischen Systeme und Daten +- **Off-Site-Backups** an geografisch getrenntem Standort +- **Verschluesselung** aller Backup-Daten +- **Wiederherstellungstests** mindestens vierteljaehrlich + +### Recovery-Ziele + +| Metrik | Ziel | +|--------|------| +| Recovery Time Objective (RTO) | {{RTO_HOURS}} Stunden | +| Recovery Point Objective (RPO) | {{RPO_HOURS}} Stunden | + +--- + +## 17. Lieferanten- und Drittanbieter-Management + +Lieferanten mit Zugang zu Systemen oder Daten von {{COMPANY_NAME}} muessen Sicherheitsanforderungen erfuellen. + +### Anforderungen + +- Sicherheitspruefung vor Vertragsabschluss (Security Assessment) +- Sicherheitsanforderungen im Vertrag (Auftragsverarbeitung, SLA) +- Regelmaessige Audits und Compliance-Nachweise +- Incident-Notification-Pflicht innerhalb von 24 Stunden +- Nachweis ueber eigenes Vulnerability Management + +--- + +## 18. Schulungen und Awareness + +Alle Mitarbeiter von {{COMPANY_NAME}} erhalten: + +- **Jaehrliche Security-Awareness-Trainings** +- **Phishing-Simulationen** (mind. 2x jaehrlich) +- **Rollenspezifische Schulungen** (Entwickler: Secure Coding, IT: Incident Response) +- **Onboarding-Schulung** fuer neue Mitarbeiter + +Teilnahme ist verpflichtend. Die Teilnahme wird dokumentiert. + +--- + +## 19. Dokumentation und Compliance + +{{COMPANY_NAME}} dokumentiert: + +- Risikoanalysen und Risikobehandlungsplaene +- Sicherheitskontrollen und deren Wirksamkeit +- Sicherheitsvorfaelle und deren Behandlung +- Software-Updates und Patches +- SBOM fuer alle Produkte +- Audit-Ergebnisse + +Die Dokumentation muss jederzeit fuer Audits und behoerdliche Anfragen verfuegbar sein. + +### Regulatorische Compliance + +Diese Richtlinie dient der Einhaltung folgender Vorschriften: + +- **EU Cyber Resilience Act** (EU) 2024/2847 +- **NIS2-Richtlinie** (EU) 2022/2555 +- **DSGVO** (EU) 2016/679 — technische und organisatorische Massnahmen +- **ISO/IEC 27001** — Best Practices fuer Informationssicherheit + +--- + +## 20. Durchsetzung + +Verstoesse gegen diese Richtlinie koennen je nach Schwere folgende Konsequenzen haben: + +- Disziplinarmassnahmen +- Vertragsstrafen (bei externen Dienstleistern) +- Rechtliche Konsequenzen (bei vorsaetzlichen Verstoessen) + +--- + +## 21. Ueberpruefung und Aktualisierung + +Diese Cybersecurity-Richtlinie wird ueberprueft: + +- **Jaehrlich** durch {{ISB_NAME}} (CISO/ISB) +- Bei **regulatorischen Aenderungen** (neue EU-Verordnungen, nationale Gesetze) +- Nach **groesseren Sicherheitsvorfaellen** +- Bei **wesentlichen Aenderungen** der IT-Infrastruktur oder Produktlandschaft + +Die naechste planmaessige Ueberpruefung ist am **{{NEXT_REVIEW_DATE}}**. + +--- + +## Freigabe + +| | Name | Datum | Unterschrift | +|--|------|-------|-------------| +| Erstellt von | {{ISB_NAME}} (CISO/ISB) | {{VERSION_DATE}} | _________________ | +| Freigegeben von | {{GF_NAME}} (Geschaeftsfuehrung) | {{VERSION_DATE}} | _________________ | + +--- + +*Dieses Dokument ist Eigentum von {{COMPANY_NAME}} und unterliegt der Vertraulichkeitsstufe "Intern".* +$template$, + CAST('["COMPANY_NAME","COMPANY_ADDRESS","COMPANY_CITY","GF_NAME","GF_EMAIL","ISB_NAME","ISB_EMAIL","DPO_NAME","DPO_EMAIL","SECURITY_EMAIL","DOCUMENT_VERSION","VERSION_DATE","NEXT_REVIEW_DATE","RTO_HOURS","RPO_HOURS"]' AS jsonb), + 'de', 'DE', + 'mit', 'MIT License', 'BreakPilot Compliance', + false, true, '1.0.0', 'published', + NOW(), NOW() +) ON CONFLICT DO NOTHING; diff --git a/scripts/ingest-phase-h.sh b/scripts/ingest-phase-h.sh new file mode 100755 index 0000000..825722a --- /dev/null +++ b/scripts/ingest-phase-h.sh @@ -0,0 +1,439 @@ +#!/usr/bin/env bash +# ============================================================================= +# BreakPilot Compliance — Phase H RAG Ingestion +# +# Downloads and ingests ~35 new legal sources into Qdrant: +# - 16 German laws (gesetze-im-internet.de) → bp_compliance_gesetze +# - 18 EU regulations (EUR-Lex PDFs) → bp_compliance_ce +# - 3 framework docs (NIST, HLEG) → bp_compliance_datenschutz +# +# Run on Mac Mini: +# bash ~/Projekte/breakpilot-compliance/scripts/ingest-phase-h.sh +# ============================================================================= +set -euo pipefail + +WORK_DIR="${WORK_DIR:-$HOME/rag-ingestion}" +RAG_URL="${RAG_URL:-https://localhost:8097/api/v1/documents/upload}" +QDRANT_URL="${QDRANT_URL:-http://localhost:6333}" +CURL_OPTS="-sk --connect-timeout 10 --max-time 300" +CURL_OPTS_LARGE="-sk --connect-timeout 10 --max-time 900" + +UPLOADED=0 +FAILED=0 +SKIPPED=0 + +log() { echo "[$(date '+%H:%M:%S')] $*"; } +ok() { echo "[$(date '+%H:%M:%S')] ok $*"; } +warn() { echo "[$(date '+%H:%M:%S')] WARN $*" >&2; } +fail() { echo "[$(date '+%H:%M:%S')] FAIL $*" >&2; } + +download_pdf() { + local url="$1" + local target="$2" + if [[ -f "$target" ]]; then + log "PDF exists: $(basename "$target") (skipping download)" + return 0 + fi + log "Downloading: $(basename "$target")" + curl $CURL_OPTS -L "$url" -o "$target" 2>/dev/null || { + warn "Download failed: $url" + rm -f "$target" + return 0 + } + local fsize + fsize=$(stat -f%z "$target" 2>/dev/null || stat -c%s "$target" 2>/dev/null || echo 0) + if [[ "$fsize" -lt 1000 ]]; then + warn "Download too small (${fsize}B): $(basename "$target")" + rm -f "$target" + fi +} + +download_gesetz_pdf() { + local law_id="$1" + local target="$2" + if [[ -f "$target" ]]; then + log "PDF exists: $(basename "$target") (skipping download)" + return 0 + fi + log "Downloading: $law_id (gesetze-im-internet.de)" + curl $CURL_OPTS_LARGE -L "https://www.gesetze-im-internet.de/${law_id}/gesamt.pdf" -o "$target" 2>/dev/null || { + warn "Download failed: $law_id" + rm -f "$target" + return 0 + } + local fsize + fsize=$(stat -f%z "$target" 2>/dev/null || stat -c%s "$target" 2>/dev/null || echo 0) + if [[ "$fsize" -lt 1000 ]]; then + warn "Download too small (${fsize}B): $law_id" + rm -f "$target" + else + log " Downloaded: $(( fsize / 1024 ))KB" + fi +} + +upload_file() { + local file="$1" + local collection="$2" + local data_type="$3" + local use_case="$4" + local year="$5" + local metadata_json="$6" + local label="${7:-$(basename "$file")}" + + if [[ ! -f "$file" ]]; then + warn "File not found: $file" + FAILED=$((FAILED + 1)) + return 0 + fi + + # Dedup check + local reg_id + reg_id=$(echo "$metadata_json" | python3 -c "import sys,json; print(json.load(sys.stdin).get('regulation_id',''))" 2>/dev/null || echo "") + if [[ -n "$reg_id" ]]; then + local existing + existing=$(curl -sk --max-time 5 -X POST "${QDRANT_URL}/collections/${collection}/points/scroll" \ + -H "Content-Type: application/json" \ + -d "{\"filter\":{\"must\":[{\"key\":\"regulation_id\",\"match\":{\"value\":\"$reg_id\"}}]},\"limit\":1}" \ + 2>/dev/null | python3 -c "import sys,json; r=json.load(sys.stdin).get('result',{}); print(len(r.get('points',[])))" 2>/dev/null || echo "0") + if [[ "$existing" -gt 0 ]] 2>/dev/null; then + log "SKIP (already in Qdrant): $label [regulation_id=$reg_id]" + SKIPPED=$((SKIPPED + 1)) + return 0 + fi + fi + + local filesize + filesize=$(stat -f%z "$file" 2>/dev/null || stat -c%s "$file" 2>/dev/null || echo 0) + if [[ "$filesize" -lt 100 ]]; then + warn "File too small (${filesize}B): $label" + SKIPPED=$((SKIPPED + 1)) + return 0 + fi + + log "Uploading: $label -> $collection ($(( filesize / 1024 ))KB)" + + local curl_opts="$CURL_OPTS" + [[ "$filesize" -gt 256000 ]] && curl_opts="$CURL_OPTS_LARGE" + + local response + response=$(curl $curl_opts -X POST "$RAG_URL" \ + -F "file=@${file}" \ + -F "collection=${collection}" \ + -F "data_type=${data_type}" \ + -F "use_case=${use_case}" \ + -F "year=${year}" \ + -F "chunk_strategy=recursive" \ + -F "chunk_size=512" \ + -F "chunk_overlap=50" \ + -F "metadata_json=${metadata_json}" \ + 2>/dev/null) || true + + if echo "$response" | grep -q '"chunks_count"\|"vectors_indexed"'; then + local chunks + chunks=$(echo "$response" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('chunks_count', d.get('vectors_indexed',0)))" 2>/dev/null || echo "?") + ok "$label -> $chunks chunks" + UPLOADED=$((UPLOADED + 1)) + else + fail "Upload failed: $label" + fail "Response: ${response:0:200}" + FAILED=$((FAILED + 1)) + fi +} + +# ============================================================================= +# PHASE H-1: Downloads +# ============================================================================= +phase_h_download() { + log "==========================================" + log "PHASE H-1: Downloads" + log "==========================================" + mkdir -p "$WORK_DIR/pdfs" "$WORK_DIR/texts" + + # --- EU Regulations (EUR-Lex) --- + log "--- EUR-Lex PDFs ---" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32016R0679" \ + "$WORK_DIR/pdfs/dsgvo_2016_679.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32024R2847" \ + "$WORK_DIR/pdfs/cra_2024_2847.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32024R1689" \ + "$WORK_DIR/pdfs/ai_act_2024_1689.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32022L2555" \ + "$WORK_DIR/pdfs/nis2_2022_2555.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32022R1925" \ + "$WORK_DIR/pdfs/dma_2022_1925.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32011L0083" \ + "$WORK_DIR/pdfs/consumer_rights_2011_83.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32019L0770" \ + "$WORK_DIR/pdfs/digital_content_2019_770.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32019L0771" \ + "$WORK_DIR/pdfs/sale_of_goods_2019_771.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32000L0031" \ + "$WORK_DIR/pdfs/ecommerce_2000_31.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:31993L0013" \ + "$WORK_DIR/pdfs/unfair_terms_93_13.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32005L0029" \ + "$WORK_DIR/pdfs/unfair_practices_2005_29.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:31998L0006" \ + "$WORK_DIR/pdfs/price_indication_98_6.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32019L2161" \ + "$WORK_DIR/pdfs/omnibus_2019_2161.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32023R0988" \ + "$WORK_DIR/pdfs/gpsr_2023_988.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:31985L0374" \ + "$WORK_DIR/pdfs/product_liability_85_374.pdf" + + download_pdf "https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32023R1542" \ + "$WORK_DIR/pdfs/battery_2023_1542.pdf" + + # --- German Laws (gesetze-im-internet.de) --- + log "--- Deutsche Gesetze (PDFs) ---" + + download_gesetz_pdf "pangv" "$WORK_DIR/pdfs/pangv.pdf" + download_gesetz_pdf "vsbg" "$WORK_DIR/pdfs/vsbg.pdf" + download_gesetz_pdf "prodhaftg" "$WORK_DIR/pdfs/prodhaftg.pdf" + download_gesetz_pdf "verpackg" "$WORK_DIR/pdfs/verpackg.pdf" + download_gesetz_pdf "elektrog" "$WORK_DIR/pdfs/elektrog.pdf" + download_gesetz_pdf "battg_2009" "$WORK_DIR/pdfs/battdg.pdf" + download_gesetz_pdf "bfsg" "$WORK_DIR/pdfs/bfsg.pdf" + download_gesetz_pdf "uwg_2004" "$WORK_DIR/pdfs/uwg.pdf" + download_gesetz_pdf "bdsg_2018" "$WORK_DIR/pdfs/bdsg.pdf" + download_gesetz_pdf "ddg" "$WORK_DIR/pdfs/ddg.pdf" + download_gesetz_pdf "tkg_2021" "$WORK_DIR/pdfs/tkg.pdf" + download_gesetz_pdf "hgb" "$WORK_DIR/pdfs/hgb.pdf" + download_gesetz_pdf "ao_1977" "$WORK_DIR/pdfs/ao.pdf" + download_gesetz_pdf "gewo" "$WORK_DIR/pdfs/gewo.pdf" + download_gesetz_pdf "bgb" "$WORK_DIR/pdfs/bgb_komplett.pdf" + download_gesetz_pdf "bgbeg" "$WORK_DIR/pdfs/egbgb.pdf" + + # --- NIST & HLEG --- + log "--- Frameworks (NIST, HLEG) ---" + + download_pdf "https://nvlpubs.nist.gov/nistpubs/CSWP/NIST.CSWP.29.pdf" \ + "$WORK_DIR/pdfs/nist_csf_2_0.pdf" + + download_pdf "https://nvlpubs.nist.gov/nistpubs/CSWP/NIST.CSWP.01162020.pdf" \ + "$WORK_DIR/pdfs/nist_privacy_framework.pdf" + + download_pdf "https://op.europa.eu/en/publication-detail/-/publication/d3988569-0434-11ea-8c1f-01aa75ed71a1" \ + "$WORK_DIR/pdfs/hleg_trustworthy_ai.pdf" + + log "Downloads abgeschlossen." +} + +# ============================================================================= +# PHASE H-2: Deutsche Gesetze → bp_compliance_gesetze +# ============================================================================= +phase_h_gesetze() { + log "==========================================" + log "PHASE H-2: Deutsche Gesetze -> bp_compliance_gesetze" + log "==========================================" + + local col="bp_compliance_gesetze" + + upload_file "$WORK_DIR/pdfs/pangv.pdf" "$col" "compliance" "legal_reference" "2022" \ + '{"regulation_id":"pangv","regulation_name_de":"Preisangabenverordnung (PAngV)","category":"verbraucherschutz","license":"public_law","source":"gesetze-im-internet.de"}' \ + "PAngV (Preisangabenverordnung)" + + upload_file "$WORK_DIR/pdfs/vsbg.pdf" "$col" "compliance" "legal_reference" "2016" \ + '{"regulation_id":"vsbg","regulation_name_de":"Verbraucherstreitbeilegungsgesetz (VSBG)","category":"verbraucherschutz","license":"public_law","source":"gesetze-im-internet.de"}' \ + "VSBG (Verbraucherstreitbeilegung)" + + upload_file "$WORK_DIR/pdfs/prodhaftg.pdf" "$col" "compliance" "legal_reference" "1989" \ + '{"regulation_id":"prodhaftg","regulation_name_de":"Produkthaftungsgesetz (ProdHaftG)","category":"produkthaftung","license":"public_law","source":"gesetze-im-internet.de"}' \ + "ProdHaftG (Produkthaftung)" + + upload_file "$WORK_DIR/pdfs/verpackg.pdf" "$col" "compliance" "legal_reference" "2017" \ + '{"regulation_id":"verpackg","regulation_name_de":"Verpackungsgesetz (VerpackG)","category":"umwelt","license":"public_law","source":"gesetze-im-internet.de"}' \ + "VerpackG (Verpackungsgesetz)" + + upload_file "$WORK_DIR/pdfs/elektrog.pdf" "$col" "compliance" "legal_reference" "2015" \ + '{"regulation_id":"elektrog","regulation_name_de":"Elektro- und Elektronikgeraetegesetz (ElektroG)","category":"umwelt","license":"public_law","source":"gesetze-im-internet.de"}' \ + "ElektroG (WEEE)" + + upload_file "$WORK_DIR/pdfs/battdg.pdf" "$col" "compliance" "legal_reference" "2009" \ + '{"regulation_id":"battdg","regulation_name_de":"Batteriegesetz (BattG)","category":"umwelt","license":"public_law","source":"gesetze-im-internet.de"}' \ + "BattG (Batteriegesetz)" + + upload_file "$WORK_DIR/pdfs/bfsg.pdf" "$col" "compliance" "legal_reference" "2021" \ + '{"regulation_id":"bfsg","regulation_name_de":"Barrierefreiheitsstaerkungsgesetz (BFSG)","category":"barrierefreiheit","license":"public_law","source":"gesetze-im-internet.de"}' \ + "BFSG (Barrierefreiheit)" + + upload_file "$WORK_DIR/pdfs/uwg.pdf" "$col" "compliance" "legal_reference" "2004" \ + '{"regulation_id":"uwg","regulation_name_de":"Gesetz gegen den unlauteren Wettbewerb (UWG)","category":"wettbewerb","license":"public_law","source":"gesetze-im-internet.de"}' \ + "UWG (Unlauterer Wettbewerb)" + + upload_file "$WORK_DIR/pdfs/bdsg.pdf" "$col" "compliance" "legal_reference" "2018" \ + '{"regulation_id":"bdsg","regulation_name_de":"Bundesdatenschutzgesetz (BDSG)","category":"datenschutz","license":"public_law","source":"gesetze-im-internet.de"}' \ + "BDSG (Bundesdatenschutzgesetz)" + + upload_file "$WORK_DIR/pdfs/ddg.pdf" "$col" "compliance" "legal_reference" "2024" \ + '{"regulation_id":"ddg","regulation_name_de":"Digitale-Dienste-Gesetz (DDG)","category":"plattformen","license":"public_law","source":"gesetze-im-internet.de"}' \ + "DDG (Digitale-Dienste-Gesetz, komplett)" + + upload_file "$WORK_DIR/pdfs/tkg.pdf" "$col" "compliance" "legal_reference" "2021" \ + '{"regulation_id":"tkg","regulation_name_de":"Telekommunikationsgesetz (TKG)","category":"telekommunikation","license":"public_law","source":"gesetze-im-internet.de"}' \ + "TKG (Telekommunikationsgesetz)" + + upload_file "$WORK_DIR/pdfs/hgb.pdf" "$col" "compliance" "legal_reference" "1897" \ + '{"regulation_id":"hgb","regulation_name_de":"Handelsgesetzbuch (HGB)","category":"handelsrecht","license":"public_law","source":"gesetze-im-internet.de"}' \ + "HGB (Handelsgesetzbuch)" + + upload_file "$WORK_DIR/pdfs/ao.pdf" "$col" "compliance" "legal_reference" "1977" \ + '{"regulation_id":"ao","regulation_name_de":"Abgabenordnung (AO)","category":"steuerrecht","license":"public_law","source":"gesetze-im-internet.de"}' \ + "AO (Abgabenordnung)" + + upload_file "$WORK_DIR/pdfs/gewo.pdf" "$col" "compliance" "legal_reference" "1999" \ + '{"regulation_id":"gewo","regulation_name_de":"Gewerbeordnung (GewO)","category":"gewerberecht","license":"public_law","source":"gesetze-im-internet.de"}' \ + "GewO (Gewerbeordnung)" + + upload_file "$WORK_DIR/pdfs/bgb_komplett.pdf" "$col" "compliance" "legal_reference" "2002" \ + '{"regulation_id":"bgb_komplett","regulation_name_de":"Buergerliches Gesetzbuch (BGB, komplett)","category":"zivilrecht","license":"public_law","source":"gesetze-im-internet.de"}' \ + "BGB (komplett als PDF)" + + upload_file "$WORK_DIR/pdfs/egbgb.pdf" "$col" "compliance" "legal_reference" "1896" \ + '{"regulation_id":"egbgb_komplett","regulation_name_de":"EGBGB (komplett)","category":"zivilrecht","license":"public_law","source":"gesetze-im-internet.de"}' \ + "EGBGB (komplett als PDF)" +} + +# ============================================================================= +# PHASE H-3: EU-Rechtstexte → bp_compliance_ce +# ============================================================================= +phase_h_eu() { + log "==========================================" + log "PHASE H-3: EU-Rechtstexte -> bp_compliance_ce" + log "==========================================" + + local col="bp_compliance_ce" + + upload_file "$WORK_DIR/pdfs/dsgvo_2016_679.pdf" "$col" "compliance_ce" "legal_reference" "2016" \ + '{"regulation_id":"eu_2016_679","regulation_name_de":"Datenschutz-Grundverordnung (DSGVO)","regulation_name_en":"General Data Protection Regulation","regulation_short":"DSGVO","category":"datenschutz","celex":"32016R0679","source":"eur-lex","license":"public_law"}' \ + "DSGVO (EU) 2016/679" + + upload_file "$WORK_DIR/pdfs/cra_2024_2847.pdf" "$col" "compliance_ce" "legal_reference" "2024" \ + '{"regulation_id":"eu_2024_2847","regulation_name_de":"Cyber Resilience Act (CRA)","regulation_name_en":"Cyber Resilience Act","regulation_short":"CRA","category":"cybersecurity","celex":"32024R2847","source":"eur-lex","license":"public_law"}' \ + "Cyber Resilience Act (EU) 2024/2847" + + upload_file "$WORK_DIR/pdfs/ai_act_2024_1689.pdf" "$col" "compliance_ce" "legal_reference" "2024" \ + '{"regulation_id":"eu_2024_1689","regulation_name_de":"KI-Verordnung (AI Act)","regulation_name_en":"Artificial Intelligence Act","regulation_short":"AI Act","category":"ki_regulierung","celex":"32024R1689","source":"eur-lex","license":"public_law"}' \ + "AI Act (EU) 2024/1689" + + upload_file "$WORK_DIR/pdfs/nis2_2022_2555.pdf" "$col" "compliance_ce" "legal_reference" "2022" \ + '{"regulation_id":"eu_2022_2555","regulation_name_de":"NIS2-Richtlinie","regulation_name_en":"NIS2 Directive","regulation_short":"NIS2","category":"cybersecurity","celex":"32022L2555","source":"eur-lex","license":"public_law"}' \ + "NIS2 Directive (EU) 2022/2555" + + upload_file "$WORK_DIR/pdfs/dma_2022_1925.pdf" "$col" "compliance_ce" "legal_reference" "2022" \ + '{"regulation_id":"eu_2022_1925","regulation_name_de":"Digital Markets Act (DMA)","regulation_name_en":"Digital Markets Act","regulation_short":"DMA","category":"plattformregulierung","celex":"32022R1925","source":"eur-lex","license":"public_law"}' \ + "Digital Markets Act (EU) 2022/1925" + + upload_file "$WORK_DIR/pdfs/consumer_rights_2011_83.pdf" "$col" "compliance_ce" "legal_reference" "2011" \ + '{"regulation_id":"eu_2011_83","regulation_name_de":"Verbraucherrechte-Richtlinie","regulation_name_en":"Consumer Rights Directive","regulation_short":"CRD","category":"verbraucherschutz","celex":"32011L0083","source":"eur-lex","license":"public_law"}' \ + "Consumer Rights Directive 2011/83/EU" + + upload_file "$WORK_DIR/pdfs/digital_content_2019_770.pdf" "$col" "compliance_ce" "legal_reference" "2019" \ + '{"regulation_id":"eu_2019_770","regulation_name_de":"Digitale-Inhalte-Richtlinie","regulation_name_en":"Digital Content Directive","regulation_short":"DCD","category":"verbraucherschutz","celex":"32019L0770","source":"eur-lex","license":"public_law"}' \ + "Digital Content Directive 2019/770" + + upload_file "$WORK_DIR/pdfs/sale_of_goods_2019_771.pdf" "$col" "compliance_ce" "legal_reference" "2019" \ + '{"regulation_id":"eu_2019_771","regulation_name_de":"Warenkauf-Richtlinie","regulation_name_en":"Sale of Goods Directive","regulation_short":"SGD","category":"verbraucherschutz","celex":"32019L0771","source":"eur-lex","license":"public_law"}' \ + "Sale of Goods Directive 2019/771" + + upload_file "$WORK_DIR/pdfs/ecommerce_2000_31.pdf" "$col" "compliance_ce" "legal_reference" "2000" \ + '{"regulation_id":"eu_2000_31","regulation_name_de":"E-Commerce-Richtlinie","regulation_name_en":"E-Commerce Directive","regulation_short":"ECD","category":"plattformregulierung","celex":"32000L0031","source":"eur-lex","license":"public_law"}' \ + "E-Commerce Directive 2000/31/EC" + + upload_file "$WORK_DIR/pdfs/unfair_terms_93_13.pdf" "$col" "compliance_ce" "legal_reference" "1993" \ + '{"regulation_id":"eu_1993_13","regulation_name_de":"Klausel-Richtlinie","regulation_name_en":"Unfair Contract Terms Directive","regulation_short":"UCTD","category":"verbraucherschutz","celex":"31993L0013","source":"eur-lex","license":"public_law"}' \ + "Unfair Contract Terms Directive 93/13/EEC" + + upload_file "$WORK_DIR/pdfs/unfair_practices_2005_29.pdf" "$col" "compliance_ce" "legal_reference" "2005" \ + '{"regulation_id":"eu_2005_29","regulation_name_de":"UGP-Richtlinie","regulation_name_en":"Unfair Commercial Practices Directive","regulation_short":"UCPD","category":"verbraucherschutz","celex":"32005L0029","source":"eur-lex","license":"public_law"}' \ + "Unfair Commercial Practices Directive 2005/29/EC" + + upload_file "$WORK_DIR/pdfs/price_indication_98_6.pdf" "$col" "compliance_ce" "legal_reference" "1998" \ + '{"regulation_id":"eu_1998_6","regulation_name_de":"Preisangaben-Richtlinie","regulation_name_en":"Price Indication Directive","regulation_short":"PID","category":"verbraucherschutz","celex":"31998L0006","source":"eur-lex","license":"public_law"}' \ + "Price Indication Directive 98/6/EC" + + upload_file "$WORK_DIR/pdfs/omnibus_2019_2161.pdf" "$col" "compliance_ce" "legal_reference" "2019" \ + '{"regulation_id":"eu_2019_2161","regulation_name_de":"Omnibus-Richtlinie","regulation_name_en":"Omnibus Directive","regulation_short":"Omnibus","category":"verbraucherschutz","celex":"32019L2161","source":"eur-lex","license":"public_law"}' \ + "Omnibus Directive 2019/2161" + + upload_file "$WORK_DIR/pdfs/gpsr_2023_988.pdf" "$col" "compliance_ce" "legal_reference" "2023" \ + '{"regulation_id":"eu_2023_988","regulation_name_de":"Allgemeine Produktsicherheitsverordnung (GPSR)","regulation_name_en":"General Product Safety Regulation","regulation_short":"GPSR","category":"produktsicherheit","celex":"32023R0988","source":"eur-lex","license":"public_law"}' \ + "GPSR (EU) 2023/988" + + upload_file "$WORK_DIR/pdfs/product_liability_85_374.pdf" "$col" "compliance_ce" "legal_reference" "1985" \ + '{"regulation_id":"eu_1985_374","regulation_name_de":"Produkthaftungsrichtlinie","regulation_name_en":"Product Liability Directive","regulation_short":"PLD","category":"produkthaftung","celex":"31985L0374","source":"eur-lex","license":"public_law"}' \ + "Product Liability Directive 85/374/EEC" + + upload_file "$WORK_DIR/pdfs/battery_2023_1542.pdf" "$col" "compliance_ce" "legal_reference" "2023" \ + '{"regulation_id":"eu_2023_1542","regulation_name_de":"Batterieverordnung","regulation_name_en":"Battery Regulation","regulation_short":"BattVO","category":"umwelt","celex":"32023R1542","source":"eur-lex","license":"public_law"}' \ + "Batterieverordnung (EU) 2023/1542" +} + +# ============================================================================= +# PHASE H-4: Datenschutz-Frameworks → bp_compliance_datenschutz +# ============================================================================= +phase_h_datenschutz() { + log "==========================================" + log "PHASE H-4: Frameworks -> bp_compliance_datenschutz" + log "==========================================" + + local col="bp_compliance_datenschutz" + + upload_file "$WORK_DIR/pdfs/nist_csf_2_0.pdf" "$col" "compliance" "framework" "2024" \ + '{"regulation_id":"nist_csf_2_0","regulation_name_de":"NIST Cybersecurity Framework 2.0","regulation_name_en":"NIST Cybersecurity Framework 2.0","regulation_short":"NIST CSF 2.0","category":"security","license":"public_domain_us","source":"nist.gov"}' \ + "NIST Cybersecurity Framework 2.0" + + upload_file "$WORK_DIR/pdfs/nist_privacy_framework.pdf" "$col" "compliance" "framework" "2020" \ + '{"regulation_id":"nist_privacy_1_0","regulation_name_de":"NIST Privacy Framework 1.0","regulation_name_en":"NIST Privacy Framework 1.0","regulation_short":"NIST PF 1.0","category":"datenschutz","license":"public_domain_us","source":"nist.gov"}' \ + "NIST Privacy Framework 1.0" + + # HLEG may need special handling - the op.europa.eu link may redirect + if [[ -f "$WORK_DIR/pdfs/hleg_trustworthy_ai.pdf" ]]; then + upload_file "$WORK_DIR/pdfs/hleg_trustworthy_ai.pdf" "$col" "compliance" "framework" "2019" \ + '{"regulation_id":"hleg_trustworthy_ai","regulation_name_de":"HLEG Ethik-Leitlinien Vertrauenswuerdige KI","regulation_name_en":"HLEG Ethics Guidelines for Trustworthy AI","regulation_short":"HLEG AI","category":"ki_ethik","license":"cc_by_4","source":"ec.europa.eu"}' \ + "HLEG Ethics Guidelines Trustworthy AI" + else + warn "HLEG PDF not available (download may have failed)" + fi +} + +# ============================================================================= +# MAIN +# ============================================================================= +main() { + log "==========================================" + log "PHASE H: RAG Ingestion — ~37 neue Dokumente" + log "==========================================" + log "Work dir: $WORK_DIR" + log "RAG URL: $RAG_URL" + + phase_h_download + phase_h_gesetze + phase_h_eu + phase_h_datenschutz + + log "==========================================" + log "PHASE H ABGESCHLOSSEN" + log " Hochgeladen: $UPLOADED" + log " Uebersprungen: $SKIPPED" + log " Fehlgeschlagen: $FAILED" + log "==========================================" +} + +main "$@" diff --git a/scripts/rag-sources.md b/scripts/rag-sources.md index b53ef72..02d6c3c 100644 --- a/scripts/rag-sources.md +++ b/scripts/rag-sources.md @@ -10,7 +10,7 @@ Stand: 2026-03-11 | C (EU-Recht) | bp_compliance_ce | 3 (DSA, ePrivacy, SCC) | Ingestiert | | D (Templates) | bp_legal_templates | ~50 | Ingestiert | | E (Datenschutz) | bp_compliance_datenschutz | 10 (EDPB/EDPS) | Ingestiert | -| **H (Layer 1 Safe Core)** | **alle 3 Collections** | **~35 neu** | **AUSSTEHEND** | +| **H (Layer 1 Safe Core)** | **alle 3 Collections** | **~37 neu** | **Ingestiert (2026-03-15)** | --- @@ -28,7 +28,7 @@ Stand: 2026-03-11 | 6 | UrhG (komplett, Bundestag-Repo) | github.com/bundestag/gesetze | Unlicense | | 7 | TMG (komplett, Bundestag-Repo) | github.com/bundestag/gesetze | Unlicense | -### Neu in Phase H +### Phase H (ingestiert 2026-03-15) | # | Dokument | Quelle | Lizenz | Generator-Einsatz | |---|----------|--------|--------|-------------------| @@ -61,7 +61,7 @@ Stand: 2026-03-11 | 2 | ePrivacy-Richtlinie 2002/58/EC | 32002L0058 | CC BY 4.0 | | 3 | Standardvertragsklauseln (EU) 2021/914 | 32021D0914 | CC BY 4.0 | -### Neu in Phase H +### Phase H (ingestiert 2026-03-15) | # | Dokument | CELEX | Lizenz | Generator-Einsatz | |---|----------|-------|--------|-------------------| @@ -80,6 +80,7 @@ Stand: 2026-03-11 | 16 | GPSR (EU) 2023/988 | 32023R0988 | CC BY 4.0 | Produktsicherheit | | 17 | Product Liability Directive 85/374/EEC | 31985L0374 | CC BY 4.0 | Haftungs-AGB | | 18 | Batterieverordnung (EU) 2023/1542 | 32023R1542 | CC BY 4.0 | Batterie-Pflichten | +| 19 | Cyber Resilience Act (EU) 2024/2847 | 32024R2847 | CC BY 4.0 | Cybersecurity-Controls, SBOM, Vulnerability Handling | --- @@ -110,7 +111,7 @@ Stand: 2026-03-11 | 1-8 | EDPB Guidelines (8 Stueck) | edpb.europa.eu | Reuse Notice | | 9-10 | EDPS Guidance (2 Stueck) | edps.europa.eu | Reuse Notice | -### Neu in Phase H +### Phase H (ingestiert 2026-03-15) | # | Dokument | Quelle | Lizenz | Einsatz | |---|----------|--------|--------|---------|