Испорченные дефекты данных помечают использование испорченных данных в определенных операциях. Данные, которые поступают из небезопасных источников, являются испорченными данными. Polyspace® рассматривает эти источники как небезопасные:
Летучие объекты.
Внешние входы, полученные при помощи стандартных библиотечных функций. Внешний вход может включать:
Вход пользователя
Переменные окружения
Содержимое файла или путь к нему
Данные, полученные с оборудования
Перед использованием данных проверьте испорченные данные, полученные из таких небезопасных источников. Вредоносные злоумышленники могут использовать испорченные данные, которые не были проверены, чтобы атаковать вашу программу и вызвать отказы. Испорченные дефекты данных помечают использование испорченных данных, которые не были проверены в определенных операциях. Для образца, флаги Polyspace:
Испорченные данные в различных числовых операциях.
Управляемые извне элементы, такие как пути, команды, переменные окружения и идентификаторы хоста.
Испорченные данные в операциях памяти, таких как выделение и разыменование.
Array access with tainted index | Индекс массива из небезопасного источника, возможно, за пределами границ массива |
Command executed from externally controlled path | Аргумент путь из небезопасного источника |
Execution of externally controlled command | Командный аргумент из небезопасного источника, уязвимого для ввода команд операционной системы |
Host change using externally controlled elements | Изменение идентификатора узла из небезопасного источника |
Library loaded from externally controlled path | Использование аргумента библиотеки из управляемого извне пути |
Loop bounded with tainted value | Цикл, управляемый значением из небезопасного источника |
Memory allocation with tainted size | Аргумент size в функции памяти получен из небезопасного источника |
Pointer dereference with tainted offset | Смещение от небезопасного источника, и dereference может оказаться вне границ |
Tainted division operand | Операнды операции деления (/ ) поступают из небезопасного источника |
Tainted modulo operand | Операнды оставшейся операции (% ) поступают из небезопасного источника |
Tainted NULL or non-null-terminated string | Аргумент получен из небезопасного источника и может иметь значение NULL или не быть завершен NULL |
Tainted sign change conversion | Значение от незащищенного знака изменения источника |
Tainted size of variable length array | Размер массива переменной длины (VLA) из небезопасного источника и может быть нулем, отрицательным или слишком большим |
Tainted string format | Входной формат аргумента из небезопасного источника |
Use of externally controlled environment variable | Значение переменного окружения из небезопасного источника |
Use of tainted pointer | Указатель из небезопасного источника может иметь значение NULL или указывать на неизвестную память |
Источники запятнания в полипространственном анализе
Проверьте испорченные данные, полученные из внешних источников, чтобы избежать угроз безопасности.
Проверки дефектов Bug Finder классифицируются в такие группы, как поток данных, параллелизм, численный и так далее.