Испорченные дефекты данных отмечают использование испорченных данных в определенных операциях. Данные, которые прибывают из небезопасных источников, являются испорченными данными. 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 | Смещение из небезопасного источника, и разыменуйте, может выйти за пределы |
Tainted division operand | Операнды операции деления (/ ) произойдите из небезопасного источника |
Tainted modulo operand | Операнды операции остатка (% ) произойдите из небезопасного источника |
Tainted NULL or non-null-terminated string | Аргумент из небезопасного источника и может быть 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 или указать на неизвестную память |
Источники заражения в анализе Polyspace
Подтвердите испорченные данные, полученные из внешних источников, чтобы избежать угроз безопасности.
Средства проверки дефекта Bug Finder классифицируются в группы, такие как поток данных, параллелизм, числовой, и так далее.