From 67dba5f6414e90b92fc9fe0ddb20d9530b5a94ac Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Thu, 25 Jun 2026 09:28:40 +0200 Subject: [PATCH] Add CRA procedure model (SBOM + Vuln) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Schließt die Lücke Obligation→Procedure→Control→Evidence (Schritt 3, Compliance-OS-Ebene). Procedure = Umsetzungs-/Nachweisebene EINER Obligation, KEINE neue Pflicht (LEGAL_MINIMUM bleibt an der Obligation; Procedure beschreibt Umsetzung; Evidence belegt sie). - 11 Procedures (5 SBOM + 6 Vuln), 2 Worked Examples; source_role=procedural_requirement (Konvergenz mit der Legal-Knowledge-Engine der anderen Session) - fulfills_obligations[] referenziert die cra.json-Obligations (alle gültig, volle Abdeckung) - steps/controls/evidence je Procedure; KEINE tier/legal_basis-Felder (kein Pflicht-Duplikat) - citation_spans: [] / pending_span_anchor (Join folgt mit dem zitierfähigen Re-Ingest) Co-Authored-By: Claude Opus 4.7 --- obligations/cra_procedures.json | 227 ++++++++++++++++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100644 obligations/cra_procedures.json diff --git a/obligations/cra_procedures.json b/obligations/cra_procedures.json new file mode 100644 index 00000000..5eec3108 --- /dev/null +++ b/obligations/cra_procedures.json @@ -0,0 +1,227 @@ +{ + "schema_version": "obligation_procedures_v1", + "regulation": "CRA", + "layer": "Regulation -> Legal Obligation -> Procedure -> Control -> Evidence", + "note": "Procedure ist KEINE neue Compliance-Pflicht. LEGAL_MINIMUM liegt an der Obligation; die Procedure beschreibt, WIE sie umgesetzt wird; Evidence belegt die Umsetzung. source_role=procedural_requirement (Konvergenz mit der Legal-Knowledge-Engine der anderen Session).", + "citation_status": "pending_span_anchor", + "scope": "worked examples: SBOM + Vulnerability Handling", + "procedures": [ + { + "procedure_id": "sbom_generation_process", + "name": "SBOM-Erstellungsprozess", + "description": "Erzeugen einer vollstaendigen, maschinenlesbaren Software Bill of Materials fuer ein Produkt mit digitalen Elementen.", + "source_role": "procedural_requirement", + "fulfills_obligations": ["sbom_creation", "sbom_dependency_coverage", "sbom_format_standard", "sbom_tooling_automation"], + "steps": [ + "Komponenten und (direkte + transitive) Abhaengigkeiten inventarisieren", + "SBOM automatisiert in der Build-/Toolchain generieren", + "Komponenten, Versionen, Lizenzen und Lieferanten erfassen", + "in anerkanntem maschinenlesbarem Format (CycloneDX/SPDX) ausgeben", + "Format- und Schemavalidierung durchfuehren" + ], + "controls": [ + "SBOM-Datei vorhanden", + "Format ist maschinenlesbar und standardkonform (CycloneDX/SPDX)", + "direkte und transitive Abhaengigkeiten enthalten" + ], + "evidence": ["sbom.cyclonedx.json", "Format-Validierungs-Log", "Build-/Toolchain-Konfiguration"], + "citation_spans": [], "citation_status": "pending_span_anchor" + }, + { + "procedure_id": "sbom_update_process", + "name": "SBOM-Aktualisierungsprozess", + "description": "Halten der SBOM aktuell ueber den Produktlebenszyklus bei Komponenten-, Versions- und Patch-Aenderungen.", + "source_role": "procedural_requirement", + "fulfills_obligations": ["sbom_maintenance_update"], + "steps": [ + "Komponentenaenderung erkennen (Dependency-/Patch-/Versionsaenderung)", + "SBOM neu generieren", + "Lieferanten-SBOMs aktualisieren", + "neue SBOM-Version speichern", + "SBOM in Release-Artefakte uebernehmen" + ], + "controls": [ + "CI prueft SBOM vorhanden", + "SBOM-Version passt zum Release", + "Supplier-Komponenten enthalten" + ], + "evidence": ["sbom.json", "CI-Log", "Release-Artefakt", "Supplier-SBOM"], + "citation_spans": [], "citation_status": "pending_span_anchor" + }, + { + "procedure_id": "sbom_supplier_integration_process", + "name": "Lieferanten-SBOM-Integration", + "description": "Beschaffen und Einarbeiten von Lieferanten-/Drittkomponenten-SBOMs in die Produkt-SBOM.", + "source_role": "procedural_requirement", + "fulfills_obligations": ["sbom_supply_chain_contracts", "sbom_dependency_coverage"], + "steps": [ + "SBOM-Anforderung in Lieferantenvertraege aufnehmen", + "Lieferanten-SBOMs einsammeln", + "in die Produkt-SBOM mergen", + "Drittkomponenten und deren Abhaengigkeiten nachverfolgen" + ], + "controls": [ + "vertragliche SBOM-Klausel vorhanden", + "Lieferanten-SBOMs eingegangen", + "Drittkomponenten in der SBOM gelistet" + ], + "evidence": ["Lieferantenvertrag-Klausel", "eingegangene Supplier-SBOMs", "gemergte SBOM"], + "citation_spans": [], "citation_status": "pending_span_anchor" + }, + { + "procedure_id": "sbom_provision_process", + "name": "SBOM-Bereitstellungsprozess", + "description": "Zugaenglichmachen der SBOM fuer berechtigte Parteien (Nutzer, Behoerde) unter Wahrung der Vertraulichkeit.", + "source_role": "procedural_requirement", + "fulfills_obligations": ["sbom_access_provision", "sbom_authority_provision", "sbom_confidentiality"], + "steps": [ + "Zugangskanal definieren (Portal/API/dokumentierter Pfad)", + "Nutzer ueber den Zugangsweg informieren", + "auf begruendetes Verlangen der Marktueberwachungsbehoerde vertraulich bereitstellen", + "Zugriffskontrolle und Vertraulichkeitsmassnahmen anwenden" + ], + "controls": [ + "Zugangspfad dokumentiert", + "Zugriffskontrolle/Vertraulichkeit umgesetzt", + "Behoerden-Bereitstellungsprozess definiert" + ], + "evidence": ["Zugangskanal-Dokumentation", "Behoerden-Anfrage-Log", "Zugriffskontroll-Konfiguration"], + "citation_spans": [], "citation_status": "pending_span_anchor" + }, + { + "procedure_id": "sbom_conformity_documentation_process", + "name": "SBOM in technischer Dokumentation/Konformitaet", + "description": "Aufnehmen der SBOM in die technische Dokumentation und Verifizieren der Vollstaendigkeit fuer die Konformitaetsbewertung.", + "source_role": "procedural_requirement", + "fulfills_obligations": ["sbom_technical_documentation", "sbom_completeness_verification"], + "steps": [ + "SBOM in die technische Dokumentation aufnehmen", + "Vollstaendigkeit gegen die real eingesetzte Softwarekomposition pruefen", + "der Konformitaetsbewertung beilegen (ggf. EUCC)" + ], + "controls": [ + "SBOM Teil der technischen Dokumentation", + "Vollstaendigkeit verifiziert", + "Konformitaetsnachweis vorhanden" + ], + "evidence": ["technische Dokumentation", "Vollstaendigkeits-Pruefbericht", "Konformitaetsnachweis"], + "citation_spans": [], "citation_status": "pending_span_anchor" + }, + + { + "procedure_id": "vuln_handling_process_setup", + "name": "Schwachstellenbehandlungsprozess einrichten", + "description": "Dokumentierten Prozess und Meldekanal (CVD) fuer die Schwachstellenbehandlung etablieren.", + "source_role": "procedural_requirement", + "fulfills_obligations": ["vuln_handling_process"], + "steps": [ + "dokumentierten Schwachstellenbehandlungsprozess definieren", + "Coordinated-Vulnerability-Disclosure-Richtlinie und Meldekanal veroeffentlichen", + "eingehende Meldungen triagieren" + ], + "controls": [ + "Behandlungsprozess dokumentiert", + "Meldekanal/Kontaktstelle auffindbar (z.B. security.txt)", + "Triage-Verfahren vorhanden" + ], + "evidence": ["Prozessdokument", "security.txt / Kontaktstelle", "Triage-Log"], + "citation_spans": [], "citation_status": "pending_span_anchor" + }, + { + "procedure_id": "vuln_identification_process", + "name": "Schwachstellen-Identifikation", + "description": "Bekannte Schwachstellen in eingesetzten Komponenten erkennen und inventarisieren.", + "source_role": "procedural_requirement", + "fulfills_obligations": ["vuln_identification_inventory"], + "steps": [ + "Advisories/CVE-Feeds beobachten", + "gegen die SBOM-Komponenten abgleichen", + "Schwachstellen-Inventar pflegen" + ], + "controls": [ + "Advisory-/CVE-Monitoring aktiv", + "SBOM-zu-CVE-Abgleich durchgefuehrt", + "Schwachstellen-Inventar gepflegt" + ], + "evidence": ["CVE-Abgleich-Report", "Schwachstellen-Register"], + "citation_spans": [], "citation_status": "pending_span_anchor" + }, + { + "procedure_id": "vuln_assessment_process", + "name": "Schwachstellen-Bewertung/Priorisierung", + "description": "Identifizierte Schwachstellen nach Schweregrad, Ausnutzbarkeit und Exposition bewerten und priorisieren.", + "source_role": "procedural_requirement", + "fulfills_obligations": ["vuln_assessment_prioritization"], + "steps": [ + "Schweregrad bewerten (z.B. CVSS)", + "Ausnutzbarkeit/Exposition einschaetzen", + "risikobasiert priorisieren" + ], + "controls": [ + "Schweregrad standardisiert bewertet", + "risikobasierte Priorisierung vorhanden" + ], + "evidence": ["Bewertungsdatensatz (CVSS)", "Prioritaetenliste"], + "citation_spans": [], "citation_status": "pending_span_anchor" + }, + { + "procedure_id": "vuln_remediation_process", + "name": "Schwachstellen-Behebung", + "description": "Bekannte Schwachstellen fristgerecht durch Patches/Gegenmassnahmen beheben und Sicherheitsupdates bereitstellen.", + "source_role": "procedural_requirement", + "fulfills_obligations": ["vuln_remediation_patching"], + "steps": [ + "Fix/Gegenmassnahme entwickeln", + "testen", + "Sicherheitsupdate kostenfrei und zeitnah bereitstellen", + "bis zum Abschluss nachverfolgen" + ], + "controls": [ + "zeitnahe Behebung", + "Sicherheitsupdate bereitgestellt", + "Follow-up bis Closure" + ], + "evidence": ["Patch/Release", "Behebungs-Zeitleiste", "Follow-up-Log"], + "citation_spans": [], "citation_status": "pending_span_anchor" + }, + { + "procedure_id": "vuln_disclosure_process", + "name": "Offenlegung + Nutzerinformation", + "description": "Koordinierte Offenlegung behobener Schwachstellen und Information der Nutzer ueber Schutzmassnahmen.", + "source_role": "procedural_requirement", + "fulfills_obligations": ["coordinated_vulnerability_disclosure", "vuln_info_dissemination_users"], + "steps": [ + "Offenlegungszeitpunkt koordinieren", + "Security Advisory / CVE-Eintrag veroeffentlichen", + "Nutzer ueber behobene Schwachstelle und Schutzmassnahmen informieren" + ], + "controls": [ + "Advisory veroeffentlicht", + "Nutzer informiert" + ], + "evidence": ["Security Advisory", "CVE-Eintrag", "Nutzer-Benachrichtigung"], + "citation_spans": [], "citation_status": "pending_span_anchor" + }, + { + "procedure_id": "vuln_authority_reporting_process", + "name": "Behoerdenmeldung aktiv ausgenutzter Schwachstellen", + "description": "Aktiv ausgenutzte Schwachstellen fristgerecht an CSIRT/ENISA melden (CRA Art. 14-Kaskade).", + "source_role": "procedural_requirement", + "fulfills_obligations": ["exploited_vuln_reporting_authorities"], + "applicability_note": "bedingt: nur bei aktiv ausgenutzter Schwachstelle", + "steps": [ + "aktive Ausnutzung erkennen", + "Fruehwarnung an CSIRT/ENISA (24h)", + "vollstaendige Meldung (72h)", + "Abschlussbericht (14 Tage)" + ], + "controls": [ + "24h-Fruehwarnung erfolgt", + "72h-Meldung erfolgt", + "14d-Abschlussbericht erfolgt" + ], + "evidence": ["CSIRT/ENISA-Meldungsbelege", "Zeitstempel der Kaskade"], + "citation_spans": [], "citation_status": "pending_span_anchor" + } + ] +}