- • Оформление. Фгбоу впо «Воронежский государственный технический университет», 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
3.2. Построение программно-аппаратных комплексов для контроля технологической безопасности программ Состав инструментальных средств контроля безопасности по при его разработке:
Разработка сложного многофункционального ПО КС невозможна без создания интегрированной технологии разработки безопасного ПО, позволяющей осуществить комплексную автоматизацию всех этапов его жизненного цикла при гарантированном контроле наличия преднамеренных дефектов. Реализация в рамках единой технологии разработки программ инструментальных средств поддержки создания безопасного ПО направлена на обеспечение промышленного выпуска программных комплексов с высоким уровнем безопасности и качества, осуществление контроля и экспериментальной оценки программ на наличие дефектов при сохранении высокого уровня производительности труда разработчиков программных комплексов.
В настоящее время уровень развития инструментальных средств разработки программного обеспечения позволяет поддерживать в рамках единой технологии все этапы жизненного цикла программ от их проектирования до кодирования и сопровождения. Однако подобные средства, как правило, реализуют замкнутый цикл работы, предназначены для разработки отдельных программ информационных систем, не позволяют учитывать особенности их целевого применения в контуре КС. Кроме того, в процессе их применения проблематично использование средств контроля технологической безопасности, базовых библиотек стандартных подпрограмм, прошедших сертификацию, а также затруднено получения процедур получения и анализа на безопасность исходного текста готовых программ. Отмеченные недостатки средств разработки программного обеспечения привели к тому, что сложившаяся технология создания сложных комплексов программ (КП) КС, функционирующих в режимах близких к реальному масштабу времени и обеспечивающих выполнение жестких требований к качеству управления, состоит из следующих этапов:
1. Техническое обоснование, системный анализ, проектирование и стратегическое планирование работ по созданию комплекса программ с учетом характеристик всех структур КС на основе систем имитационного моделирования и САSЕ-средств.
2. Разработка компонентов (получение программного кода) программных комплексов на основе инструментальных средств разработки.
3. Создание базового набора унифицированных модулей, компонуемых под различные целевые задачи в соответствии с алгоритмами управления (администрирования) и взаимосвязанные посредством стандартных интерфейсов.
4. Проведение стендовых и приемо-сдаточных комплексных испытаний разработанных программных изделий на основе тестирования в соответствии с программой и методикой испытаний.
Комплексное решение проблемы информационной безопасности в рамках интегрированной технологии разработки ПО КС связано с выполнением множества организационно-технических мероприятий и решением сложных научно-прикладных задач. Однако уже сегодня, на 2-м и последующих этапах существующей технологии создания ПО может быть реализован контроль технологической безопасности готовых макетов программ, разработанных как с помощью отечественных, так и зарубежных средств. В качестве прототипа инструментальных средств контроля технологической безопасности ПО могут служить средства автоматизации тестирования программных модулей. Однако современные средства тестирования позволяют оценивать программы лишь на наличие ошибок, допущенных в процессе их разработки. Поэтому необходимо разрабатывать новые инструментальные средства, способные выявлять преднамеренные дефекты в программах. В перспективе такие средства технологического контроля безопасности ПО будут встроены в единую технологию создания программных средств КС.
С учетом методик контроля технологической безопасности создание программных средств контроля процессов разработки и испытаний ПО направлено на совершенствование технологии проведения тестовых экспериментов с макетами общесистемного и специального программного обеспечения, а также с инструментальными средствами разработки программ. Управляющие модули (мониторы), системы управления базой данных, средства отображения и планирования образуют общесистемное программное обеспечение (ОСПО). Набор общесистемных модулей обеспечивает через стандартные интерфейсы подключение и «настройку» специального программного обеспечения (СПО), которое является функциональным наполнением КП, на конкретный технологический цикл обработки информации. Формирование комплексов программ из унифицированных безопасных модулей является эффективным способом технологии сборочного программирования и дает значительную экономию средств при создании КС по типовой архитектуре.
Структурно-функциональная схема инструментальных средств поддержки создания безопасного программного обеспечения на основе предложенных методик представлена на рис.1.4 и включает следующие основные элементы.
1. Средства экспертизы и организации тестирования ПО.
2. Средства проведения тестирования.
3. Средства ликвидации дефектов.
4. Средства обеспечения тестирования.
Средства экспертизы и организации тестирования ПО состоят из следующих компонентов:
экспертного анализатора контроля безопасности;
блока прогнозирования участков воздействия дефектов;
моделей угроз безопасности ПО;
планировщика тестов контроля технологической безопасности.
Экспертный анализатор контроля безопасности предназначен для структурной декомпозиции тестируемого ПО КС с целью выделения элементов ОСПО, формирования библиотек СПО и определения состава и характеристик инструментальных средств с использованием которых разрабатывалось это программное обеспечение. Функционирование экспертного анализатора осуществляется в интерактивном режиме взаимодействия эксперта-оператора с программными средствами путем последовательного прохождения технологических этапов проверки.
Результатом работы этого элемента инструментальных средств поддержки создания безопасного ПО являются файлы с данными о компонентах разработанных программ и оценками их показателей качества.
Средства организации тестирования программ в интересах проверки их безопасности позволяют спрогнозировать вероятностным образом те участки программ, которые могут быть потенциально подвержены воздействию дефектов. Прогноз предполагаемых «узких мест» воздействия дефектов осуществляется на основе знания существующих моделей угроз безопасности и полученной статистики о выявленных дефектах. Базируясь на информации, собранной об объекте контроля, планировщик тестов контроля технологической безопасности производит формирование перечня тестов, необходимых для проверки соответствующего вида программ, и автоматизированный расчет числа экспериментов для получения достоверных вероятностных показателей безопасности ПО.
Средства проведения тестирования состоят из следующих элементов:
средств обнаружения дефектов в ПО;
средств локализации дефектов;
системы генерации тестов;
базы данных тестирования.
Средства обнаружения дефектов представляют собой совокупность программных блоков, реализующих методики контроля технологической безопасности ПО и их расширения. В зависимости от вида тестируемых программ осуществляется динамическое или статическое тестирование. Динамическое тестирование заключается в проведении автодиагностики и натурных экспериментов по определению соответствия параметров и алгоритмов управления функционированием программ, предъявленным к ним требованиям. Статическое тестирование представляет собой процесс аналитического моделирования, основанного на автоматизированных вычислениях вероятностей наличия дефектов в программных средствах. В зависимости от назначения ПО обнаружение дефектов производится следующим образом.
Экспертный анализатор объектов контроля безопасности ПО
Блок прогнозирования местоположений воздействия программных дефектов
Модели угроз безопасности ПО