Например, Бобцов

МОДЕЛЬ КОНКУРЕНЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

МОДЕЛЬ КОНКУРЕНЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
7 МЕТОДЫ И СИСТЕМЫ ЗАЩИТЫ ИНФОРМАЦИИ
УДК 004.056.4
МОДЕЛЬ КОНКУРЕНЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
А.В. Разумовский
Безопасность программного обеспечения зависит не только от реализованных в нем механизмов защиты, но также и от его способности конкурировать с другими образцами программного обеспечения, выживать в конкурентной борьбе с ними. Для оценки конкурентоспособности программы в будущем необходима модель ее развития в условиях конкуренции с другим программным обеспечением. Ключевые слова: модель, безопасность, программное обеспечение, оценка, информация.
Введение
Программное обеспечение (ПО) испытывает давление не только со стороны злоумышленников и вредоносных программ, но и со стороны конкурентов. Цель каждого программного продукта – максимизировать свою долю на рынке, увеличить количество копий, установленных на компьютерах пользователей. Чем популярнее становится программа, тем больше предпринимается попыток по ее взлому или компрометации. Логика злоумышленников в данном случае проста: чем популярнее ПО, тем больше инсталляций на компьютерах, тем выше вероятность успешной атаки. В качестве примера можно привести современные браузеры. До недавнего времени браузером компании Microsoft Internet Explorer пользовалось подавляющее число пользователей. Бреши в безопасности появлялись очень часто. По мере роста популярности другого браузера, Firefox от компании Mozilla, в последнем чаще стали находить уязвимости, чем до начала роста его популярности. Уязвимости стали появляться не потому, что разработчики стали меньше уделять внимания безопасности, а потому, что злоумышленники стали предпринимать больше попыток его взлома. Этот пример показывает, что конкуренция между программами напрямую влияет на безопасность программного продукта в целом.
Немаловажным моментом является сложность современного ПО в сочетании с требованием быстрых его изменений. В условиях спешки не всегда можно предусмотреть, как повлияет новый функционал на общую управляемость ПО.
Для прогнозирования роста популярности программного обеспечения, оценки его качества и безопасности будем использовать модель эволюции [2], адаптировав ее к программному обеспечению. Модель включает представление жизненного цикла ПО в виде эволюции во времени набора программ, разработанных по единому техническому заданию, но реализованных различными авторами. Экземпляры программ рассматриваются как конкурирующие объекты. Ввиду несовершенства современных технологий программирования в каждой программе есть ошибки, а, следовательно, и угрозы. С течением времени программы модифицируются с целью устранения угроз. В результате появляются новые программы, а часть программ удаляется из конкуренции. Таким образом, модель предполагает, что каждый экземпляр программы характеризуется тремя свойствами, зависящими от времени: качество, модификация и удаление. Каждая программа описывается вектором параметров, которые характеризуют функционал, определенный в техническом задании, алгоритм его реализации, архитектуру программ, изменения в коде за счет воздействия внешних угроз, таких как вирусы и черви, и т.д. Процесс эволюции заключается в сравнении качества программ и выборе лучшей программы в каждый момент времени (тиражировании лучшего экземпляра, модификации худших программ и удалении плохих программ).
92 Научно-технический вестник Санкт-Петербургского государственного университета
информационных технологий, механики и оптики, 2010, № 3(67)

А.В. Разумовский

Оценка качества программ

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

параметры или критерии, по которым можно сравнить программы. В этой модели вы-

бор критериев оценки и последующую оценку производит эксперт. После оценки всех

программ формируется оптимальный набор значений параметров. Оптимальный набор

рассчитывается исходя из значений параметров всех программ. В него попадают наи-

более часто встречающиеся значения параметров. Обозначим оптимальный набор значений как Sm. Набор значений параметров каждой программы обозначим как Si. После оценки всех программ рассчитаем функцию приспособленности f(S):

f (S) exp[ dH(Si, Sm)] ,

(1)

где dH –разность между параметрами i-той программы и оптимальным набором параметров. В основе расчета величины лежит расстояние Ли [3].

Модель эволюции программного обеспечения

Рассматривается множество программ Xi, которое разделяется на подмножества Xj близких по характеристикам экземпляров программ, каждая группа Xj состоит из множества экземпляров программ xi, изменяющихся во времени. Динамика развития каждой группы Xj определяется следующим образом:

dX j dt

( AiQi Di) X j

Xik j

ki

i.

(2)

Каждая группа программ Xj стремится максимально увеличить свою численность,

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

мальным. При этом суммарное количество всех экземпляров программ не должно пре-

вышать Xi,

Xj X i .
j

(3)

Величина Ai описывает создание новых копий программы и зависит от приспособленности программы f(Si). Чем ближе параметры программы к оптимальным, тем меньше значение f(Si), соответственно, увеличение количества программ происходит более быстро. При этом увеличивается количество программ, входящих в группу Xj.

Ai f (Sm) f (Si) ,

где f(Si) – функция приспособленности (1), f(Sm) – функция приспособленности программы с идеальными параметрами. Значение A задается экспертом и задает начальную численность группы.

Величина Qi – фактор качества. Более качественные программы распространяются с большей скоростью. Данная величина основывается на количестве экземпляров x в группе Xj. В модели качество каждой программы измеряется через расстояние Ли. Таким образом, качество всей группы можно обозначить как сумму качеств программ,

входящих в группу Xj:

Qi dH ,
i
где dН – расстояние Ли. Величина Di описывает запланированное удаление из группы и обратно пропорциональна функции приспособленности f(Si) конкретного экземпляра программы,

Di 1 . f (Si)

Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2010, № 3(67)

93

МОДЕЛЬ КОНКУРЕНЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Функция приспособленности экспоненциально убывает с ростом разницы между параметрами (1), поэтому коэффициент удаления уменьшается также по экспоненте, т.е., чем выше приспособленность, тем больше экземпляров добавляется в группу (A) и тем меньше экземпляров отмирает (D).
Величина ω – процент программ из группы, которые подвергаются воздействиям угроз. Данная величина учитывает воздействие угроз, которым с определенной частотой подвергаются программы. Некоторые из таких воздействий вызывают изменения в работе программ. Таким образом, темп изменений отражает процент программ из общей группы, которые подверглись воздействию угроз. Статистика заражений говорит о том, что процент зараженных программ колеблется на уровне от 0,01 до 0,25 % от всего количества программ [4]. В данной работе мы предполагаем, что заражение экземпляров будет совпадать со статистическими.
Ф – количество программ, которые удаляются из группы при достижении группой предельного количества экземпляров программ imax:
i max Xj Экспертное задание А, Ф отражает ограниченность ресурсов в модели. В нашем случае внешним ресурсом выступают пользователи, которые не могут все одновременно приобрести какую-либо программу из группы. Параметры Q, D, ω рассчитываются непосредственно в процессе взаимодействия программ в группе.
Результаты моделирования
Результаты компьютерного моделирования, представленные на рисунке, показывают, что чем больше параметры программного обеспечения отличаются от оптимальных, тем сильнее падает численность этих программ, причем критичным является начальное количество программ: если оно достаточно, то программа может изменить один или несколько своих параметров, чтобы приблизиться к оптимуму.
140
X3
120
100
80
60
40
20 X2 X3 X1
0 0 2 4 6 8 10 12 14 16 18
-20
t, с
Рисунок. Результат компьютерного моделирования. Верхний график – группа, которая первой достигла ограничения численности, заданного параметром Ф
94 Научно-технический вестник Санкт-Петербургского государственного университета
информационных технологий, механики и оптики, 2010, № 3(67)

численность группы

А.В. Разумовский

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

Заключение

Описанная модель является дополнительным инструментом при разработке современного ПО. Эта модель позволит на ранних этапах разработки моделировать возможные проблемы, в том числе безопасности, разрабатывать более гибкую архитектуру приложений, что в конечном счете приведет в повышению надежности и безопасности программного обеспечения.
Литература
1. Редько В.Г. Эволюционная кибернетика. – М.: Наука, 2001. – 156 с. 2. Эйген М. Самоорганизация материи и эволюция биологических макромолекул. –
М.: Мир, 1973. – 216 с. 3. Ушаков А.В., Хабалов В.В., Дударенко Н.А. Математические основы теории сис-
тем: элементы теории и практикум / Под ред. Ушакова А.В. – СПб: СПбГУ ИТМО,
2007. 4. Обзор вирусной обстановки от компании «Доктор Веб» за первое полугодие 2009
года [Электронный ресурс]. – Режим доступа: http://news.drweb.com/show/?i=399&c=10&p=0, свободный

Разумовский Андрей Владими- – Санкт-Петербургский государственный университет информа-

рович

ционных технологий, механики и оптики, аспирант,

xrew@yandex.ru

Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2010, № 3(67)

95