- • Оформление. Фгбоу впо «Воронежский государственный технический университет», 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
2.5. Выявление уязвимостей в программном обеспечении
На современном этапе развития информационных технологий для обеспечения информационной безопасности КС разрабатываются наборы ПО, в которых реализуются различные функции обеспечения ИБ, такие как конфиденциальность, целостность, доступность, авторизация и т. д.
КС современных промышленных корпораций являются весьма сложной системой, построенной в многоуровневой архитектуре клиент—сервер, и для их реализации используют разнообразное ПО. Многообразие способов построения КС, а также широкий набор методов и систем защиты информации порождают множество вариантов решения вопросов обеспечения ИБ КС. К настоящему времени единой структуры или набора стандартного ПО обеспечения ИБ для всех КС не существует. Каждая компания может иметь свой собственный, отличающийся от других, набор требований, проблем и приоритетов в зависимости от вида деятельности, производственной или сетевой среды. Поэтому при проектировании КС в зависимости от политики безопасности реализуется различное ПО. И здесь очень важно иметь возможность оценивать информационную безопасность КС в зависимости от применяемого в них ПО на ранних стадиях проектирования.
При создании сложных КС, формировании их архитектуры, выборе программного обеспечения и связей между ними помимо общих требований, таких как открытость, масштабируемость и т. п., следует учитывать ряд специфических концептуальных требований, направленных на обеспечение безопасности функционирования, — это гибкость и перенастраиваемость архитектуры системы без коренных структурных изменений, устойчивость функционирования системы при успешной реализации различных видов угроз, а также весьма удобный доступ пользователей к управлению и результатам функционирования КС.
С другой стороны, при построении системы защиты информации (СЗИ) в КС как одна из доминирующих возникает задача систематизации уязвимостей существующего ПО. Именно на основе такого систематизированного подхода к уязвимостям в ПО возможна разработка методики анализа безопасности защищенных КС.
Рассмотрим типовые схемы атак, направленные на уязвимости в КС, которые защищены различным программным обеспечением безопасности. Используя скрытые возможности или ошибки в ПО, злоумышленник получает несанкционированный доступ к системе. Наиболее распространенными атаками данного типа являются [1, 3] следующие:
1. CGI — скрипты (программы). Типичные уязвимости включают прохождение зараженных данных непосредственно к командной оболочке, использование скрытых уязвимостей, конкретизирующих любое имя файла в системе, или, иначе, открывающих гораздо больше информации о системе, чем надо.
Атаки на web-сервер. Многие web-серверы имеют уязвимости, из-за которых название файла может включать ряд последовательностей "../" в названии пути для перемещения куда-либо в файловой системе и получения любого файла.
Атака на web-браузер. К таким атакам можно отнести URL-атаки, НТТР-атаки, HTML-атаки, JavaScript-атаки, ActiveX-атаки и др. URL-поля могут стать причиной переполнения буфера в процессе обработки в заголовке HTTP. HTTP-заголовки могут применяться для реализации атак путем передачи информации полям, которые не предназначены для приема данной информации. JavaScript делает возможной функцию "загрузка файла". Так как JavaScript может автоматизировать процесс загрузки файла, то, как следствие, нарушитель может выложить web-страницу с указанным скриптом на свой узел, и как только осуществится переход пользователя на эту страницу, происходит загрузка указанных в скрипте файлов. ActiveX-атака является более опасным типом атак, так как считается доверенным кодом и имеет полный доступ как к ресурсам локальной рабочей станции, так и к ядру ее операционной системы.
Sendmail-атаки. Sendmail — это чрезвычайно сложная и широко используемая программа, и, как следствие, она является наиболее частым источником найденных уязвимостей. Нарушители нередко пытаются применять способ переполнения буфера.
IP-spoofing. Есть ряд атак, с помощью которых возможна подмена (или spoof) IP-адреса. IP-spoofmg часто используется как часть различных атак [4|.
Проанализировав определенный основной состав и механизмы действия угроз на защищенные КС, можно в обобщенном виде систематизировать причины возникновения уязвимостей в программном обеспечении этих КС, что, в свою очередь, может служить определенным механизмом поиска уязвимостей в произвольной по архитектуре и назначению КС:
неправильно выбранный алгоритм или модель, на основе которой функционирует программное обеспечение;
неправильно реализованный алгоритм или модель (при условии, что на первичном этапе была выбрана успешная модель);
возможность нарушения базовых понятий безопасности при создании программного обеспечения;
некорректное преобразование (переход из одного состояния в другое) выбранной модели или программного обеспечения.
Анализ потенциальных возможных угроз информации и проведение мероприятий, вытекающих из политики безопасности — это один из первых и обязательных этапов разработки защищенной КС.
Составляющими элементами защиты в каждой защищаемой КС являются ресурсы и программное обеспечение, организующее процесс безопасного функционирования системы. Ресурсы, используемые в КС, обозначим , где , а множество используемого ПО, имеющего возможность напрямую влиять на систему защиты информации КС, обозначим , где . Вне зависимости от архитектуры КС и ее системы защиты оба множества являются конечными. В КС с произвольной внутренней архитектурой ресурсам г присваиваются различные уровни безопасности. Эти уровни могут быть определены как международными стандартами, так и уже зафиксированными внутри готовых платформ уровнями безопасности, определенными производителями [2, 5].
Далее обозначим N число уязвимых рабочих станций и введем параметр К, означающий начальное значение среднего числа атакованных рабочих станций в единицу времени. В зависимости от внутренней архитектуры КС параметр К в какой-то мере определяется пропускной способностью канала связи, производительной мощностью серверов и рабочих станций. Рассматривается вариант, где параметр К не зависит от перечисленных выше факторов. Также вычисления делаются с учетом того, что один и тот же компьютер не может быть атакован дважды, если реализация первой атаки абсолютно успешная.
Пусть — пропорция уязвимых рабочих станций, которые были успешно атакованы за время . Тогда представляет собой общее число успешно атакованных рабочих станций, каждая из которых потенциально будет использована для проведения последующих атак со средним их числом К. Поскольку часть рабочих станций уже была успешно атакована каждой новой захваченной рабочей станцией, то захваченная станция будет предпринимать не более новых успешных атак. Таким образом, число захваченных рабочих станций за период времени
.
Так как N — константа, то . Тогда верно следующее уравнение:
,
которое ведет к дифференциальному уравнению вида
.
Результатом решения данного уравнения является
где Т — временной параметр, характеризующий наибольший рост атак. Выбирая метод и стратегию атаки, злоумышленник определяет количество приобретаемой им информации из атакуемой КС.