-consider-analysis-perimeter-as-trust-boundary

Рассмотрите аналитический периметр как доверительный контур так, чтобы данные, приходящие не из текущего аналитического периметра, были рассмотрены испорченными

Синтаксис

-checkers tainted_data -consider-analysis-perimeter-as-trust-boundary

Описание

-checkers tainted_data -consider-analysis-perimeter-as-trust-boundary изменяет поведение испорченных дефектов данных так, чтобы данные, происходящие снаружи аналитического периметра, были рассмотрены испорченными. Например, если вы анализируете один файл, затем любые данные, которые происходят вне этого файла, рассматриваются испорченными.

По умолчанию эти данные рассматриваются испорченными:

  • Объекты объявляются или заданные как volatile

  • Внешние данные, такие как ввод данных пользователем, аппаратные данные, сетевые данные и переменная окружения

Смотрите источники испорченных данных.

Если вы задаете опцию -consider-analysis-perimeter-as-trust-boundary наряду с опцией -checkers tainted_data, данные, которые не происходят в текущем осциллографе анализа Polyspace®, рассматриваются испорченными. Такие данные могут включать:

  • Формальные параметры внешне видимой функции, которые не имеют видимой вызывающей стороны.

  • Возвращаемые значения заблокированных функций.

  • Глобальные переменные, внешние к модулю.

Если вы не доверяете данным, которые происходят из внешнего модуля, используйте эту опцию, чтобы обнаружить операции, которые уязвимы для этих испорченных данных.

Пример

Рассмотрите этот код:

#include<stdio.h>
double taintedloopboundary(double num, double denum) {
	int count;
	scanf("%d", &count);
	for (int i=0; i<count; ++i) { 
		num = num/denum;
	} 
	return num;
}
Пример показывает два случая испорченных данных: один обнаруженный по умолчанию и одно использование этой опции.

  • Переменная count получен от пользователя. Если вы выполняете испорченный анализ данных значения по умолчанию при помощи команды:

    polyspace-bug-finder -checkers tainted_data
    Polyspace отмечает испорченную переменную цикла.

  • Переменные num и denum не заданы в текущем модуле. Если вы изменяете испорченный анализ данных при помощи команды:

    polyspace-bug-finder -checkers tainted_data -consider-analysis-perimeter-as-trust-boundary
    Polyspace отмечает операцию деления между num и denum.

Введенный в R2020b