Risiko-Minderung dezimal + editierbar, Bedrohungs-/Schwachstellen-Kataloge
- Minderung je Maßnahmen-Verknüpfung jetzt dezimal (0,00–4,00 statt ganzer Punkte): mehrere Maßnahmen summieren sich, bis eine Dimension einen vollen Punkt sinkt; Rest-Risiko entsprechend dezimal (z. B. 2,5 × 4 = 10), gerundet auf 2 Nachkommastellen, lokalisierte Anzeige - Minderung bereits verknüpfter Maßnahmen direkt im Risiko-Bearbeiten editierbar (Eingabefelder je Verknüpfung + Speichern-Button); Komma-Eingaben werden akzeptiert - Globale Kataloge Bedrohungen/Schwachstellen (je 15 Einträge, Seed): Eingabefelder schlagen per datalist Katalogwerte vor, Freitext bleibt weiterhin möglich (SPEC §5 Threat/Vulnerability) - Schema: reduction*/residual* auf Float, Threat-/Vulnerability-Modelle Verifiziert: −1 + −0,5 Minderung → Rest 2,5 × 4 = 10 · Erhöht (DB + Anzeige), Neuberechnung auch beim Entfernen einer Verknüpfung. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,7 +15,52 @@ const prisma = new PrismaClient({
|
||||
|
||||
const DEMO_PASSWORD = "Demo1234!";
|
||||
|
||||
const THREATS = [
|
||||
"Schadsoftware / Ransomware",
|
||||
"Phishing / Social Engineering",
|
||||
"Innentäter / Missbrauch von Berechtigungen",
|
||||
"Diebstahl oder Verlust von Geräten",
|
||||
"Ausfall von IT-Systemen oder Diensten",
|
||||
"Ausfall eines Dienstleisters / Lieferanten",
|
||||
"Stromausfall / Infrastrukturausfall",
|
||||
"Feuer / Wasser / Elementarschäden",
|
||||
"Unbefugter physischer Zutritt",
|
||||
"Denial-of-Service-Angriff",
|
||||
"Datenabfluss / Industriespionage",
|
||||
"Fehlbedienung durch Mitarbeitende",
|
||||
"Softwarefehler / fehlerhafte Updates",
|
||||
"Kompromittierte Zugangsdaten",
|
||||
"Rechtliche / regulatorische Verstöße",
|
||||
];
|
||||
|
||||
const VULNERABILITIES = [
|
||||
"Fehlende oder veraltete Backups",
|
||||
"Fehlende Netzwerksegmentierung",
|
||||
"Unzureichendes Patch-Management",
|
||||
"Schwache oder wiederverwendete Passwörter",
|
||||
"Fehlende Multi-Faktor-Authentifizierung",
|
||||
"Übermäßige Berechtigungen / fehlendes Least-Privilege",
|
||||
"Fehlende Awareness / Schulungen",
|
||||
"Unverschlüsselte Datenträger oder Übertragungen",
|
||||
"Kein Notfallkonzept / ungetesteter Wiederanlauf",
|
||||
"Single Point of Failure (Technik oder Person)",
|
||||
"Unzureichende Protokollierung / Überwachung",
|
||||
"Veraltete oder nicht mehr unterstützte Software",
|
||||
"Fehlende Vertrags-/AV-Regelungen mit Dienstleistern",
|
||||
"Offene, ungenutzte Dienste und Ports",
|
||||
"Unklare Verantwortlichkeiten",
|
||||
];
|
||||
|
||||
async function main() {
|
||||
// 0. Globale Kataloge Bedrohungen/Schwachstellen (Vorschläge, Freitext bleibt möglich)
|
||||
for (const name of THREATS) {
|
||||
await prisma.threat.upsert({ where: { name }, update: {}, create: { name } });
|
||||
}
|
||||
for (const name of VULNERABILITIES) {
|
||||
await prisma.vulnerability.upsert({ where: { name }, update: {}, create: { name } });
|
||||
}
|
||||
console.log(`✔ Kataloge: ${THREATS.length} Bedrohungen, ${VULNERABILITIES.length} Schwachstellen`);
|
||||
|
||||
// 1. Global permission catalog
|
||||
for (const key of PERMISSIONS) {
|
||||
await prisma.permission.upsert({ where: { key }, update: {}, create: { key } });
|
||||
|
||||
Reference in New Issue
Block a user