Дефекты запятнанных данных помечают использование запятнанных данных в определенных операциях. Данные, поступающие из небезопасных источников, являются запятнанными данными. Polyspace ® считает эти источники небезопасными:
Летучие объекты.
Внешние входные данные, полученные с помощью стандартных библиотечных функций. Внешние входные данные могут включать в себя:
Пользовательский ввод
Переменные среды
Содержимое файла или путь к файлу
Данные, полученные от аппаратных средств
Перед использованием данных проверьте данные, полученные из таких небезопасных источников. Злоумышленники могут использовать запятнанные данные, которые не были проверены, чтобы атаковать вашу программу и вызвать сбои. Дефекты запятнанных данных помечают использование запятнанных данных, которые не были проверены в определенных операциях. Например, флаги Polyspace:
Запятнанные данные в различных числовых операциях.
Внешние элементы, такие как пути, команды, переменные среды и идентификаторы узлов.
Запятнанные данные в операциях памяти, таких как выделение и отмена передачи.
Array access with tainted index | Индекс массива из небезопасного источника, возможно, вне границ массива |
Command executed from externally controlled path | Аргумент 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 | Аргумент размера функции памяти получен из небезопасного источника |
Pointer dereference with tainted offset | Смещение от небезопасного источника, а отмена привязки может быть вне границ |
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 подразделяются на такие группы, как поток данных, параллелизм, числовые и т. д.