Files
breakpilot-compliance/ai-compliance-sdk/internal/iace/failure_mode_library_ext.go
T
Benjamin Admin 9c0d471277 feat(iace): Sprint 4D — Failure Mode Layer (FMEA-Faehigkeit)
150 Failure Modes in 11 ComponentTypes:
- Sensor (20): Signalverlust, Drift, Falschmeldung, Encoder-spezifisch
- Controller (20): Watchdog, Speicher, Bus, Safety-SPS CCF, Antrieb
- Actuator (15): Blockiert, Ueberlast, Haltekraftverlust, Schuetz verschweisst
- Mechanical (20): Ermuedungsbruch, Lagerschaden, Kettenriss, Werkzeugbruch
- Electrical (15): Isolation, Kurzschluss, Erdschluss, Lichtbogen
- Software (15): Exception, Race Condition, Buffer Overflow, Timing
- Hydraulic/Pneumatic (15): Schlauchplatzer, Ventil blockiert, Kavitation
- Safety Device (15): Failure-to-trip, CCF, Bremsenverschleiss, PL-Degradation
- Network (10): Paketverlust, Latenz, Man-in-the-Middle
- AI/ML (5): Model Drift, Adversarial Input, Bias

Architektur:
- FailureModeEntry Struct mit FMEA-Scores (Severity/Occurrence/Detection 1-10)
- RPZ = S x O x D (max 1000, Schwelle >= 100 = Massnahme erforderlich)
- RequiredFailureModes auf HazardPattern fuer FM-gesteuertes Pattern-Matching
- MatchInput.FailureModes + MatchReason "failure_mode" (Explainability)
- GET /failure-modes?component_type= API-Endpoint

10 Tests: Count, UniqueIDs, ValidTypes, NonEmpty, Distribution, RPZ (3x), NilFires, RPZDistribution

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-10 22:24:02 +02:00

113 lines
24 KiB
Go

package iace
// ── Electrical Failure Modes (15) ──────────────────────────────────
func getElectricalFailureModes() []FailureModeEntry {
return []FailureModeEntry{
{ID: "FM-ELEC-01", ComponentType: "electrical", Mode: "insulation_breakdown", NameDE: "Isolationsversagen", NameEN: "Insulation breakdown", Effect: "Erdschluss, Stromschlagrisiko am Gehaeuse", DetectionHint: "Isolationsmessung, RCD", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 4},
{ID: "FM-ELEC-02", ComponentType: "electrical", Mode: "short_circuit", NameDE: "Kurzschluss", NameEN: "Short circuit", Effect: "Ueberstrom, Brand, Bauteilzerstoerung", DetectionHint: "Sicherungsautomat, Kurzschlussanzeige", DefaultSeverity: 8, DefaultOccurrence: 2, DefaultDetection: 2},
{ID: "FM-ELEC-03", ComponentType: "electrical", Mode: "overload", NameDE: "Ueberlast Stromkreis", NameEN: "Circuit overload", Effect: "Leitungserwaermung, Isolationsschaeden, Brand", DetectionHint: "Motorschutzschalter, Strommessung", DefaultSeverity: 7, DefaultOccurrence: 3, DefaultDetection: 2},
{ID: "FM-ELEC-04", ComponentType: "electrical", Mode: "earth_fault", NameDE: "Erdschluss", NameEN: "Earth fault", Effect: "Gefaehrliche Beruehrungsspannung am Maschinengehaeuse", DetectionHint: "RCD, Isolationswaechter", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 2},
{ID: "FM-ELEC-05", ComponentType: "electrical", Mode: "contact_failure", NameDE: "Kontaktversagen (Uebergangswiderstand)", NameEN: "Contact failure", Effect: "Erhoehter Widerstand, Erwaermung, intermittierender Ausfall", DetectionHint: "Thermografie, Widerstandsmessung", DefaultSeverity: 6, DefaultOccurrence: 4, DefaultDetection: 4},
{ID: "FM-ELEC-06", ComponentType: "electrical", Mode: "cable_damage", NameDE: "Kabelbeschaedigung", NameEN: "Cable damage", Effect: "Kurzschluss oder Unterbrechung, Stromschlagrisiko", DetectionHint: "Sichtpruefung, Isolationsmessung", DefaultSeverity: 7, DefaultOccurrence: 3, DefaultDetection: 3},
{ID: "FM-ELEC-07", ComponentType: "electrical", Mode: "overvoltage", NameDE: "Ueberspannung", NameEN: "Overvoltage", Effect: "Zerstoerung elektronischer Komponenten, Datenverlust", DetectionHint: "SPD, Spannungsueberwachung", DefaultSeverity: 7, DefaultOccurrence: 2, DefaultDetection: 3},
{ID: "FM-ELEC-08", ComponentType: "electrical", Mode: "undervoltage", NameDE: "Unterspannung", NameEN: "Undervoltage", Effect: "Steuerung faellt aus, Aktoren verlieren Haltekraft", DetectionHint: "Spannungsueberwachung, USV", DefaultSeverity: 7, DefaultOccurrence: 3, DefaultDetection: 2},
{ID: "FM-ELEC-09", ComponentType: "electrical", Mode: "phase_loss", NameDE: "Phasenverlust (Drehstrom)", NameEN: "Phase loss", Effect: "Motor laeuft auf 2 Phasen, Ueberhitzung, Momentverlust", DetectionHint: "Phasenueberwachungsrelais", DefaultSeverity: 7, DefaultOccurrence: 3, DefaultDetection: 2},
{ID: "FM-ELEC-10", ComponentType: "electrical", Mode: "residual_voltage", NameDE: "Restspannung nach Abschaltung", NameEN: "Residual voltage", Effect: "Stromschlag bei Wartung trotz Abschaltung", DetectionHint: "Entladewiderstaende, Spannungspruefung", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 4},
{ID: "FM-ELEC-11", ComponentType: "electrical", Mode: "pe_conductor_break", NameDE: "Schutzleiterbruch", NameEN: "PE conductor break", Effect: "Schutzerdung unwirksam, Gehaeuse wird spannungsfuehrend", DetectionHint: "Schutzleiter-Pruefung, RCD", DefaultSeverity: 10, DefaultOccurrence: 2, DefaultDetection: 4},
{ID: "FM-ELEC-12", ComponentType: "electrical", Mode: "arc_flash", NameDE: "Lichtbogenentladung", NameEN: "Arc flash", Effect: "Explosion, Verbrennungen, Blendung", DetectionHint: "Lichtbogenerkennungsschutzschalter", DefaultSeverity: 10, DefaultOccurrence: 1, DefaultDetection: 3},
{ID: "FM-ELEC-13", ComponentType: "electrical", Mode: "fuse_failure", NameDE: "Sicherungsversagen (nicht ausloesend)", NameEN: "Fuse failure to trip", Effect: "Ueberstromschutz unwirksam, nachgelagerte Schaeden", DetectionHint: "Selektivitaetspruefung, Schmelzsicherung pruefen", DefaultSeverity: 8, DefaultOccurrence: 1, DefaultDetection: 5},
{ID: "FM-ELEC-14", ComponentType: "electrical", Mode: "electrostatic_discharge", NameDE: "Elektrostatische Entladung (ESD)", NameEN: "Electrostatic discharge", Effect: "Elektronik-Schaeden, Zuendquelle in Ex-Bereichen", DetectionHint: "ESD-Schutz, Erdung", DefaultSeverity: 6, DefaultOccurrence: 3, DefaultDetection: 5},
{ID: "FM-ELEC-15", ComponentType: "electrical", Mode: "harmonic_distortion", NameDE: "Oberschwingungen im Netz", NameEN: "Harmonic distortion", Effect: "Erwaermung Transformatoren, Fehlausloesung RCD", DetectionHint: "Netzqualitaetsmessung, Oberschwingungsfilter", DefaultSeverity: 4, DefaultOccurrence: 4, DefaultDetection: 4},
}
}
// ── Software Failure Modes (15) ────────────────────────────────────
func getSoftwareFailureModes() []FailureModeEntry {
return []FailureModeEntry{
{ID: "FM-SW-01", ComponentType: "software", Mode: "unhandled_exception", NameDE: "Unbehandelte Ausnahme", NameEN: "Unhandled exception", Effect: "Programmabsturz, Steuerung friert ein", DetectionHint: "Exception-Logging, Watchdog", DefaultSeverity: 8, DefaultOccurrence: 3, DefaultDetection: 3},
{ID: "FM-SW-02", ComponentType: "software", Mode: "race_condition", NameDE: "Race Condition", NameEN: "Race condition", Effect: "Unvorhersehbares Timing, Ausgaben in falscher Reihenfolge", DetectionHint: "Code-Review, Concurrency-Tests", DefaultSeverity: 8, DefaultOccurrence: 2, DefaultDetection: 7},
{ID: "FM-SW-03", ComponentType: "software", Mode: "buffer_overflow", NameDE: "Pufferueberlauf", NameEN: "Buffer overflow", Effect: "Speicherverletzung, Programmabsturz oder Code-Injection", DetectionHint: "Statische Codeanalyse, Fuzzing", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 6},
{ID: "FM-SW-04", ComponentType: "software", Mode: "infinite_loop", NameDE: "Endlosschleife", NameEN: "Infinite loop", Effect: "Task blockiert, Watchdog loest aus, Steuerung reagiert nicht", DetectionHint: "Watchdog, Zykluszeitmonitoring", DefaultSeverity: 7, DefaultOccurrence: 2, DefaultDetection: 3},
{ID: "FM-SW-05", ComponentType: "software", Mode: "wrong_calculation", NameDE: "Falsche Berechnung", NameEN: "Wrong calculation", Effect: "Falsche Stellgroessen, Grenzwertueberschreitung nicht erkannt", DetectionHint: "Plausibilitaetspruefung, Verifikation", DefaultSeverity: 8, DefaultOccurrence: 2, DefaultDetection: 5},
{ID: "FM-SW-06", ComponentType: "software", Mode: "division_by_zero", NameDE: "Division durch Null", NameEN: "Division by zero", Effect: "Programmabsturz oder undefinierter Wert in Regelkreis", DetectionHint: "Defensive Programmierung, Code-Review", DefaultSeverity: 7, DefaultOccurrence: 2, DefaultDetection: 4},
{ID: "FM-SW-07", ComponentType: "software", Mode: "integer_overflow", NameDE: "Ganzzahlueberlauf", NameEN: "Integer overflow", Effect: "Zaehler springt auf Negativwert, falsche Positionsberechnung", DetectionHint: "Statische Analyse, Grenzwerttest", DefaultSeverity: 7, DefaultOccurrence: 2, DefaultDetection: 5},
{ID: "FM-SW-08", ComponentType: "software", Mode: "state_machine_deadlock", NameDE: "Zustandsautomat-Deadlock", NameEN: "State machine deadlock", Effect: "Maschine blockiert in undefiniertem Zustand", DetectionHint: "Zustandsdiagramm-Analyse, Timeout-Handling", DefaultSeverity: 8, DefaultOccurrence: 2, DefaultDetection: 5},
{ID: "FM-SW-09", ComponentType: "software", Mode: "configuration_error", NameDE: "Konfigurationsfehler", NameEN: "Configuration error", Effect: "Falsche Parameter, Grenzwerte oder Ablaufsteuerung", DetectionHint: "Konfigurations-Validierung, Checksumme", DefaultSeverity: 7, DefaultOccurrence: 3, DefaultDetection: 4},
{ID: "FM-SW-10", ComponentType: "software", Mode: "update_regression", NameDE: "Regressionsfehler nach Update", NameEN: "Update regression", Effect: "Bestehende Funktion bricht nach Software-Update", DetectionHint: "Regressionstests, Rollback-Plan", DefaultSeverity: 7, DefaultOccurrence: 3, DefaultDetection: 4},
{ID: "FM-SW-11", ComponentType: "software", Mode: "timing_violation", NameDE: "Echtzeit-Verletzung", NameEN: "Timing violation", Effect: "Sicherheitsfunktion reagiert zu langsam", DetectionHint: "Worst-Case-Execution-Time-Analyse", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 5},
{ID: "FM-SW-12", ComponentType: "software", Mode: "data_corruption", NameDE: "Datenverfaelschung", NameEN: "Data corruption", Effect: "Prozessdaten oder Safety-Parameter werden verfaelscht", DetectionHint: "CRC/Checksumme, diversitaere Verarbeitung", DefaultSeverity: 9, DefaultOccurrence: 1, DefaultDetection: 4},
{ID: "FM-SW-13", ComponentType: "software", Mode: "resource_leak", NameDE: "Ressourcen-Leck", NameEN: "Resource leak", Effect: "Speicher oder Handles gehen ueber Zeit verloren, System wird langsam", DetectionHint: "Langzeit-Monitoring, Heap-Analyse", DefaultSeverity: 5, DefaultOccurrence: 3, DefaultDetection: 6},
{ID: "FM-SW-14", ComponentType: "software", Mode: "wrong_unit_conversion", NameDE: "Falsche Einheitenumrechnung", NameEN: "Wrong unit conversion", Effect: "Werte werden falsch interpretiert (mm vs inch, bar vs psi)", DetectionHint: "Unit-Tests, Plausibilitaetspruefung", DefaultSeverity: 7, DefaultOccurrence: 2, DefaultDetection: 4},
{ID: "FM-SW-15", ComponentType: "software", Mode: "log_overflow", NameDE: "Log-Speicher voll", NameEN: "Log overflow", Effect: "Diagnosedaten gehen verloren, Fehleranalyse unmoeglich", DetectionHint: "Log-Rotation, Speicherueberwachung", DefaultSeverity: 3, DefaultOccurrence: 4, DefaultDetection: 3},
}
}
// ── Hydraulic/Pneumatic Failure Modes (15) ──────────────────────────
func getFluidFailureModes() []FailureModeEntry {
return []FailureModeEntry{
{ID: "FM-FLU-01", ComponentType: "hydraulic", Mode: "hose_burst", NameDE: "Schlauchplatzer", NameEN: "Hose burst", Effect: "Unkontrollierter Medienaustritt, Peitscheneffekt, Hautinjektion", DetectionHint: "Druckabfallerkennung, Schlauchbruchventil", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 3},
{ID: "FM-FLU-02", ComponentType: "hydraulic", Mode: "valve_stuck", NameDE: "Ventil blockiert", NameEN: "Valve stuck", Effect: "Hydraulikzylinder bewegt sich nicht oder haelt nicht", DetectionHint: "Stellungsueberwachung, Druckueberwachung", DefaultSeverity: 8, DefaultOccurrence: 3, DefaultDetection: 3},
{ID: "FM-FLU-03", ComponentType: "hydraulic", Mode: "seal_leak", NameDE: "Dichtungsleckage", NameEN: "Seal leakage", Effect: "Druckverlust, Oelkontamination, Rutschgefahr", DetectionHint: "Sichtpruefung, Fuellstandsueberwachung", DefaultSeverity: 5, DefaultOccurrence: 5, DefaultDetection: 3},
{ID: "FM-FLU-04", ComponentType: "hydraulic", Mode: "oil_contamination", NameDE: "Oelverschmutzung", NameEN: "Oil contamination", Effect: "Vorzeitiger Komponentenverschleiss, Ventilversagen", DetectionHint: "Oelanalyse, Filterueberwachung", DefaultSeverity: 6, DefaultOccurrence: 4, DefaultDetection: 4},
{ID: "FM-FLU-05", ComponentType: "hydraulic", Mode: "pump_cavitation", NameDE: "Pumpenkavitation", NameEN: "Pump cavitation", Effect: "Laufradschaeden, Druckverlust, Geraeusche", DetectionHint: "Saugdruckueberwachung, Geraeuschanalyse", DefaultSeverity: 6, DefaultOccurrence: 3, DefaultDetection: 4},
{ID: "FM-FLU-06", ComponentType: "hydraulic", Mode: "accumulator_failure", NameDE: "Speicherausfall (Hydrospeicher)", NameEN: "Accumulator failure", Effect: "Druckpolster fehlt, Druckspitzen nicht gedaempft", DetectionHint: "Vorfuelldruck pruefen, Blasenspeicher-Test", DefaultSeverity: 6, DefaultOccurrence: 3, DefaultDetection: 4},
{ID: "FM-FLU-07", ComponentType: "hydraulic", Mode: "pressure_relief_stuck", NameDE: "Druckbegrenzungsventil klemmt", NameEN: "Pressure relief valve stuck", Effect: "Maximaldruck wird ueberschritten, Bersten moeglich", DetectionHint: "Regelmassige Funktionspruefung", DefaultSeverity: 10, DefaultOccurrence: 2, DefaultDetection: 4},
{ID: "FM-FLU-08", ComponentType: "pneumatic", Mode: "air_leak", NameDE: "Druckluftleckage", NameEN: "Air leak", Effect: "Druckverlust, Zylinder haelt Position nicht", DetectionHint: "Leckagesuchgeraet, Druckabfalltest", DefaultSeverity: 4, DefaultOccurrence: 5, DefaultDetection: 3},
{ID: "FM-FLU-09", ComponentType: "pneumatic", Mode: "moisture_in_air", NameDE: "Feuchtigkeit in Druckluft", NameEN: "Moisture in compressed air", Effect: "Korrosion, Ventilversagen, Eisbildung", DetectionHint: "Kondensatableiter pruefen, Taupunktmessung", DefaultSeverity: 5, DefaultOccurrence: 4, DefaultDetection: 4},
{ID: "FM-FLU-10", ComponentType: "pneumatic", Mode: "compressor_overheating", NameDE: "Kompressor-Ueberhitzung", NameEN: "Compressor overheating", Effect: "Oeldampf im Druckluftnetz, Brandgefahr", DetectionHint: "Temperaturueberwachung, Thermostat", DefaultSeverity: 7, DefaultOccurrence: 3, DefaultDetection: 3},
{ID: "FM-FLU-11", ComponentType: "hydraulic", Mode: "cylinder_drift", NameDE: "Zylinderdrift (Lastabsacken)", NameEN: "Cylinder drift", Effect: "Last sackt langsam ab, Quetschgefahr", DetectionHint: "Positionsueberwachung, Lasthalteventil", DefaultSeverity: 8, DefaultOccurrence: 3, DefaultDetection: 4},
{ID: "FM-FLU-12", ComponentType: "hydraulic", Mode: "filter_clogging", NameDE: "Filterverstopfung", NameEN: "Filter clogging", Effect: "Druckdifferenz steigt, Bypass oeffnet, ungefilterte Partikel", DetectionHint: "Differenzdruckschalter, Wartungsintervall", DefaultSeverity: 5, DefaultOccurrence: 4, DefaultDetection: 2},
{ID: "FM-FLU-13", ComponentType: "hydraulic", Mode: "pressure_surge", NameDE: "Druckstoss (Joukowsky)", NameEN: "Pressure surge", Effect: "Kurzfristige Druckspitze schaedigt Leitungen und Armaturen", DetectionHint: "Druckstossdaempfer, langsam schliessende Ventile", DefaultSeverity: 8, DefaultOccurrence: 3, DefaultDetection: 5},
{ID: "FM-FLU-14", ComponentType: "hydraulic", Mode: "tank_overflow", NameDE: "Tankueberlauf", NameEN: "Tank overflow", Effect: "Oelverlust, Umweltkontamination, Rutschgefahr", DetectionHint: "Fuellstandsueberwachung mit Alarm", DefaultSeverity: 5, DefaultOccurrence: 3, DefaultDetection: 2},
{ID: "FM-FLU-15", ComponentType: "pneumatic", Mode: "quick_exhaust_failure", NameDE: "Schnellentlueftungsventil versagt", NameEN: "Quick exhaust valve failure", Effect: "Zylinder faehrt langsam zurueck, Zykluszeit steigt", DetectionHint: "Positionszeit-Ueberwachung", DefaultSeverity: 4, DefaultOccurrence: 3, DefaultDetection: 3},
}
}
// ── Safety Device Failure Modes (15) ───────────────────────────────
func getSafetyDeviceFailureModes() []FailureModeEntry {
return []FailureModeEntry{
{ID: "FM-SAF-01", ComponentType: "safety_device", Mode: "failure_to_trip", NameDE: "Schutzeinrichtung loest nicht aus", NameEN: "Failure to trip", Effect: "Gefahrsituation wird nicht erkannt, Person ungeschuetzt", DetectionHint: "Proof-Test, Funktionspruefung", DefaultSeverity: 10, DefaultOccurrence: 1, DefaultDetection: 5},
{ID: "FM-SAF-02", ComponentType: "safety_device", Mode: "spurious_trip", NameDE: "Fehlausloesung Schutzeinrichtung", NameEN: "Spurious trip", Effect: "Unnoetiger Maschinenstopp, Produktionsverlust, Fehlbedienung", DetectionHint: "Alarmstatistik, Diagnostik", DefaultSeverity: 3, DefaultOccurrence: 4, DefaultDetection: 2},
{ID: "FM-SAF-03", ComponentType: "safety_device", Mode: "degraded_response_time", NameDE: "Verlaengerte Reaktionszeit", NameEN: "Degraded response time", Effect: "Maschine stoppt zu spaet, Person wird erfasst", DetectionHint: "Reaktionszeitmessung, Proof-Test", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 6},
{ID: "FM-SAF-04", ComponentType: "safety_device", Mode: "guard_bypass", NameDE: "Schutzeinrichtung umgangen", NameEN: "Guard bypass", Effect: "Schutzfunktion komplett unwirksam", DetectionHint: "Manipulationserkennung, Codierung", DefaultSeverity: 10, DefaultOccurrence: 2, DefaultDetection: 5},
{ID: "FM-SAF-05", ComponentType: "safety_device", Mode: "interlock_wear", NameDE: "Verriegelungs-Verschleiss", NameEN: "Interlock wear", Effect: "Verriegelung greift nicht mehr zuverlaessig", DetectionHint: "Schaltspielzaehler, praeventiver Tausch", DefaultSeverity: 8, DefaultOccurrence: 3, DefaultDetection: 4},
{ID: "FM-SAF-06", ComponentType: "safety_device", Mode: "emergency_stop_defect", NameDE: "Not-Halt-Defekt", NameEN: "Emergency stop defect", Effect: "Not-Halt-Taster funktionslos, kein sofortiger Stopp moeglich", DetectionHint: "Taeglicher Funktionstest", DefaultSeverity: 10, DefaultOccurrence: 1, DefaultDetection: 2},
{ID: "FM-SAF-07", ComponentType: "safety_device", Mode: "safety_relay_stuck", NameDE: "Sicherheitsrelais klebt", NameEN: "Safety relay stuck", Effect: "Zwangsgefuehrter Kontakt oeffnet nicht, Abschaltung versagt", DetectionHint: "Zwangsoeffnungspruefung, Cross-Monitoring", DefaultSeverity: 10, DefaultOccurrence: 1, DefaultDetection: 3},
{ID: "FM-SAF-08", ComponentType: "safety_device", Mode: "brake_wear", NameDE: "Bremsenverschleiss", NameEN: "Brake wear", Effect: "Bremswirkung reduziert, Nachlaufweg verlaengert", DetectionHint: "Nachlaufweg-Messung, Bremsmoment-Test", DefaultSeverity: 8, DefaultOccurrence: 3, DefaultDetection: 4},
{ID: "FM-SAF-09", ComponentType: "safety_device", Mode: "muting_error", NameDE: "Muting-Fehler (Lichtvorhang)", NameEN: "Muting error", Effect: "Lichtvorhang wird im falschen Moment stummgeschaltet", DetectionHint: "Muting-Logik-Test, Timing-Pruefung", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 5},
{ID: "FM-SAF-10", ComponentType: "safety_device", Mode: "common_cause_failure", NameDE: "Gemeinsame-Ursache-Ausfall (CCF)", NameEN: "Common cause failure", Effect: "Beide redundante Kanaele fallen gleichzeitig aus", DetectionHint: "Diversitaet, getrennte Versorgung, DC-Anteil", DefaultSeverity: 10, DefaultOccurrence: 1, DefaultDetection: 8},
{ID: "FM-SAF-11", ComponentType: "safety_device", Mode: "guard_misaligned", NameDE: "Schutzeinrichtung falsch ausgerichtet", NameEN: "Guard misaligned", Effect: "Sicherheitsabstand nicht eingehalten, Zugang zum Gefahrbereich", DetectionHint: "Ausrichtungspruefung, Testkoerper", DefaultSeverity: 8, DefaultOccurrence: 2, DefaultDetection: 3},
{ID: "FM-SAF-12", ComponentType: "safety_device", Mode: "safety_function_not_tested", NameDE: "Sicherheitsfunktion nicht getestet", NameEN: "Safety function not tested", Effect: "Unerkannter Defekt, Schutzwirkung ungesichert", DetectionHint: "Proof-Test-Plan, Testprotokoll", DefaultSeverity: 8, DefaultOccurrence: 3, DefaultDetection: 7},
{ID: "FM-SAF-13", ComponentType: "safety_device", Mode: "pl_degradation", NameDE: "PL/SIL-Degradation", NameEN: "PL/SIL degradation", Effect: "Performance Level sinkt unter erforderlichen Wert", DetectionHint: "PL-Validierung, DC-Berechnung", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 6},
{ID: "FM-SAF-14", ComponentType: "safety_device", Mode: "enabling_device_failure", NameDE: "Zustimmschalter-Defekt", NameEN: "Enabling device failure", Effect: "Teach-Betrieb ohne Totmann-Sicherung moeglich", DetectionHint: "Funktionspruefung 3-Stufen-Schalter", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 3},
{ID: "FM-SAF-15", ComponentType: "safety_device", Mode: "restart_interlock_bypass", NameDE: "Wiederanlaufsperre umgangen", NameEN: "Restart interlock bypass", Effect: "Maschine startet automatisch nach Not-Halt ohne Quittierung", DetectionHint: "Wiederanlauf-Test, Softwarepruefung", DefaultSeverity: 10, DefaultOccurrence: 1, DefaultDetection: 4},
}
}
// ── Network Failure Modes (10) ─────────────────────────────────────
func getNetworkFailureModes() []FailureModeEntry {
return []FailureModeEntry{
{ID: "FM-NET-01", ComponentType: "network", Mode: "packet_loss", NameDE: "Paketverlust", NameEN: "Packet loss", Effect: "Steuerbefehle gehen verloren, Aktor reagiert verzoegert", DetectionHint: "Netzwerk-Monitoring, Retry-Mechanismus", DefaultSeverity: 7, DefaultOccurrence: 3, DefaultDetection: 3},
{ID: "FM-NET-02", ComponentType: "network", Mode: "latency_spike", NameDE: "Latenz-Spitze", NameEN: "Latency spike", Effect: "Echtzeitfaehigkeit verloren, Sicherheitsfunktion reagiert zu spaet", DetectionHint: "Jitter-Monitoring, QoS", DefaultSeverity: 8, DefaultOccurrence: 3, DefaultDetection: 4},
{ID: "FM-NET-03", ComponentType: "network", Mode: "network_disconnect", NameDE: "Netzwerktrennung", NameEN: "Network disconnect", Effect: "Steuerung verliert Verbindung zu Peripherie", DetectionHint: "Link-Ueberwachung, Heartbeat", DefaultSeverity: 8, DefaultOccurrence: 3, DefaultDetection: 2},
{ID: "FM-NET-04", ComponentType: "network", Mode: "man_in_the_middle", NameDE: "Man-in-the-Middle-Angriff", NameEN: "Man-in-the-middle attack", Effect: "Steuerbefehle werden abgefangen oder manipuliert", DetectionHint: "Verschluesselung, Integritaetspruefung", DefaultSeverity: 10, DefaultOccurrence: 1, DefaultDetection: 7},
{ID: "FM-NET-05", ComponentType: "network", Mode: "broadcast_storm", NameDE: "Broadcast-Sturm", NameEN: "Broadcast storm", Effect: "Netzwerk ueberlastet, alle Kommunikation blockiert", DetectionHint: "Storm-Control, VLAN-Segmentierung", DefaultSeverity: 7, DefaultOccurrence: 2, DefaultDetection: 3},
{ID: "FM-NET-06", ComponentType: "network", Mode: "switch_failure", NameDE: "Switch-Ausfall", NameEN: "Switch failure", Effect: "Netzwerksegment komplett offline", DetectionHint: "Redundanter Switch, Link-Aggregation", DefaultSeverity: 8, DefaultOccurrence: 2, DefaultDetection: 2},
{ID: "FM-NET-07", ComponentType: "network", Mode: "dns_failure", NameDE: "DNS-Ausfall", NameEN: "DNS failure", Effect: "Namensaufloesung versagt, Cloud-Dienste nicht erreichbar", DetectionHint: "Lokale DNS-Cache, IP-Fallback", DefaultSeverity: 4, DefaultOccurrence: 3, DefaultDetection: 2},
{ID: "FM-NET-08", ComponentType: "network", Mode: "certificate_expiry", NameDE: "Zertifikat abgelaufen", NameEN: "Certificate expiry", Effect: "TLS-Verbindungen werden abgelehnt, Fernwartung unmoeglich", DetectionHint: "Zertifikats-Monitoring, automatische Erneuerung", DefaultSeverity: 5, DefaultOccurrence: 3, DefaultDetection: 3},
{ID: "FM-NET-09", ComponentType: "network", Mode: "protocol_mismatch", NameDE: "Protokoll-Inkompatibilitaet", NameEN: "Protocol mismatch", Effect: "Geraete koennen nicht kommunizieren nach Firmware-Update", DetectionHint: "Versionsmatrix, Kompatibilitaetstest", DefaultSeverity: 6, DefaultOccurrence: 2, DefaultDetection: 4},
{ID: "FM-NET-10", ComponentType: "network", Mode: "firewall_misconfiguration", NameDE: "Firewall-Fehlkonfiguration", NameEN: "Firewall misconfiguration", Effect: "Safety-Traffic blockiert oder unsicherer Traffic erlaubt", DetectionHint: "Firewall-Regelaudit, Penetrationstest", DefaultSeverity: 8, DefaultOccurrence: 2, DefaultDetection: 5},
}
}
// ── AI/ML Failure Modes (5) ────────────────────────────────────────
func getAIFailureModes() []FailureModeEntry {
return []FailureModeEntry{
{ID: "FM-AI-01", ComponentType: "ai_model", Mode: "model_drift", NameDE: "Modell-Drift", NameEN: "Model drift", Effect: "KI-Modell verliert Genauigkeit ueber Zeit durch veraenderte Daten", DetectionHint: "Performance-Monitoring, Referenzdaten-Test", DefaultSeverity: 7, DefaultOccurrence: 4, DefaultDetection: 5},
{ID: "FM-AI-02", ComponentType: "ai_model", Mode: "adversarial_input", NameDE: "Adversarial Input", NameEN: "Adversarial input", Effect: "Gezielt manipulierte Eingaben fuehren zu Fehlklassifikation", DetectionHint: "Input-Validierung, Adversarial-Training", DefaultSeverity: 9, DefaultOccurrence: 2, DefaultDetection: 7},
{ID: "FM-AI-03", ComponentType: "ai_model", Mode: "bias", NameDE: "Systematische Verzerrung (Bias)", NameEN: "Systematic bias", Effect: "Modell diskriminiert bestimmte Eingabemuster systematisch", DetectionHint: "Fairness-Metriken, diverse Testdaten", DefaultSeverity: 7, DefaultOccurrence: 3, DefaultDetection: 6},
{ID: "FM-AI-04", ComponentType: "ai_model", Mode: "confidence_miscalibration", NameDE: "Konfidenz-Fehlkalibrierung", NameEN: "Confidence miscalibration", Effect: "Modell gibt hohe Konfidenz bei falschen Vorhersagen", DetectionHint: "Kalibrierungskurve, Expected Calibration Error", DefaultSeverity: 8, DefaultOccurrence: 3, DefaultDetection: 6},
{ID: "FM-AI-05", ComponentType: "ai_model", Mode: "training_data_poisoning", NameDE: "Training-Daten-Vergiftung", NameEN: "Training data poisoning", Effect: "Manipulierte Trainingsdaten fuehren zu fehlerhaftem Modell", DetectionHint: "Datenherkunft pruefen, Anomalieerkennung", DefaultSeverity: 9, DefaultOccurrence: 1, DefaultDetection: 8},
}
}