• CWE-754: Improper Check for Unusual or Exceptional Conditions

Das Produkt prüft ungewöhnliche oder außergewöhnliche Bedingungen nicht oder fehlerhaft, die im Rahmen des täglichen Betriebs des Produkts nicht häufig auftreten sollten.

CWE-754: Improper Check for Unusual or Exceptional Conditions

CWE ID: 754
Name: Improper Check for Unusual or Exceptional Conditions

Beschreibung

Das Produkt prüft ungewöhnliche oder außergewöhnliche Bedingungen nicht oder fehlerhaft, die im Rahmen des täglichen Betriebs des Produkts nicht häufig auftreten sollten.

Risikominderungsmaßnahmen

Maßnahme (Implementation)

Effektivität: High
Beschreibung: Überprüfen Sie die Ergebnisse aller Funktionen, die einen Wert zurückgeben, und verifizieren Sie, dass dieser Wert dem Erwarteten entspricht. Notizen: Die Überprüfung des Rückgabewerts der Funktion ist in der Regel ausreichend, allerdings ist in einer parallelen Umgebung auf race conditions (CWE-362) zu achten.

Maßnahme (Implementation)

Effektivität: High
Beschreibung: Bei der Verwendung von exception handling sollten spezifische exceptions abgefangen und geworfen werden, anstatt übermäßig allgemeine exceptions zu verwenden (CWE-396, CWE-397). Exceptions sollten so lokal wie möglich abgefangen und behandelt werden, um eine zu weite Propagation des Fehlers im call stack zu vermeiden (CWE-705). Vermeiden Sie nach Möglichkeit ungeprüfte oder unbehandelte exceptions (CWE-248). Notizen: Die Verwendung spezifischer exceptions und die Sicherstellung, dass exceptions geprüft werden, hilft Programmierern, viele ungewöhnliche Ereignisse, die auftreten könnten, vorherzusehen und angemessen zu behandeln.

Maßnahme (Architecture and Design)

Effektivität: Unknown
Beschreibung: Wenn ein Programm fehlschlagen muss, sollte dies auf kontrollierte Weise geschehen (als fail closed). Es mag eine Verlockung sein, in Fällen wie beispielsweise geringem Arbeitsspeicher einfach einen unsauberen Absturz zu erlauben, aber ein Angreifer könnte die Kontrolle übernehmen, bevor die Software vollständig beendet wurde. Alternativ könnte ein unkontrollierter Fehler zu Kaskadeneffekten mit anderen nachgelagerten Komponenten führen; beispielsweise könnte das Programm ein Signal an einen nachgelagerten Prozess senden, sodass dieser sofort weiß, dass ein Problem aufgetreten ist und eine bessere Chance auf eine Wiederherstellung hat.

Maßnahme (Architecture and Design)

Effektivität: Unknown
Beschreibung: Nutzen Sie Systemlimits, welche dazu beitragen sollten, eine Erschöpfung von Ressourcen zu verhindern. Das Produkt sollte jedoch weiterhin geringe Ressourcenbedingungen behandeln, da diese dennoch auftreten können.

Detaillierter Hintergrund

Viele Funktionen geben einen Wert zurück, der den Erfolg ihrer Aktionen widerspiegelt. Dies informiert das Programm darüber, ob Fehler, die durch diese Funktion verursacht wurden, behandelt werden müssen.