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

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

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

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