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


Исходные данные, определения и условия


При исследовании методов и средств оценки уровня технологической безопасности программных комплексов учитываются факторы, имеющие, в том числе, чисто случайный характер. Следовательно, показатели, связанные с оцениванием безопасности ПО лучше всего выражать вероятностной мерой, а для их вычисления можно использовать вероятностные модели надежности ПО[Гл,Го,ИКБ,Лип0,ТЛН], которые при осуществлении замены условия надежности функционирования программ на условие их безопасности можно использовать для этих целей.

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

В общем случае отказы программного обеспечения определяются как отклонения от правильного хода выполнения программы вследствие ошибок, допущенных в процессе преобразования исходного алгоритма в действующую программу, а ошибка – это регистрируемый пользователем факт неудовлетворенности качеством программы и определяется как причина дефекта системы программного обеспечения; и наоборот, дефект рассматривается как проявление допущенной ранее ошибки [ТЛН].

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

www.kiev-security.org.ua

BEST rus DOC FOR FULL SECURITY

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




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

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

Под определенными условиями внешней среды

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


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

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

множества E представляет собой набор значений данных, необходимый для выполнения прогона программы: E=(Ei:i=1,2,...,N);

Интуитивное определение безопасности ПО может быть уточнено в статистическом смысле на основе следующих простых соображений:

выполнение программы П

приводит к получению для каждого Ei

определенного значения функции F(Ei);

множество E

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

наличие дефектов в программе П приводит к тому, что ей на самом деле соответствует функция F', отличная от заданной функции F;

для некоторого Ei

отклонение выхода F'(Ei), полученного в результате выполнения программы не должно превышать некоторый установленный уровень безопасности программного обеспечения S(Ei), то есть безопасность обеспечивается при соблюдении ограничения: F'(Ei)£S(Ei).

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


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