Merge remote-tracking branch 'origin/main' into feat/advisor-status
This commit is contained in:
@@ -1,11 +1,12 @@
|
|||||||
{
|
{
|
||||||
"schema_version": "controls_for_obligation_mapping_v1",
|
"schema_version": "controls_for_obligation_mapping_v1",
|
||||||
"purpose": "Accepted CRA->OWASP controls (Compliance Execution Graph) for the Obligation Registry to propose the SEMANTIC control->obligation_id, replacing the coarse citation_unit interim join. Fill proposed_obligation_id per control, then we adopt it into control_mapping.obligation_id.",
|
"purpose": "Accepted CRA->Framework controls (Compliance Execution Graph) for the Obligation Registry to propose the SEMANTIC control->obligation_id, replacing the coarse citation_unit interim join. Fill proposed_obligation_id per control, then we adopt it into control_mapping.obligation_id.",
|
||||||
"source": "ai-compliance-sdk control_mappings, mapping_status=accepted, reviewed_by=benjamin 2026-06-25",
|
"source": "ai-compliance-sdk control_mappings, mapping_status=accepted, reviewed_by=benjamin 2026-06-25. OWASP ASVS (7, gefuellt) + NIST SP 800-53 (3, pending).",
|
||||||
"filled_by": "obligation-registry-session 2026-06-25 (alle 7/7: 4 auth/crypto + 3 logging via cra_logging.json)",
|
"filled_by": "obligation-registry-session 2026-06-25 (OWASP 7/7: 4 auth/crypto + 3 logging). NIST 3 NEU + pending: SI-7/SI-2/CM-7. Notes auf updates-Familie (join_keys 93) ausgerichtet: SI-2->provide_security_updates (stark), SI-7->signed_update_integrity (partiell, SI-7 breiter), CM-7->remote_access_attack_surface_min (partiell, CM-7 breiter).",
|
||||||
"join_principle": "SEMANTISCH via obligation_id, NICHT via citation_unit/legal_basis-Anker. Die CRA-Anker sind im Registry teils approximativ (siehe anchor_quality_note) — daher ist obligation_id der stabile Primaerschluessel, nicht der Anker.",
|
"join_principle": "SEMANTISCH via obligation_id, NICHT via citation_unit/legal_basis-Anker. Die CRA-Anker sind im Registry teils approximativ (siehe anchor_quality_note) — daher ist obligation_id der stabile Primaerschluessel, nicht der Anker.",
|
||||||
"anchor_quality_note": "Registry-legal_basis-Anker sind teils CRA-Part-I-fehlzugeordnet (Opus-Synthese): user_authentication_required steht auf (2)(d) statt (2)(c); Crypto-Obligations auf (2)(e) statt (2)(d). CRA Annex I Part I: (2)(c)=Zugriffsschutz, (2)(d)=Vertraulichkeit, (2)(e)=Integritaet. Korrektur kommt mit dem zitierfaehigen Re-Ingest (span-genau). Deshalb: NICHT auf Anker joinen. ABER: der Logging-Cut (V16.*) ist korrekt auf (2)(k) verankert (echte Logging-Subsektion, kein Fehl-Anker).",
|
"anchor_quality_note": "Registry-legal_basis-Anker sind teils CRA-Part-I-fehlzugeordnet (Opus-Synthese): user_authentication_required steht auf (2)(d) statt (2)(c); Crypto-Obligations auf (2)(e) statt (2)(d). CRA Annex I Part I: (2)(c)=Zugriffsschutz, (2)(d)=Vertraulichkeit, (2)(e)=Integritaet. Korrektur kommt mit dem zitierfaehigen Re-Ingest (span-genau). Deshalb: NICHT auf Anker joinen. ABER: der Logging-Cut (V16.*) ist korrekt auf (2)(k) verankert (echte Logging-Subsektion, kein Fehl-Anker).",
|
||||||
"count": 7,
|
"mapping_type_note": "NEU: mapping_type=primary_implementation = die kanonische Primaer-Control einer Anforderung (genau eine), staerker als implements/supports. related-Controls (SC-3(3), RA-5, AC-6, SI-16, SA-10, ...) folgen separat als supports. Eine Obligation kann mehrere Controls haben, aber genau einen primary_implementation-Einstieg.",
|
||||||
|
"count": 10,
|
||||||
"controls": [
|
"controls": [
|
||||||
{
|
{
|
||||||
"framework": "OWASP ASVS", "control": "V6.3.1",
|
"framework": "OWASP ASVS", "control": "V6.3.1",
|
||||||
@@ -62,6 +63,30 @@
|
|||||||
"proposed_obligation_id": "event_logging_security_events",
|
"proposed_obligation_id": "event_logging_security_events",
|
||||||
"mapping_method": "semantic",
|
"mapping_method": "semantic",
|
||||||
"mapping_note": "V16.1 = allgemeine Logging-Anforderung -> Umbrella-LM event_logging_security_events. Hohe Konfidenz."
|
"mapping_note": "V16.1 = allgemeine Logging-Anforderung -> Umbrella-LM event_logging_security_events. Hohe Konfidenz."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"framework": "NIST SP 800-53", "control": "SI-7",
|
||||||
|
"source_norm": "CRA Annex I Part I (2)(e) — Integritaet",
|
||||||
|
"citation_unit": "Annex I (2)(e)", "family": "integrity", "mapping_type": "primary_implementation",
|
||||||
|
"proposed_obligation_id": "",
|
||||||
|
"mapping_method": "semantic",
|
||||||
|
"mapping_note": "NIST SI-7 = Software/Firmware/Information Integrity (Signaturpruefung, Manipulationserkennung, Secure Boot, Runtime-Integritaet). Naechster vorhandener Treffer (93-Stand): signed_update_integrity (updates-Familie, Annex I (1)(3)(f)) — deckt aber NUR Update-Signatur. SI-7 ist BREITER (gesamte Produkt-Integritaet). Falls keine generische Integritaets-Obligation existiert: neue noetig (Vorschlag software_integrity_protection); sonst SI-7 primary_implementation fuer signed_update_integrity (update-scoped) + supports fuers Breitere. NICHT log_integrity_immutability (Audit-Log-Schutz, andere Ebene)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"framework": "NIST SP 800-53", "control": "SI-2",
|
||||||
|
"source_norm": "CRA Annex I Part I (2)(l) — Sichere Updates",
|
||||||
|
"citation_unit": "Annex I (2)(l)", "family": "update", "mapping_type": "primary_implementation",
|
||||||
|
"proposed_obligation_id": "",
|
||||||
|
"mapping_method": "semantic",
|
||||||
|
"mapping_note": "NIST SI-2 = Flaw Remediation. STARKER Treffer in eurer NEUEN updates-Familie (93-Stand): provide_security_updates (LEGAL_MINIMUM, Annex I (2)(c) + Art. 13) = DAS sichere-Update-LM. -> SI-2 primary_implementation = provide_security_updates. Verwandt (supports): vuln_remediation_patching (Part II Remediations-PROZESS), support_period_maintenance, update_testing_validation, update_rollback. Mein source_norm-Anker (2)(l) ist approximativ -> bitte (2)(c)/Art.13 via provide_security_updates nutzen."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"framework": "NIST SP 800-53", "control": "CM-7",
|
||||||
|
"source_norm": "CRA Annex I Part I (2)(i) — Angriffsflaeche minimieren",
|
||||||
|
"citation_unit": "Annex I (2)(i)", "family": "attack_surface", "mapping_type": "primary_implementation",
|
||||||
|
"proposed_obligation_id": "",
|
||||||
|
"mapping_method": "semantic",
|
||||||
|
"mapping_note": "NIST CM-7 = Least Functionality (deaktivierte Ports/Dienste/Funktionen, GESAMTE Angriffsflaeche). Naechster vorhandener Treffer (93-Stand): remote_access_attack_surface_min (remote_access-Familie) — deckt aber NUR Remote-Access-Flaeche. CM-7 ist BREITER. Vermutlich generische Obligation noetig (Vorschlag attack_surface_minimization); sonst CM-7 supports fuer remote_access_attack_surface_min. related (supports): SC-3(3)/AC-6/SI-16."
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"schema_version": "obligation_join_keys_v1",
|
"schema_version": "obligation_join_keys_v1",
|
||||||
"contract": "obligation_id ist der stabile Join-Key. Legal Knowledge Graph haengt citation_spans an obligation_id; Compliance Execution Graph mappt control_mapping.source_norm -> obligation_id. Interim-Bruecke = citation_units. obligation_id NIE neu vergeben (re-link).",
|
"contract": "obligation_id ist der stabile Join-Key. Legal Knowledge Graph haengt citation_spans an obligation_id; Compliance Execution Graph mappt control_mapping.source_norm -> obligation_id. Interim-Bruecke = citation_units. obligation_id NIE neu vergeben (re-link).",
|
||||||
"count": 66,
|
"count": 93,
|
||||||
"obligation_ids": [
|
"obligation_ids": [
|
||||||
{
|
{
|
||||||
"obligation_id": "sbom_creation",
|
"obligation_id": "sbom_creation",
|
||||||
@@ -582,6 +582,245 @@
|
|||||||
"tier": "BEST_PRACTICE",
|
"tier": "BEST_PRACTICE",
|
||||||
"citation_units": [],
|
"citation_units": [],
|
||||||
"source_role": "GUIDANCE"
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_control_least_privilege",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Annex I (1)(2)(d)"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_confidentiality_integrity",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Annex I (1)(2)(b)(c)"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_session_management",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_mfa",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_encryption",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "reject_insecure_remote_protocols",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_logging_audit",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Annex I (1)(2)(g)"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_user_validation_ot",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_training",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_architecture_design",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_attack_surface_min",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Annex I (1)(2)(a)"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_vuln_patch_mgmt",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Annex I (2)(1)"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_threat_detection",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_maintenance_governance",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "temporary_remote_access_mgmt",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_data_export_protection",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "component_remote_interface_security",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "remote_access_fallback_concept",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "remote_access",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "provide_security_updates",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "updates",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Annex I (2)(c)",
|
||||||
|
"Art. 13"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "support_period_maintenance",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "updates",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Art. 13(8)"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "signed_update_integrity",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "updates",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Annex I (1)(3)(f)"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "trusted_update_source",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "updates",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Annex I (1)(3)(d)"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "update_testing_validation",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "updates",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "update_rollback",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "updates",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "GUIDANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "automatic_updates_optout",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "updates",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Annex I (2)(c)"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "update_risk_assessment",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "updates",
|
||||||
|
"tier": "LEGAL_MINIMUM",
|
||||||
|
"citation_units": [
|
||||||
|
"Annex I (1)(2)"
|
||||||
|
],
|
||||||
|
"source_role": "LEGAL_BASIS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"obligation_id": "secure_modification_control",
|
||||||
|
"regulation": "CRA",
|
||||||
|
"family": "updates",
|
||||||
|
"tier": "BEST_PRACTICE",
|
||||||
|
"citation_units": [],
|
||||||
|
"source_role": "IMPLEMENTATION"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -22,6 +22,17 @@ SCOPES = {
|
|||||||
"logging": ["%logging%", "%protokollierung%", "%audit-log%", "%audit-trail%",
|
"logging": ["%logging%", "%protokollierung%", "%audit-log%", "%audit-trail%",
|
||||||
"%ereignisprotokoll%", "%sicherheitsprotokoll%", "%audit-protokoll%",
|
"%ereignisprotokoll%", "%sicherheitsprotokoll%", "%audit-protokoll%",
|
||||||
"%log-management%", "%sicherheitsereignis%protokoll%", "%audit-trail%"],
|
"%log-management%", "%sicherheitsereignis%protokoll%", "%audit-trail%"],
|
||||||
|
"remote_access": ["%fernwartung%", "%fernzugriff%", "%fernzugang%", "%fernwartungs%",
|
||||||
|
"%remote access%", "%remote maintenance%", "%remote management%",
|
||||||
|
"%remote-wartung%", "%remote-zugriff%", "%remote-zugang%",
|
||||||
|
"%sichere fernwartung%", "%fernsteuerung%"],
|
||||||
|
"updates": ["%sicherheitsupdate%", "%security update%", "%sicherheits-update%",
|
||||||
|
"%security patch%", "%sicherheitspatch%", "%patch-management%",
|
||||||
|
"%patchmanagement%", "%patch management%", "%firmware-update%",
|
||||||
|
"%firmware update%", "%software-update%", "%software update%",
|
||||||
|
"%automatische aktualisierung%", "%update-mechanismus%",
|
||||||
|
"%update-bereitstellung%", "%bereitstellung von updates%",
|
||||||
|
"%sichere aktualisierung%", "%signierte update%", "%update-paket%"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user