exponenta event banner

Дефекты запятнанных данных

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

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

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

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

    • Пользовательский ввод

    • Переменные среды

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

    • Данные, полученные от аппаратных средств

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