Referenzmatrix nach Mockup + Risiko-Bewertungsmatrix editierbar
Referenz-/Coverage-Matrix (§9.3) wie im GEFIM-Mockup aufgebaut: - Zwei Richtungen „nach Control" und „nach Dokument" (Umschalter) + Assessment- Export-Button (Platzhalter). - nach Control: Control-Nr + -Titel, je Anforderung MUSS/SOLL-Badge + Text, Richtlinie-Link, Verfahren-Chips. - nach Dokument: gruppiert je Richtlinie (Kopfzeile), Zeilen Control · Anforderung · Umsetzung (Variablen aufgelöst, BL entfernt) · Verfahren. - 44 Control-Titel aus dem Mockup übernommen (lib/control-titles.ts), numerische Control-Sortierung. Risiko-Bewertungsmatrix jetzt editierbar (war nur anzeigend / Edit-Popover wurde vom overflow-Container abgeschnitten): - Risikoklassen, Eintrittswahrscheinlichkeit UND Schadenskategorien inline bearbeitbar (Klick auf Zeile klappt Formular auf — kein abgeschnittenes Popover). - Neue Actions updateEwLevel/updateDamageDimension; Krypto-Register-Clipping (overflow-x-auto) ebenfalls entfernt. Verifiziert: beide Referenz-Richtungen gerendert; Risikoklasse-Edit end-to-end gespeichert (persistiert). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* VDA-ISA-2027 Control-Titel (aus dem GEFIM-Mockup übernommen) für die
|
||||
* Referenz-/Coverage-Matrix. Fallback: „ISA <ref>“ wenn nicht enthalten.
|
||||
*/
|
||||
export const CONTROL_TITLES: Record<string, string> = {
|
||||
"1.2.1": "Steuerung der Informationssicherheit",
|
||||
"1.2.2": "Organisation der Verantwortlichkeiten",
|
||||
"1.2.3": "Informationssicherheit in Projekten",
|
||||
"1.3.1": "Identifikation von Assets",
|
||||
"1.3.2": "Klassifizierung",
|
||||
"1.3.3": "Zugelassene Hardware",
|
||||
"1.3.4": "Zugelassene Software",
|
||||
"1.4.1": "Risikomanagement",
|
||||
"1.5.1": "Compliance-Prüfung im IS-Betrieb",
|
||||
"1.5.2": "Unabhängige Überprüfung",
|
||||
"1.6.1": "Meldung von Ereignissen",
|
||||
"1.6.2": "Behandlung von Sicherheitsereignissen",
|
||||
"1.6.3": "Krisenmanagement",
|
||||
"2.1.1": "Qualifikation für sensible Tätigkeiten",
|
||||
"2.1.2": "Vertragliche Verpflichtung",
|
||||
"2.1.3": "Sensibilisierung und Schulung",
|
||||
"2.1.4": "Mobiles Arbeiten",
|
||||
"3.1.1": "Sicherheitszonen und Zutritt",
|
||||
"3.1.3": "Umgang mit unterstützenden Betriebsmitteln",
|
||||
"3.1.4": "Mobile Geräte und Datenträger",
|
||||
"4.1.1": "Identifikationsmittel",
|
||||
"4.1.2": "Sichere Anmeldung",
|
||||
"4.1.3": "Konten und Anmeldeinformationen",
|
||||
"4.2.1": "Zugriffsrechte",
|
||||
"5.1.1": "Einsatz kryptografischer Verfahren",
|
||||
"5.1.2": "Schutz bei Uebertragung",
|
||||
"5.2.1": "Change-Management",
|
||||
"5.2.2": "Trennung der Umgebungen",
|
||||
"5.2.3": "Schutz vor Malware",
|
||||
"5.2.4": "Protokollierung und Auswertung",
|
||||
"5.2.5": "Schwachstellen- und Patch-Management",
|
||||
"5.2.6": "Technische Überprüfung",
|
||||
"5.2.7": "Netzwerksicherheit",
|
||||
"5.2.8": "Kontinuitätsplanung IT",
|
||||
"5.2.9": "Backup und Wiederherstellung",
|
||||
"5.3.1": "Sicherheit bei Beschaffung/Entwicklung",
|
||||
"5.3.2": "Anforderungen an Netzdienste",
|
||||
"5.3.3": "Rückgabe und sichere Löschung",
|
||||
"5.3.4": "Externe/geteilte IT-Dienste und Cloud",
|
||||
"6.1.1": "Informationssicherheit bei Lieferanten",
|
||||
"6.1.2": "Vertraulichkeit",
|
||||
"6.1.3": "Abgrenzung der Verantwortlichkeiten",
|
||||
"7.1.1": "Regulatorische und vertragliche Compliance",
|
||||
"7.1.2": "Schutz personenbezogener Daten",
|
||||
};
|
||||
|
||||
export function controlTitle(ref: string): string {
|
||||
return CONTROL_TITLES[ref] ?? `ISA ${ref}`;
|
||||
}
|
||||
|
||||
/** Numerischer Vergleich gepunkteter Control-Refs (1.2.10 nach 1.2.2). */
|
||||
export function compareControl(a: string, b: string): number {
|
||||
const pa = a.split('.').map(Number), pb = b.split('.').map(Number);
|
||||
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
||||
if ((pa[i] || 0) !== (pb[i] || 0)) return (pa[i] || 0) - (pb[i] || 0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user