- • Оформление. Фгбоу впо «Воронежский государственный технический университет», 2012
- •Введение в теорию обеспечения безопасности программного обеспечения
- •1.1. Основные положения теории безопасности программного обеспечения
- •1.2. Угрозы безопасности программного обеспечения
- •1.3. Теоретические основы дисциплины и терминология
- •1.4. Жизненный цикл программного обеспечения компьютерных систем. Технологическая и эксплуатационная безопасность программ
- •1.5. Основные принципы обеспечения безопасности программного обеспечения
- •2. Методы и средства анализа безопасности программного обеспечения
- •2.1. Общие замечания
- •2.2. Контрольно-испытательные методы анализа безопасности программного обеспечения
- •2.3. Логико - аналитические методы контроля безопасности программ
- •2.4. Сравнение логико-аналитических и контрольно-испытательных методов анализа безопасности программ
- •2.5. Выявление уязвимостей в программном обеспечении
- •2.6. Общий механизм выбора программного обеспечения безопасности для компьютерных систем
- •2.7. Модели поведения программного обеспечения
- •3. Способы тестирования программного обеспечения при испытаниях его на технологическую безопасность
- •3.1. Обобщенные способы анализа программных средств на предмет наличия (отсутствия) элементов разрушающих программных средств Статистические и динамические способы исследования по:
- •Особенности исследования защищенного по:
- •Описание способов проведения испытаний, оценки качестваи сертификации программных средств:
- •Состав методического обеспечения проведения испытаний программ:
- •Состав инструментальных средств проведения испытания программ:
- •Общая номенклатура показателей качества по:
- •Выбор номенклатуры показателей качества:
- •Оценка значений показателей качества по:
- •Организационные вопросы проведения испытаний по:
- •Методологические вопросы проведения испытаний по:
- •3.2. Построение программно-аппаратных комплексов для контроля технологической безопасности программ Состав инструментальных средств контроля безопасности по при его разработке:
- •Планировщик тестов на безопасность
- •Подсистема генерации тестов
- •База данных тестирования
- •Средства локализации дефектов по
- •Блок идентификации дефектов по Блок определения характеристик по Блок сбора статистики о дефектах и их каталогизация
- •Средства ликвидации дефектов по
- •Блок ликвидации модулей формирования дефектов Блок уделенных искаженных программ и избыточных модулей Блок удаления нарушенных информационных структур и восстановления их целостности
- •Блок оценки уровня безопасности по Генератор отчетов контроля безопасности по
- •Структура и принципы построения программно-аппаратных средств контрольно-испытательного стенда испытания технологической безопасности по:
- •4. Расчет вероятности наличия разрушающего программного средства на этапе испытаний программного обеспечения и подходы к его исследованию
- •4.1. Постановка задачи
- •4.2. Обоснование состава множества информативных характеристик
- •4.3. Алгоритмы приближенных вычислений вероятностных характеристик наличия в программах рпс
- •4.4. Обоснование критериев принятия решения о наличии в программе рпс
- •4.5. Подходы к исследованию сложных программных комплексов
- •5. Методы обеспечения надежности программ для контроля их технологической безопасности
- •5.1. Исходные данные, определения и условия
- •5.3. Модель Нельсона
- •5.4. Оценка технологической безопасности программ на базе метода Нельсона
- •6. Методы и средства обеспечения целостности и достоверности используемого программного кода
- •6.1. Методы защиты программ от несанкционированных изменений
- •6.2. Схема подписи с верификацией по запросу
- •6.3. Примеры применения схемы подписи с верификацией по запросу
- •6.4. Основные подходы к защите программ от несанкционированного копирования
- •Криптографические методы. Для защиты инсталлируемой программы откопирования при помощи криптографических методов инсталлятор программы должен выполнить следующие функции:
- •Манипуляции с кодом программы. При манипуляциях с кодом программы можно привести два следующих способа:
- •Заключение
- •Библиографический список
- •Оглавление
- •3. Способы тестирования программного обеспечения при испытаниях его на технологическую безопасность…….66
- •4. Расчет вероятности наличия разрушающего программного средства на этапе испытаний программного обеспечения и подходы к его исследованию………………………………..107
- •394026 Воронеж, Московский просп., 14
4.4. Обоснование критериев принятия решения о наличии в программе рпс
Задача выбора критериев наличия в исследуемой программе РПС в общем виде, формулируется следующим образом.
Дано:
множество Gi вероятностных характеристик случайных величин, снимаемых с заданного множества контрольных точек;
эталонные значения этих ВХ Gi* и их значения, полученные в результате n испытаний (прогонов) программы.
Необходимо: определить множество Li таких, что если существует i(Gi-Gi*>Li), то делается вывод о наличии в исследуемой программе РПС с вероятностью Р0.
Если в качестве информативной характеристики программы выбраны значения закона распределения выходной величины в точке y0, то задача определения решающих правил о наличии программных закладок может быть уточнена и записана в следующем виде.
Дано:Р=F(y0); q=1-P=P(y>y0); задано число прогонов программы n и значения доверительной вероятности Р0.
Необходимо: определить значение доверительного интервала L частоты появления события {A-yj<y0}, где yj - j-е значение выходной величины.
Для независимых испытаний частота появления события А-yi<y0 является случайной величиной, распределенной по биномиальному закону с математическим ожиданием Р и дисперсией D=Pq/n. Вероятность появления k событий при n испытаниях в этом случае рассчитывается по формуле Pk=CnkPkqn-k.
В качестве доверительного интервала [P1*,Р2*] целесообразно выбирать наименьший интервал, вероятность попадания за границы которого больше (1-Р)/2. Границы доверительных интервалов для различных значений Р, Р0 и n сведены в таблицы, что существенно облегчает задачу инженерного анализа результатов тестирования при контроле технологической безопасности программного обеспечения. С увеличением n биномиальное распределение будет стремиться к нормальному с теми же математическим ожиданием и дисперсией. При этом для вероятностного тестирования необходимо выбрать такие значения y0, чтобы Р0,5, что позволяет заменять биномиальное распределение нормальным с максимальной точностью. Доверительный интервал в этом случае определяется по формулам P(P-P*<Lэкс)=P0, Lэкс=arg Z*((1+P0)/2), где arg Z* - функция, обратная нормальной функции распределения Z*, полученная по таблицам.
С учетом того, что значение F(y0) вычисляется с точностью , доверительный интервал L=Lэкс+, то есть если при проведении испытаний значений Р* будет отличаться от аналогично рассчитанного на величину, большую, чем Lэкс+, то принимается решение о наличии в исследуемой программе РПС с вероятностью Р0.
Аналогичным образом доверительный интервал может быть определен и для случая, когда в качестве информативной характеристики программы используется математическое ожидание выходной случайной величины: .
Так как yj представляет собой случайные величины с одинаковым законом распределения, то законы распределения и их суммы стремятся к нормальному с математическим ожиданием m1(y) и дисперсией D(y)/n.
В этом случае доверительный интервал определяется по формуле Lэкс=arg Z*((1+P0)/2), .
Пользуясь методами математической статистики, можно аналогичным образом построить доверительные интервалы и для других ВХ. При этом факторы, влияющие на достоверность определения вероятности наличия в программном обеспечении РПС, можно разбить на три основные группы.
1. Точность аналитического вычисления ВХ. Если в качестве метода вычислений использовать метод моментов, то ошибки будут вызваны точностью представления реализуемой функции степенным рядом и ограниченным числом начальных моментов. Если функция представляется конечным степенным рядом или ошибка разложения в ряд достаточно мала, то можно считать, что точность вычисления ВХ будет зависеть от качества моментов. При заданной допустимой ошибке вычисления закона распределения требуемое число моментов может быть достаточно просто рассчитано.
2. Ограниченность числа испытаний (прогонов) программы. При известных значениях доверительного интервала с помощью методов статистики можно определить необходимое число испытаний, обеспечивающее достоверность результата не меньше Р0.
3. Закон распределения входных случайных величин. Для заданного закона распределения аргумента w(x) функции f1(x) и f2(x) будут неразличимы, если для каждой точки y
F(y)= w(x) dx= w(x) dx
или если задаться допустимой точностью вычисления функции распределения:
w(x) dx- w(x) dx,
где i - интервалы аргумента, где f1(x)<y;
j - интервалы аргумента, где f2(x)<y.
Проверяя функции при различных законах распределения аргумента, можно сократить множество неразличимых функций. Для каждого класса допустимых функций можно найти такой набор законов распределения аргументов, который обеспечивает минимизацию области неразличимых функций.