Современные
информационные технологии / 4. Информационная безопасность
д.т.н.,
профессор Булгаков О.М.,
Воронежский институт МВД России
к.т.н. Стукалов В.В.
Воронежский
институт правительственной связи (филиал) Академии ФСО России
Краткий обзор моделей надежности программного
обеспечения системы защиты информации на объекте информатизации
Программное обеспечение, как составная часть системы защиты информации
на объектах информатизации, является одним из важных компонентов. Поэтому
является актуальной задача оценки надежности этого компонента.
Под надежностью программного обеспечения будем понимать способность
программного продукта с требуемой вероятностью безотказно выполнять свои
функции в течение установленного периода времени при некоторых заданных
условиях.
Количественной характеристикой надёжности
программного обеспечения может считаться вероятность его работы без сбоев на
протяжении некоторого отрезка времени Δt с учётом
влияния ошибок на результат.
Зависимость вероятности отказа СПО от времени [1]:
, (1)
где A характеризует различные
внутрисистемные факторы, обычно эргатической природы, влияющие на эффективность
работы программного обеспечения; α1 количественно отражает
ошибки применения СПО на этапе его освоения, а также внедрения новых версий
программных продуктов и т.д.; α2 характеризует устаревание
компьютеров по отношению к программному обеспечению (системным требованиям),
деградацию и моральное (по отношению к изменяющимся задачам) старение СПО.
Традиционные показатели надежности СПО характеризуют наличие ошибок
программы (производственных дефектов), но ни один из них не характеризует
характер этих ошибок и возможные их последствия. Поэтому вводится
дополнительный критерий надежности программного обеспечения - средняя тяжесть
ошибок (СТО) [2], определяемый выражением:
(2)
где Q -
вероятность сбоя CПО;
-
функция принадлежности тяжести последствий ошибки, возникшей при i-м наборе
входных данных, к максимально тяжелым последствиям;
–
вероятность ввода i-гo набора входных данных при эксплуатации CПО;
- дихотомическая переменная, равная «1», если
при 1-м наборе входных данных был зафиксирован сбой, или «0» в противном
случае; m – общее число наборов
входных данных.
Значение СТО лежит в интервале от нуля до единицы. Чем ближе значение
СТО к единице, тем тяжелее последствия ошибок CПО, и тем менее надежна программа. Близость
СТО к нулю показывает незначительность последствий ошибок программы.
Введение данного показателя надежности программного обеспечения
позволяет характеризовать не столько безошибочность, сколько его безопасность.
Значение СТО может быть различным для одного и того же программного обеспечения
в зависимости от области его применения. В ряде случаев, если к программному
обеспечению предъявляются жесткие требования, лучше оценивать максимальную
тяжесть ошибок.
Составной частью моделей надежности являются математические модели,
построенные для оценки зависимости показателей надежности от заранее известных
или определенных в ходе выполнения задания параметров.
На рисунке 1 приведена классификация математических моделей надежности
программного обеспечения [6]:

Рис.1.
Классификация математических моделей надежности программного обеспечения
Эмпирические модели базируются на анализе структурных
особенностей программ. Они рассматривают зависимость показателей надёжности от
числа межмодульных связей, количества циклов в модулях и т.д. Эмпирические
модели могут и не давать конечных результатов показателей надёжности, но
позволяют выявлять взаимосвязь между сложностью объектов информатизации и их
надежностью. Эти модели можно использовать на этапе проектирования программного
обеспечения.
Наиболее простая эмпирическая модель
связывает число ошибок в программном обеспечении с его объемом. К эмпирическим
моделям, в частности, относится модель Холстеда, которая позволяет оценить
количество оставшихся в программе ошибок после окончания ее разработки
[3].
при эксплуатации программ.
Аналитические модели
дают возможность рассчитывать количественные показатели надежности, основываясь
на данных о поведении программы в процессе тестирования (измеряющие и оценивающие
модели).
Аналитические модели представлены двумя
группами: динамические и статические модели.
В динамических моделях
появление отказов рассматривается
относительно изменения времени. Если фиксируются интервалы каждого отказа, то
получается непрерывная картина появления отказов во времени (группа
динамических моделей с непрерывным временем). Примером таких моделей являются
модель Джелински-Моранды, модель переходных вероятностей Маркова [4].
В динамических моделях с дискретным
временем может фиксироваться только число отказов за произвольный интервал
времени.
Сначала проводится тестирование
программного обеспечения (возможно, в несколько этапов). В случае появления
отказов ищутся и исправляются все ошибки, из-за которых произошли отказы. После
этого начинается период эксплуатации программного обеспечения. По такому
принципу построены модель Шумана и модель Муса [5].
В статических моделях появление отказов не связывают со
временем, а учитывают только зависимость количества ошибок от числа тестовых
прогонов (по области ошибок) или зависимость количества ошибок от
характеристики входных данных (по области данных). К ним относятся модели
Миллса, Липова, Нельсона, Коркорэна [4].
Если внутренними процессами, влияющими на
вероятность отказов СПО пренебречь. А это можно сделать вследствие малой
вероятности отказов по этой причине. То, как было сказано ранее, для оценки
надежности программного обеспечения можно воспользоваться классической теорией
надежности. В этом случае необходимо, в первую очередь, учитывать значение
внешних факторов (эмпирическим или эвристическим путем). Такой подход возможен
при условии, что на функционирование программного обеспечения внутренние
факторы почти не влияют. Так, например, на работу антивирусных программ в
большей степени влияет появление новых вирусов, чем вероятность сбоя самой
программы в результате внутренних конфликтов. По этой причине периодически
необходимо обновлять антивирусные базы и исполнительные модули программы.
Появление новых вирусов можно сравнить с увеличением интенсивности воздействия
на программное обеспечение извне. С течением времени интенсивность воздействий
увеличивается и это может привести к катастрофическому отказу программного
обеспечения.
Вероятность катастрофического отказа i-го логического
исполняемого блока программного обеспечения, выраженная через интенсивность
внешних воздействий Q, будет описываться выражением [7]:
, (3)
где
интенсивность
внешних воздействий, – критическое
значение интенсивности внешних воздействий, при котором вероятность
возникновения критического отказа i-го логического исполняемого блока программного
обеспечения равна 1/2,
–
параметр, определяемый статистикой отказов,
–
коэффициент пропорциональности.
, (4)
Здесь Т
– характерное время устаревания программного обеспечения относительно
появляющихся новых угроз и внешних программных воздействий; – коэффициент, характеризующий интенсивность
отказов системы вследствие устаревания программного обеспечения,
–
интенсивность внешних воздействий на начальном этапе ввода системы в эксплуатацию.
Подставляя (4) в (3) получим вероятность катастрофического отказа СПО,
выраженную через интенсивность внешних воздействий:
, (5)
Таким образом, для решения проблемы оценки
надежности программного обеспечения существует несколько различных подходов. В
нашем случае СПО рассматривается как составляющая организационного компонента
системы защиты информации, то целесообразно оценивать надежность, применяя
несколько различных аналитических моделей. Во первых, это позволяет
минимизировать субъективизм при оценивании, во вторых, компенсировать
недостатки одних моделей достоинствами других. Авторами предложена модель
оценки надежности СПО, учитывающая зависимость вероятности появления
катастрофического отказа от увеличения интенсивности внешних воздействий. В
основе модели лежат основные принципы классической теории надежности.
В настоящее время все методы оценки
надежности программного обеспечения имеют определенное количество ограничений.
Тем не менее, важно знать, насколько надежно программное обеспечение,
применяемое в системе защиты информации. Так как нельзя гарантировать
долговременную стабильную работу системы в целом, не оценив надежность работы
ее компонентов.
Литература:
1.
Булгаков О.М., Стукалов
В.В., Кучмасов Е.А. Анализ надежности организационной компоненты системы защиты
информации типового объекта информатизации методом декомпозиции //
Международный научно-исследовательский журнал: Сборник по результатам VIII заочной научной конференции Research Journal of International Studies.
Екатеринбург.: МНИЖ – 2013.- №10 Часть 2.
2.
Игнатьев, М.Б. Активные
методы обеспечения надежности алгоритмов и программ / М.Б. Игнатьев, В.В.
Фильчаков, Л.Г. Осовецкий. - СПб.: Политехника, 1992.
3.
Карповский Е.Я., Чижов
С.А. Надежность программной продукции. – К.: Техника, 1990. – 160 с.
4.
Иыуду К.А. Надежность,
контроль и диагностика вычислительных машин и систем. – М.: Высшая школа, 1989.
– 216 с.
5.
Шураков В.В. Надежность
программного обеспечения систем обработки данных: Учебник для вузов. – М.:
Статистика, 1981. – 216 с.
6.
Майерс Г. Надежность
программного обеспечения. М.: Мир, 1980. – 360с.
7.
Декомпозиционная модель
катастрофического отказа мощного ВЧ (СВЧ) транзистора / Булгаков О.М., Никитина
Ю.С., Петров С.А. // Вестник Воронежского института МВД России №4, Воронеж,
2007.