CWE-Referenz › CWE-682: Incorrect Calculation
CWE-682: Incorrect Calculation
CWE ID: 682
Name: Incorrect Calculation
Beschreibung
Das Produkt führt eine Berechnung durch, die fehlerhafte oder unbeabsichtigte Ergebnisse erzeugt, die anschließend in sicherheitskritischen Entscheidungen oder im Ressourcenmanagement verwendet werden.
Erweiterte Beschreibung
Wenn das Produkt eine sicherheitskritische Berechnung fehlerhaft durchführt, kann dies zu falschen Ressourcenallokationen, fehlerhaften Privilege Assignments oder fehlgeschlagenen Vergleichen führen, unter anderem. Viele der direkten Resultate einer fehlerhaften Berechnung können zu noch größeren Problemen führen, wie beispielsweise fehlgeschlagenen Protection Mechanisms oder sogar zu arbitrary code execution.
Risikominderungsmaßnahmen
Maßnahme (Implementation)
Effektivität: Unknown
Beschreibung: Verstehen Sie die zugrunde liegende Repräsentation Ihrer Programmiersprache und wie diese mit numerischen Berechnungen interagiert. Achten Sie besonders auf Diskrepanzen bei der Byte-Größe, Präzisionsunterschiede, signed/unsigned-Unterscheidungen, Truncation, Konvertierung und Casting zwischen Datentypen, “not-a-number”-Berechnungen und wie Ihre Sprache Zahlen behandelt, die zu groß oder zu klein für ihre zugrunde liegende Repräsentation sind.
Maßnahme (Implementation)
Effektivität: Unknown
Beschreibung: Führen Sie eine Input-Validierung für numerische Eingaben durch, indem Sie sicherstellen, dass diese innerhalb des erwarteten Bereichs liegen. Erzwingen Sie, dass die Eingabe sowohl die Mindest- als auch die Maximalanforderungen für den erwarteten Bereich erfüllt.
Maßnahme (Implementation)
Effektivität: Unknown
Beschreibung: Verwenden Sie den passenden Datentyp für die gewünschte Operation. Beispielsweise sollten in C/C++ nur unsigned Typen für Werte verwendet werden, die niemals negativ sein können, wie beispielsweise Höhe, Breite oder andere Zahlen, die sich auf eine Menge beziehen.
Maßnahme (Implementation)
Effektivität: Unknown
Beschreibung: Prüfen Sie Compiler-Warnungen sorgfältig und beseitigen Sie Probleme mit potenziellen Sicherheitsauswirkungen, wie beispielsweise signed / unsigned -Fehler bei Speicheroperationen oder die Verwendung von nicht initialisierten Variablen. Selbst wenn eine Schwachstelle selten ausnutzbar ist, kann ein einziger Fehler zum Kompromittierung des gesamten Systems führen.
Maßnahme (Testing)
Effektivität: Unknown
Beschreibung: Nutzen Sie automatisierte static analysis Tools, die auf diese Art von Schwachstellen abzielen. Viele moderne Techniken verwenden data flow analysis, um die Anzahl der false positives zu minimieren. Dies ist keine perfekte Lösung, da eine 100%ige Genauigkeit und Abdeckung nicht realisierbar sind.
Maßnahme (Testing)
Effektivität: Unknown
Beschreibung: Setzen Sie dynamic Tools und Techniken ein, die mit dem Produkt interagieren und große Testsuiten mit vielfältigen Eingaben verwenden, wie beispielsweise fuzz testing (Fuzzing), robustness testing und fault injection. Der Betrieb des Produkts kann sich verlangsamen, aber es sollte nicht instabil werden, abstürzen oder falsche Ergebnisse generieren.
Verwandte Schwachstellen
Ist Ihre IT-Infrastruktur betroffen?
Schwachstellen wie CWE-682: Incorrect Calculation werden von Angreifern gezielt gesucht — meist automatisiert und ohne Rücksicht darauf, wie groß das betroffene Unternehmen ist. Ob eine solche Lücke bei Ihnen tatsächlich offen steht, lässt sich nur durch Prüfung feststellen:
- Schwachstellen-Scan — wiederkehrende Prüfung Ihrer Infrastruktur auf bekannte Lücken wie diese
- Penetrationstest — manuelle Prüfung eigener Software auf Schwachstellen, die kein Werkzeug findet
- Threat Modeling — Schwachstellenklassen im Entwurf vermeiden, statt sie später zu suchen