Дефекты испорченных данных

Дефекты, связанные с элементами кода из небезопасного источника

Испорченные дефекты данных помечают использование испорченных данных в определенных операциях. Данные, которые поступают из небезопасных источников, являются испорченными данными. Polyspace® рассматривает эти источники как небезопасные:

  • Летучие объекты.

  • Внешние входы, полученные при помощи стандартных библиотечных функций. Внешний вход может включать:

    • Вход пользователя

    • Переменные окружения

    • Содержимое файла или путь к нему

    • Данные, полученные с оборудования

Перед использованием данных проверьте испорченные данные, полученные из таких небезопасных источников. Вредоносные злоумышленники могут использовать испорченные данные, которые не были проверены, чтобы атаковать вашу программу и вызвать отказы. Испорченные дефекты данных помечают использование испорченных данных, которые не были проверены в определенных операциях. Для образца, флаги 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

Проверки дефектов Bug Finder классифицируются в такие группы, как поток данных, параллелизм, численный и так далее.