- •Конспект лекций
- •Специальные материалы, способы защиты и кодирования информации
- •090900 «Информационная безопасность»
- •Содержание
- •Тема 9. Комплекс средств защиты информации в распределенных вычислительных сетях 114
- •Тема 10 Защита электронных документов 123
- •Тема 1. Основные понятия в области информационной безопасности
- •Тема 11 Методы и средства обеспечения целостности и достоверности используемого программного кода 195
- •Тема 12.Методы защиты программного обеспечения от внедрения на этапе его эксплуатации и сопровождения программных закладок 227
- •Тема 13 Основные подходы к защите программ от несанкционированного копирования 232
- •Тема 2. Направления, методы и средства обеспечения информационной безопасности
- •2.1. Основные направления обеспечения информационной безопасности
- •2.2. Классификация методов и средств защиты информации
- •2.1. Основные направления обеспечения информационной безопасности
- •2.2. Классификация методов и средств защиты информации
- •Тема 3. Основы законодательства России по вопросам защиты информации
- •Тема 4. Разработка политики безопасности
- •Тема 5. Проведение анализа риска
- •5.1. Основные этапы анализа риска
- •5.2. Предварительный этап анализа риска
- •5.3. Идентификация активов
- •Основные активы информационной системы предприятия
- •5.4. Анализ угроз
- •5.5. Оценка рисков
- •Логарифмическая частота угрозы
- •5.6. Выбор и проверка защитных мер
- •Тема 6 планирование обеспечения информационной безопасности
- •6.1. План защиты
- •6.2. План обеспечения непрерывной работы и восстановления функционирования автоматизированной системы
- •6.3. Реализация планов
- •6.1. План защиты
- •6.2. План обеспечения непрерывной работы и восстановления функционирования автоматизированной системы
- •Восстановительные работы.
- •6.2.1. Меры реагирования на нарушения
- •6.2.2. Восстановительные работы
- •6.3. Реализация планов
- •Тема 7. Механизмы обеспечения информационной безопасности
- •Основные механизмы и средства интегрированной системы информационной безопасности предприятия
- •7.1. Идентификация и аутентификация
- •7.2. Идентификация и аутентификация
- •Примеры методов биометрии
- •7.3. Разграничение доступа
- •Фрагмент матрицы установления полномочий
- •7.4. Регистрация и аудит
- •7.5. Криптография
- •7.7. Экранирование
- •Типы межсетевых экранов и уровни модели iso osi
- •Экран как средство разграничения доступа
- •Тема 8. Антивирусные средства
- •8.1. Общая характеристика и классификация компьютерных вирусов
- •8.2. Общая характеристика средств нейтрализации компьютерных вирусов
- •8.3. Классификация методов защиты откомпьютерных вирусов
- •8.4. Уровни и методы антивирусной защиты
- •8.5. Обзор современных антивирусных средств
- •8.5.1. Комплект антивирусных средств dsav
- •8.5.2. Интегрированная антивирусная система avp
- •Тема 9. Комплекс средств защиты информации в распределенных вычислительных сетях
- •Тема 10 Защита электронных документов
- •10.1. Основы организации защиты электронных документов
- •10.1.Основные мероприятия по обеспечению защиты электронных документов
- •10.2. Технология применения цифровой подписи.
- •10.2.1 Общая организация цифровой подписи
- •10.2.2. Архитектура алгоритмов цп
- •10.2.3 Постановка подписи
- •10.2.4. Проверка подписи
- •10.2.5. Критерии (показатели эффективности)
- •10.2.6. Нападения
- •10.3. Особенности применения цифровой подписи
- •10.4. Защита электронных платежей
- •10.5. Анализ нарушений в системе электронных расчетов и платежей
- •10.6. Основы криптографической защиты электронных документов
- •10. 6.1. Основные требования к криптосистемам
- •10.6.2. Основные требования к криптосистемам
- •10.6.3. Реализация криптографических методов
- •Тема 11 Методы и средства обеспечения целостности и достоверности используемого программного кода
- •11.1. Методы защиты программ от несанкционированных изменений
- •11.2. Краткое описание криптографических средств контроля целостности и достоверности программ
- •11.3. Краткое описание основных криптографических методов защиты данных
- •11.1. Методы защиты программ от несанкционированных изменений
- •11.2. Краткое описание криптографических средств контроля целостности и достоверности программ
- •11.3. Краткое описание основных криптографических методов защиты данных
- •Открытый ключевой обмен Диффи-Хеллмана и криптосистемы с открытым ключом
- •Электронная цифровая подпись
- •Криптографические протоколы
- •Тема 12.Методы защиты программного обеспечения от внедрения на этапе его эксплуатации и сопровождения программных закладок
- •12.1.Классификация средств исследования программ
- •12.2. Методы защиты программ от исследования
- •12.3.Анализ программ на этапе их эксплуатации
- •12.1. Классификация средств исследования программ
- •12.2. Методы защиты программ от исследования
- •12.3. Анализ программ на этапе их эксплуатации
- •Тема 13 Основные подходы к защите программ от несанкционированного копирования
- •13.1. Основные функции средств защиты от копирования
- •13.3. Методы противодействия динамическим способам снятия защиты программ от копирования
- •13.1. Основные функции средств защиты от копирования
- •13.2. Основные методы защиты программ откопирования
- •Метод привязки к идентификатору
- •13.3. Методы противодействия динамическим способам снятия защиты программ от копирования
- •Методы, основанные на работа с переходами и стеком
- •Манипуляции с кодом программы
- •Библиографический список Основная литература
- •Дополнительная литература
Методы, основанные на работа с переходами и стеком
Данные методы основаны на включение в тело программы переходов по динамически изменяемым адресам и прерываниям, а также самогенерирующихся команд (например, команд, полученных с помощью сложения и вычитания). Кроме того, вместо команды безусловного перехода (JMP) может использоваться возврат из подпрограммы (RET). Предварительно в стек записывается адрес перехода, который в процессе работы программы модифицируется непосредственно в стеке.
При работе со стеком, стек определяется непосредственно в области исполняемых команд, что приводит к затиранию при работе со стеком. Этот способ применяется, когда не требуется повторное исполнение кода программы. Таким же способом можно генерировать исполняемые команды до начала вычислительного процесса.
Манипуляции с кодом программы
При манипуляциях с кодом программы можно привести два следующих способа:
включение в тело программы «пустых» модулей;
изменение защищаемой программы.
Первый способ заключается во включении в тело программы модулей, на которые имитируется передача управления, но реально никогда не осуществляется. Эти модули содержат большое количество команд, не имеющих никакого отношения к логике работы программы. Но «ненужность» этих программ не должна быть очевидна потенциальному злоумышленнику.
Второй способ заключается в изменении начала защищаемой программы таким образом, чтобы стандартный дизассемблер не смог ее правильно дизассемблировать. Например, такие программы, как Nota и Copylock, внедряя защитный механизм в защищаемый файл, полностью модифицируют исходный заголовок EXE-файла.
Все перечисленные методы были, в основном направлены на противодействия статическим способам снятия защиты от копирования. В следующем подразделе рассмотрим методы противодействия динамическим способам снятия защиты.
13.3. Методы противодействия динамическим способам снятия защиты программ от копирования
Набор методов противодействия динамическим способам снятия защиты программ от копирования включает следующие методы [47].
Периодический подсчет контрольной суммы, занимаемой образом задачи области оперативной памяти, в процессе выполнения. Это позволяет:
- заметить изменения, внесенные в загрузочный модуль;
- в случае, если программу пытаются «раздеть», выявить контрольные точки, установленные отладчиком.
Проверка количества свободной памяти и сравнение и с тем объемом, к которому задача «привыкла» или «приучена». Это действия позволит застраховаться от слишком грубой слежки за программой с помощью резидентных модулей.
Проверка содержимого незадействованных для решения защищаемой программы областей памяти, которые не попадают под общее распределение оперативной памяти, доступной для программиста, что позволяет добиться «монопольного» режима работы программы.
Проверка содержимого векторов прерываний (особенно 13h и 21h) на наличие тех значений, к которым задача «приучена». Иногда бывает полезным сравнение первых команд операционной системы, отрабатывающих этим прерывания, с теми командами, которые там должны быть. Вместе с предварительной очисткой оперативной памяти проверка векторов прерываний и их принудительное восстановление позволяет избавиться от большинства присутствующих в памяти резидентных программ.
Переустановка векторов прерываний. Содержимое некоторых векторов прерываний (например, 13h и 21h) копируется в область свободных векторов. Соответственно изменяются и обращения к прерываниям. При этом слежение за известными векторами не даст желаемого результата. Например, самыми первыми исполняемыми командами программы копируется содержимое вектора 21h (4 байта) в вектор 60h, а вместо команд int 21h в программе везде записывается команда int 60h. В результате в явном виде в тексте программы нет ни одной команды работы с прерыванием 21h.
Постоянное чередование команд разрешения и запрещения прерывания, что затрудняет установку отладчиком контрольных точек.
Контроль времени выполнения отдельных частей программы, что позволяет выявить «остановы» в теле исполняемого модуля.
Многие перечисленные защитные средства могут быть реализованы исключительно на языке Ассемблер. Одна из основных отличительных особенностей этого языка заключается в том, что для него не существует ограничений в области работы со стеком, регистрами, памятью, портами ввода/вывода и т.п.
Автокорреляция представляет значительный интерес, поскольку дает некоторую числовую характеристику программы. По всей вероятности автокорреляционные функции различного типа можно использовать и тестировании программ на технологическую безопасность, когда разработанную программу еще не с чем сравнивать на подобие с целью обнаружения программных дефектов.
Таким образом, программы имеют целую иерархию структур, которые могут быть выявлены, измерены и использованы в качестве характеристик последовательности данных. При этом в ходе тестирования, измерения не должны зависеть от типа данных, хотя данные, имеющие структуру программы, должны обладать специфическими параметрами, позволяющими указать меру распознавания программы. Поэтому указанные методы позволяют в определенной мере выявить те изменения в программе, которые вносятся нарушителем либо в результате преднамеренной маскировки, либо преобразованием некоторых функций программы, либо включением модуля, характеристики которого отличаются от характеристик программы, а также позволяют оценить степень обеспечения безопасности программ при внесении программных закладок.
