Defekte in Zusammenhang mit kontaminierten Daten
Defekte in Zusammenhang mit kontaminierten Daten weisen auf die Verwendung von kontaminierten Daten in bestimmten Vorgängen hin. Daten, die aus unsicheren Quellen stammen, gelten als kontaminierte Daten. Polyspace® betrachtet folgende Quellen als unsicher:
Flüchtige Objekte
Externe Eingaben, die mithilfe der Standardbibliotheksfunktionen erhalten werden Zu externen Eingaben zählen:
Benutzereingabe
Umgebungsvariablen
Dateiinhalt oder Dateipfad
Von der Hardware erhaltene Daten
Überprüfen Sie die kontaminierten Daten, die Sie aus solchen unsicheren Quellen erhalten haben, vor ihrer Verwendung. Böswillige Angreifer können kontaminierte Daten verwenden, die nicht validiert wurden, um Ihr Programm anzugreifen und Fehlfunktionen zu verursachen. Defekte in Zusammenhang mit kontaminierten Daten weisen auf die Verwendung von kontaminierten Daten, die nicht validiert wurden, in bestimmten Vorgängen hin. Zum Beispiel weist Polyspace auf Folgendes hin:
Kontaminierte Daten bei verschiedenen numerischen Operationen
Extern gesteuerte Elemente, wie Pfade, Befehle, Umgebungsvariablen und Host-IDs
Kontaminierte Daten bei Speicheroperationen wie Zuweisung und Dereferenzierung
Polyspace-Ergebnisse
Array access with tainted index | Array index from unsecure source possibly outside array bounds |
Command executed from externally controlled path | Path argument from an unsecure source |
Execution of externally controlled command | Command argument from an unsecure source vulnerable to operating system command injection |
Host change using externally controlled elements | Changing host ID from an unsecure source |
Library loaded from externally controlled path | Using a library argument from an externally controlled path |
Loop bounded with tainted value | Loop controlled by a value from an unsecure source |
Memory allocation with tainted size | Size argument to memory function is from an unsecure source |
Pointer dereference with tainted offset | Offset is from an unsecure source and dereference might be out of bounds |
Tainted division operand | Operands of division operation (/ ) come from an unsecure
source |
Tainted modulo operand | Operands of remainder operation (% ) come from an unsecure
source |
Tainted NULL or non-null-terminated string | Argument is from an unsecure source and might be NULL or not NULL-terminated |
Tainted sign change conversion | Value from an unsecure source changes sign |
Tainted size of variable length array | Size of the variable-length array (VLA) is from an unsecure source and might be zero, negative, or too large |
Tainted source used with sensitive function | Data obtained from an untrusted source is passed to user-defined sensitive function (Seit R2023b) |
Tainted string format | Input format argument is from an unsecure source |
Use of externally controlled environment variable | Value of environment variable is from an unsecure source |
Use of tainted pointer | Pointer from an unsecure source may be NULL or point to unknown memory |
Themen
- Sources of Tainting in a Polyspace Analysis
Validate tainted data obtained from external sources to avoid security risks.
- Bug Finder Defect Groups
The Bug Finder defect checkers are classified into groups such as data flow, concurrency, numerical, and so on.