package iace import ( "encoding/json" "fmt" "time" "github.com/google/uuid" ) // hazardUUID generates a deterministic UUID for a hazard library entry // based on category and a 1-based index within that category. func hazardUUID(category string, index int) uuid.UUID { name := fmt.Sprintf("iace.hazard.%s.%d", category, index) return uuid.NewSHA1(uuid.NameSpaceDNS, []byte(name)) } // mustMarshalJSON marshals the given value to json.RawMessage, panicking on error. // This is safe to use for static data known at compile time. func mustMarshalJSON(v interface{}) json.RawMessage { data, err := json.Marshal(v) if err != nil { panic(fmt.Sprintf("hazard_library: failed to marshal JSON: %v", err)) } return data } // GetBuiltinHazardLibrary returns the complete built-in hazard library with 40+ // template entries for SW/FW/KI hazards in industrial machines. These entries are // intended to be seeded into the iace_hazard_library table during initial setup. // // All entries have IsBuiltin=true and TenantID=nil (system-level templates). // UUIDs are deterministic, generated via uuid.NewSHA1 based on category and index. func GetBuiltinHazardLibrary() []HazardLibraryEntry { now := time.Now() entries := []HazardLibraryEntry{ // ==================================================================== // Category: false_classification (4 entries) // ==================================================================== { ID: hazardUUID("false_classification", 1), Category: "false_classification", Name: "Falsche Bauteil-Klassifikation durch KI", Description: "Das KI-Modell klassifiziert ein Bauteil fehlerhaft, was zu falscher Weiterverarbeitung oder Montage fuehren kann.", DefaultSeverity: 4, DefaultProbability: 3, ApplicableComponentTypes: []string{"ai_model", "sensor"}, RegulationReferences: []string{"EU AI Act Art. 9", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Redundante Pruefung", "Konfidenz-Schwellwert"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("false_classification", 2), Category: "false_classification", Name: "Falsche Qualitaetsentscheidung (IO/NIO)", Description: "Fehlerhafte IO/NIO-Entscheidung durch das KI-System fuehrt dazu, dass defekte Teile als gut bewertet oder gute Teile verworfen werden.", DefaultSeverity: 4, DefaultProbability: 3, ApplicableComponentTypes: []string{"ai_model", "software"}, RegulationReferences: []string{"EU AI Act Art. 9", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Human-in-the-Loop", "Stichproben-Gegenpruefung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("false_classification", 3), Category: "false_classification", Name: "Fehlklassifikation bei Grenzwertfaellen", Description: "Bauteile nahe an Toleranzgrenzen werden systematisch falsch klassifiziert, da das Modell in Grenzwertbereichen unsicher agiert.", DefaultSeverity: 3, DefaultProbability: 4, ApplicableComponentTypes: []string{"ai_model"}, RegulationReferences: []string{"EU AI Act Art. 9", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Erweitertes Training", "Grauzone-Eskalation"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("false_classification", 4), Category: "false_classification", Name: "Verwechslung von Bauteiltypen", Description: "Unterschiedliche Bauteiltypen werden vom KI-Modell verwechselt, was zu falscher Montage oder Verarbeitung fuehrt.", DefaultSeverity: 4, DefaultProbability: 2, ApplicableComponentTypes: []string{"ai_model", "sensor"}, RegulationReferences: []string{"EU AI Act Art. 9", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Barcode-Gegenpruefung", "Doppelte Sensorik"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: timing_error (3 entries) // ==================================================================== { ID: hazardUUID("timing_error", 1), Category: "timing_error", Name: "Verzoegerte KI-Reaktion in Echtzeitsystem", Description: "Die KI-Inferenz dauert laenger als die zulaessige Echtzeitfrist, was zu verspaeteten Sicherheitsreaktionen fuehrt.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"software", "ai_model"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849", "IEC 62443"}, SuggestedMitigations: mustMarshalJSON([]string{"Watchdog-Timer", "Fallback-Steuerung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("timing_error", 2), Category: "timing_error", Name: "Echtzeit-Verletzung Safety-Loop", Description: "Der sicherheitsgerichtete Regelkreis kann die geforderten Zykluszeiten nicht einhalten, wodurch Sicherheitsfunktionen versagen koennen.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"software", "firmware"}, RegulationReferences: []string{"ISO 13849", "IEC 61508", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Deterministische Ausfuehrung", "WCET-Analyse"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("timing_error", 3), Category: "timing_error", Name: "Timing-Jitter bei Netzwerkkommunikation", Description: "Schwankende Netzwerklatenzen fuehren zu unvorhersehbaren Verzoegerungen in der Datenuebertragung sicherheitsrelevanter Signale.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"network", "software"}, RegulationReferences: []string{"IEC 62443", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"TSN-Netzwerk", "Pufferung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: data_poisoning (2 entries) // ==================================================================== { ID: hazardUUID("data_poisoning", 1), Category: "data_poisoning", Name: "Manipulierte Trainingsdaten", Description: "Trainingsdaten werden absichtlich oder unbeabsichtigt manipuliert, wodurch das Modell systematisch fehlerhafte Entscheidungen trifft.", DefaultSeverity: 4, DefaultProbability: 2, ApplicableComponentTypes: []string{"ai_model"}, RegulationReferences: []string{"EU AI Act Art. 10", "CRA"}, SuggestedMitigations: mustMarshalJSON([]string{"Daten-Validierung", "Anomalie-Erkennung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("data_poisoning", 2), Category: "data_poisoning", Name: "Adversarial Input Angriff", Description: "Gezielte Manipulation von Eingabedaten (z.B. Bilder, Sensorsignale), um das KI-Modell zu taeuschen und Fehlentscheidungen auszuloesen.", DefaultSeverity: 4, DefaultProbability: 2, ApplicableComponentTypes: []string{"ai_model", "sensor"}, RegulationReferences: []string{"EU AI Act Art. 15", "CRA", "IEC 62443"}, SuggestedMitigations: mustMarshalJSON([]string{"Input-Validation", "Adversarial Training"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: model_drift (3 entries) // ==================================================================== { ID: hazardUUID("model_drift", 1), Category: "model_drift", Name: "Performance-Degradation durch Concept Drift", Description: "Die statistische Verteilung der Eingabedaten aendert sich ueber die Zeit, wodurch die Modellgenauigkeit schleichend abnimmt.", DefaultSeverity: 3, DefaultProbability: 4, ApplicableComponentTypes: []string{"ai_model"}, RegulationReferences: []string{"EU AI Act Art. 9", "EU AI Act Art. 72"}, SuggestedMitigations: mustMarshalJSON([]string{"Monitoring-Dashboard", "Automatisches Retraining"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("model_drift", 2), Category: "model_drift", Name: "Data Drift durch veraenderte Umgebung", Description: "Aenderungen in der physischen Umgebung (Beleuchtung, Temperatur, Material) fuehren zu veraenderten Sensordaten und Modellfehlern.", DefaultSeverity: 3, DefaultProbability: 4, ApplicableComponentTypes: []string{"ai_model", "sensor"}, RegulationReferences: []string{"EU AI Act Art. 9", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Statistische Ueberwachung", "Sensor-Kalibrierung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("model_drift", 3), Category: "model_drift", Name: "Schleichende Modell-Verschlechterung", Description: "Ohne aktives Monitoring verschlechtert sich die Modellqualitaet ueber Wochen oder Monate unbemerkt.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"ai_model"}, RegulationReferences: []string{"EU AI Act Art. 9", "EU AI Act Art. 72"}, SuggestedMitigations: mustMarshalJSON([]string{"Regelmaessige Evaluierung", "A/B-Testing"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: sensor_spoofing (3 entries) // ==================================================================== { ID: hazardUUID("sensor_spoofing", 1), Category: "sensor_spoofing", Name: "Kamera-Manipulation / Abdeckung", Description: "Kamerasensoren werden absichtlich oder unbeabsichtigt abgedeckt oder manipuliert, sodass das System auf Basis falscher Bilddaten agiert.", DefaultSeverity: 4, DefaultProbability: 2, ApplicableComponentTypes: []string{"sensor"}, RegulationReferences: []string{"IEC 62443", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Plausibilitaetspruefung", "Mehrfach-Sensorik"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("sensor_spoofing", 2), Category: "sensor_spoofing", Name: "Sensor-Signal-Injection", Description: "Einspeisung gefaelschter Signale in die Sensorleitungen oder Schnittstellen, um das System gezielt zu manipulieren.", DefaultSeverity: 5, DefaultProbability: 1, ApplicableComponentTypes: []string{"sensor", "network"}, RegulationReferences: []string{"IEC 62443", "CRA"}, SuggestedMitigations: mustMarshalJSON([]string{"Signalverschluesselung", "Anomalie-Erkennung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("sensor_spoofing", 3), Category: "sensor_spoofing", Name: "Umgebungsbasierte Sensor-Taeuschung", Description: "Natuerliche oder kuenstliche Umgebungsveraenderungen (Licht, Staub, Vibration) fuehren zu fehlerhaften Sensorwerten.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"sensor"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Sensor-Fusion", "Redundanz"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: communication_failure (3 entries) // ==================================================================== { ID: hazardUUID("communication_failure", 1), Category: "communication_failure", Name: "Feldbus-Ausfall", Description: "Ausfall des industriellen Feldbusses (z.B. PROFINET, EtherCAT) fuehrt zum Verlust der Kommunikation zwischen Steuerung und Aktorik.", DefaultSeverity: 4, DefaultProbability: 3, ApplicableComponentTypes: []string{"network", "controller"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849", "IEC 62443"}, SuggestedMitigations: mustMarshalJSON([]string{"Redundanter Bus", "Safe-State-Transition"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("communication_failure", 2), Category: "communication_failure", Name: "Cloud-Verbindungsverlust", Description: "Die Verbindung zur Cloud-Infrastruktur bricht ab, wodurch cloud-abhaengige Funktionen (z.B. Modell-Updates, Monitoring) nicht verfuegbar sind.", DefaultSeverity: 3, DefaultProbability: 4, ApplicableComponentTypes: []string{"network", "software"}, RegulationReferences: []string{"CRA", "EU AI Act Art. 15"}, SuggestedMitigations: mustMarshalJSON([]string{"Offline-Faehigkeit", "Edge-Computing"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("communication_failure", 3), Category: "communication_failure", Name: "Netzwerk-Latenz-Spitzen", Description: "Unkontrollierte Latenzspitzen im Netzwerk fuehren zu Timeouts und verspaeteter Datenlieferung an sicherheitsrelevante Systeme.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"network"}, RegulationReferences: []string{"IEC 62443", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"QoS-Konfiguration", "Timeout-Handling"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: unauthorized_access (4 entries) // ==================================================================== { ID: hazardUUID("unauthorized_access", 1), Category: "unauthorized_access", Name: "Unautorisierter Remote-Zugriff", Description: "Ein Angreifer erlangt ueber das Netzwerk Zugriff auf die Maschinensteuerung und kann sicherheitsrelevante Parameter aendern.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"network", "software"}, RegulationReferences: []string{"IEC 62443", "CRA", "EU AI Act Art. 15"}, SuggestedMitigations: mustMarshalJSON([]string{"VPN", "MFA", "Netzwerksegmentierung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("unauthorized_access", 2), Category: "unauthorized_access", Name: "Konfigurations-Manipulation", Description: "Sicherheitsrelevante Konfigurationsparameter werden unautorisiert geaendert, z.B. Grenzwerte, Schwellwerte oder Betriebsmodi.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"software", "firmware"}, RegulationReferences: []string{"IEC 62443", "CRA", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Zugriffskontrolle", "Audit-Log"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("unauthorized_access", 3), Category: "unauthorized_access", Name: "Privilege Escalation", Description: "Ein Benutzer oder Prozess erlangt hoehere Berechtigungen als vorgesehen und kann sicherheitskritische Aktionen ausfuehren.", DefaultSeverity: 5, DefaultProbability: 1, ApplicableComponentTypes: []string{"software"}, RegulationReferences: []string{"IEC 62443", "CRA"}, SuggestedMitigations: mustMarshalJSON([]string{"RBAC", "Least Privilege"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("unauthorized_access", 4), Category: "unauthorized_access", Name: "Supply-Chain-Angriff auf Komponente", Description: "Eine kompromittierte Softwarekomponente oder Firmware wird ueber die Lieferkette eingeschleust und enthaelt Schadcode oder Backdoors.", DefaultSeverity: 5, DefaultProbability: 1, ApplicableComponentTypes: []string{"software", "firmware"}, RegulationReferences: []string{"CRA", "IEC 62443", "EU AI Act Art. 15"}, SuggestedMitigations: mustMarshalJSON([]string{"SBOM", "Signaturpruefung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: firmware_corruption (3 entries) // ==================================================================== { ID: hazardUUID("firmware_corruption", 1), Category: "firmware_corruption", Name: "Update-Abbruch mit inkonsistentem Zustand", Description: "Ein Firmware-Update wird unterbrochen (z.B. Stromausfall), wodurch das System in einem inkonsistenten und potenziell unsicheren Zustand verbleibt.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"firmware"}, RegulationReferences: []string{"CRA", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"A/B-Partitioning", "Rollback"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("firmware_corruption", 2), Category: "firmware_corruption", Name: "Rollback-Fehler auf alte Version", Description: "Ein Rollback auf eine aeltere Firmware-Version schlaegt fehl oder fuehrt zu Inkompatibilitaeten mit der aktuellen Hardware-/Softwarekonfiguration.", DefaultSeverity: 4, DefaultProbability: 2, ApplicableComponentTypes: []string{"firmware"}, RegulationReferences: []string{"CRA", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Versionsmanagement", "Kompatibilitaetspruefung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("firmware_corruption", 3), Category: "firmware_corruption", Name: "Boot-Chain-Angriff", Description: "Die Bootsequenz wird manipuliert, um unsignierte oder kompromittierte Firmware auszufuehren, was die gesamte Sicherheitsarchitektur untergaebt.", DefaultSeverity: 5, DefaultProbability: 1, ApplicableComponentTypes: []string{"firmware"}, RegulationReferences: []string{"CRA", "IEC 62443"}, SuggestedMitigations: mustMarshalJSON([]string{"Secure Boot", "TPM"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: safety_boundary_violation (4 entries) // ==================================================================== { ID: hazardUUID("safety_boundary_violation", 1), Category: "safety_boundary_violation", Name: "Kraft-/Drehmoment-Ueberschreitung", Description: "Aktorische Systeme ueberschreiten die zulaessigen Kraft- oder Drehmomentwerte, was zu Verletzungen oder Maschinenschaeden fuehren kann.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"controller", "actuator"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849", "IEC 62061"}, SuggestedMitigations: mustMarshalJSON([]string{"Hardware-Limiter", "SIL-Ueberwachung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("safety_boundary_violation", 2), Category: "safety_boundary_violation", Name: "Geschwindigkeitsueberschreitung Roboter", Description: "Ein Industrieroboter ueberschreitet die zulaessige Geschwindigkeit, insbesondere bei Mensch-Roboter-Kollaboration.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"controller", "software"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849", "ISO 10218"}, SuggestedMitigations: mustMarshalJSON([]string{"Safe Speed Monitoring", "Lichtgitter"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("safety_boundary_violation", 3), Category: "safety_boundary_violation", Name: "Versagen des Safe-State", Description: "Das System kann im Fehlerfall keinen sicheren Zustand einnehmen, da die Sicherheitssteuerung selbst versagt.", DefaultSeverity: 5, DefaultProbability: 1, ApplicableComponentTypes: []string{"controller", "software", "firmware"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849", "IEC 62061"}, SuggestedMitigations: mustMarshalJSON([]string{"Redundante Sicherheitssteuerung", "Diverse Programmierung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("safety_boundary_violation", 4), Category: "safety_boundary_violation", Name: "Arbeitsraum-Verletzung", Description: "Ein Roboter oder Aktor verlaesst seinen definierten Arbeitsraum und dringt in den Schutzbereich von Personen ein.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"controller", "sensor"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849", "ISO 10218"}, SuggestedMitigations: mustMarshalJSON([]string{"Sichere Achsueberwachung", "Schutzzaun-Sensorik"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: mode_confusion (3 entries) // ==================================================================== { ID: hazardUUID("mode_confusion", 1), Category: "mode_confusion", Name: "Falsche Betriebsart aktiv", Description: "Das System befindet sich in einer unbeabsichtigten Betriebsart (z.B. Automatik statt Einrichtbetrieb), was zu unerwarteten Maschinenbewegungen fuehrt.", DefaultSeverity: 4, DefaultProbability: 3, ApplicableComponentTypes: []string{"hmi", "software"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Betriebsart-Anzeige", "Schluesselschalter"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("mode_confusion", 2), Category: "mode_confusion", Name: "Wartung/Normal-Verwechslung", Description: "Das System wird im Normalbetrieb gewartet oder der Wartungsmodus wird nicht korrekt verlassen, was zu gefaehrlichen Situationen fuehrt.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"hmi", "software"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Zugangskontrolle", "Sicherheitsverriegelung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("mode_confusion", 3), Category: "mode_confusion", Name: "Automatik-Eingriff waehrend Handbetrieb", Description: "Das System wechselt waehrend des Handbetriebs unerwartet in den Automatikbetrieb, wodurch eine Person im Gefahrenbereich verletzt werden kann.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"software", "controller"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Exklusive Betriebsarten", "Zustimmtaster"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: unintended_bias (2 entries) // ==================================================================== { ID: hazardUUID("unintended_bias", 1), Category: "unintended_bias", Name: "Diskriminierende KI-Entscheidung", Description: "Das KI-Modell trifft systematisch diskriminierende Entscheidungen, z.B. bei der Qualitaetsbewertung bestimmter Produktchargen oder Lieferanten.", DefaultSeverity: 3, DefaultProbability: 2, ApplicableComponentTypes: []string{"ai_model"}, RegulationReferences: []string{"EU AI Act Art. 10", "EU AI Act Art. 71"}, SuggestedMitigations: mustMarshalJSON([]string{"Bias-Testing", "Fairness-Metriken"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("unintended_bias", 2), Category: "unintended_bias", Name: "Verzerrte Trainingsdaten", Description: "Die Trainingsdaten sind nicht repraesentativ und enthalten systematische Verzerrungen, die zu unfairen oder fehlerhaften Modellergebnissen fuehren.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"ai_model"}, RegulationReferences: []string{"EU AI Act Art. 10", "EU AI Act Art. 71"}, SuggestedMitigations: mustMarshalJSON([]string{"Datensatz-Audit", "Ausgewogenes Sampling"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: update_failure (3 entries) // ==================================================================== { ID: hazardUUID("update_failure", 1), Category: "update_failure", Name: "Unvollstaendiges OTA-Update", Description: "Ein Over-the-Air-Update wird nur teilweise uebertragen oder angewendet, wodurch das System in einem inkonsistenten Zustand verbleibt.", DefaultSeverity: 4, DefaultProbability: 3, ApplicableComponentTypes: []string{"firmware", "software"}, RegulationReferences: []string{"CRA", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Atomare Updates", "Integritaetspruefung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("update_failure", 2), Category: "update_failure", Name: "Versionskonflikt nach Update", Description: "Nach einem Update sind Software- und Firmware-Versionen inkompatibel, was zu Fehlfunktionen oder Ausfaellen fuehrt.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"software", "firmware"}, RegulationReferences: []string{"CRA", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Kompatibilitaetsmatrix", "Staging-Tests"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("update_failure", 3), Category: "update_failure", Name: "Unkontrollierter Auto-Update", Description: "Ein automatisches Update wird ohne Genehmigung oder ausserhalb eines Wartungsfensters eingespielt und stoert den laufenden Betrieb.", DefaultSeverity: 4, DefaultProbability: 2, ApplicableComponentTypes: []string{"software"}, RegulationReferences: []string{"CRA", "Maschinenverordnung 2023/1230", "IEC 62443"}, SuggestedMitigations: mustMarshalJSON([]string{"Update-Genehmigung", "Wartungsfenster"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, } return entries }