Теория и практика защиты программ

       

Оценка технологической безопасности программ на базе метода Нельсона


В данном разделе будем считать, что безопасность программного обеспечения - это вероятность того, что преднамеренные программные дефекты, вызывающие критическое поведение управляемой КС, будут обнаружены при определенных условиями внешней среды и в течение заданного периода наблюдения при испытаниях.

Перед тем как перейти непосредственно к методу оценки, необходимо сделать несколько замечаний. Следует заметить, что реальные условия испытаний программ всегда существенно отличаются от тех, которые требуются для представительного измерения уровня безопасности ПО. Так, например, тестовые прогоны выполняются на входных наборах данных, выбранных не совсем случайным, а выбранных некоторым определенным образом: обычно выбор производится так, чтобы соответствующую ошибку можно было найти как можно быстрее. При этом выбор основывается на опыте и интуиции испытателей, либо осуществляется с учетом функциональных возможностей, которые должна обеспечивать программа, или возможностей соответствующих методик испытаний. Поэтому контрольные примеры, как правило, не являются представительными с точки зрения моделирования реальных условий работы программы и далее описывается процедура грубой оценки величины R, предусматривающая использование результатов испытаний и включающая следующие шаги:

1.     Определение множества E входных массивов.

2.     Выделение в E

подмножеств Gj, связанных с отдельными ветвями программы.

3.     Определение для каждого Gj в предполагаемых условиях функционирования значений вероятности Pj.

4.     Определение подмножества Gj для каждого входного набора данных, используемого в контрольных примерах.

5.     Выявление проверенных пар и непроверенных в ходе испытаний сегментов и пар сегментов.

6.     Определение для каждого j величины P'=ajPj, где aj определяется в соответствии со следующими правилами [ТЛН].

·        aj=0,99, если подмножество Gj


включает более одного контрольного примера;

·        aj=0,95, если подмножество Gj

включает ровно один контрольный пример;

·        aj=0,90, если подмножество Gj

не включает ни одного контрольного примера, но в процессе проверки программы были найдены все сегменты и все сегментные пары ветви Lj;

·        aj=0,80, если в ходе испытаний были опробованы все сегменты, но не все сегментные пары;

·        aj=0,80-0,20m, если m

сегментов (1£m£4) ветви Lj

не были опробованы в ходе испытаний;

·        aj=0, если более чем 4 сегмента не были опробованы в процессе испытаний.

7. Вычисление грубой оценки R" осуществляется по формуле
, где k

представляет собой общее число ветвей программы.

Приведенные выше параметры aj были определены интуитивно [ТЛН] на основе анализа теоретических результатов исследования и экспериментальных результатов тестирования различных программ. Для того, чтобы получить более точные оценки величины R" необходимо провести измерения с использованием подходящего метода формирования выборки.

Оценка технологической безопасности ПО осуществляется посредством проверки условия R"£S", где S" установленная нормативными документами граница безопасности ПО. Отметим также, что для систем критических приложений такая граница должна быть достаточно высокой, то есть стремится к 1.


Содержание раздела