- • Оформление. Фгбоу впо «Воронежский государственный технический университет», 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
6.3. Примеры применения схемы подписи с верификацией по запросу
Предположим фирма-изготовитель программного обеспечения распространяет свою продукцию посредством электронной почты. На каждом экземпляре ПО проставляется некоторая подпись (тип подписи пока не определен, но в любом случае подпись представляет собой значение функции, аргументами которой обязательно являются подписываемые данные и секретный ключ подписывающего). Эта подпись гарантирует, что программы являются подлинными (то есть, разработаны фирмой-изготовителем) и не были модифицированы. Однако верифицировать эту подпись, можно только уплатив за программный продукт. В этом случае фирма - изготовитель во взаимодействии с потребителем устанавливают корректность подписи, а значит и подлинность проданных программ.
Селективно конвертируемая схема подписи с верификацией по запросу можно использовать следующим образом. В рассмотренном ранее сценарии для схемы подписи с верификацией по запросу (ПВЗ) предположим, что фирме - изготовителю программного обеспечения необходимо, чтобы некоторые из сотрудников этой организации могли бы верифицировать ПВЗ, однако это надо сделать так, чтобы в дальнейшем они не могли генерировать подпись с использованием полученной информации о некоторых секретных параметрах схемы ПВЗ. Возможна ситуация, когда фирма - изготовитель по каким - либо причинам прекращает свою деятельность. Тогда она открывает для пользователей свою секретную информацию для верификации подписи с тем, чтобы рограмммы фирмы можно еще было бы безопасно использовать. Предположим также следующий сценарий. Та же фирма изготовила новую версию программного обеспечения, в то время как старая версия морально устарела и ее нет смысла использовать в дальнейшем. Однако, фирма желает убедить потребителей в своей надежности и в том, что все это время они использовали достоверные программы. В этом случае фирма публикует свой некоторый секретный параметр, позволяющий пользователям убедиться в оригинальности программ.
6.4. Основные подходы к защите программ от несанкционированного копирования
При защите программ от несанкционированного копирования применяются методы, которые позволяют привносить в защищаемую программу функции привязки процесса выполнения кода программы только на тех ЭВМ, на которые они были инсталлированы.
Инсталлированная программа для защиты от копирования при каждом запуске должна выполнять следующие действия:
-анализ аппаратно-программной среды компьютера, на котором она запущена, формирование на основе этого анализа текущих характеристик своей среды выполнения;
-проверка подлинности среды выполнения путем сравнения ее текущих характеристик с эталонными, хранящимися на винчестере;
-блокирование дальнейшей работы программы при несовпадении текущих характеристик с эталонными.
Этап проверки подлинности среды является одним из самых уязвимых с точки зрения защиты. Можно детально не разбираться с логикой защиты, а немного «подправить» результат сравнения, и защита будет снята.
При выполнении процесса проверки подлинности среды возможны три варианта: с использованием множества операторов сравнения того, что есть, с тем, что должно быть, с использованием механизма генерации исполняемых команд в зависимости от результатов работы защитного механизма и с использованием арифметических операций. При использовании механизма генерации исполняемых команд в первом байте хранится исходная ключевая контрольная сумма BIOS, во второй байт записывается подсчитанная контрольная сумма в процессе выполнения задачи. Затем осуществляется вычитание из значения первого байта значение второго байта, а полученный результат добавляется к каждой ячейки оперативной памяти в области операционной системы. Понятно, что если суммы не совпадут, то операционная система функционировать не будет. При использовании арифметических операций осуществляется преобразование над данными арифметического характера в зависимости от результатов работы защитного механизма.
Для снятия защиты от копирования применяют два основных метода: статический и динамический.
Статические методы предусматривают анализ текстов защищенных программ в естественном или преобразованном виде. Динамические методы предусматривают слежение за выполнением программы с помощью специальных средств снятия защиты от копирования.