2.3. Защита программных средств от исследования
Изучение логики работы программы может выполняться в одном из двух режимов: статическом и динамическом.
Сущность статического режима заключается в изучении исходного текста программы. Для получения листингов исходного текста выполняемый программный модуль дизассемблируют, то есть получают из программы на машинном языке программу на языке Ассемблер.
Динамический режим изучения алгоритма программы предполагает выполнение трассировки программы. Под трассировкой программы понимается выполнение программы на ЭВМ с использованием специальных средств, позволяющих выполнять программу в пошаговом режиме, получать доступ к регистрам, областям памяти, производить остановку программы по определенным адресам и т. д. В динамическом режиме изучение алгоритма работы программы осуществляется либо в процессе трассировки, либо по данным трассировки, которые записаны в запоминающем устройстве.
Средства противодействия дизассемблированию не могут защитить программу от трассировки и наоборот: программы, защищенные только от трассировки, могут быть дизассемблированы. Поэтому для защиты программ от изучения необходимо иметь средства противодействия как дизассемблированию, так и трассировке.
Существует несколько методов противодействия дизассемблированию:
‑ шифрование;
‑ архивация:
‑ использование самогенерирующих кодов;
‑ «обман» дизассемблера.
Архивацию можно рассматривать как простейшее шифрование.
Причем архивация может быть объединена с шифрованием. Комбинация таких методов позволяет получать надежно закрытые компактные программы. Зашифрованную программу невозможно дизассемблировать без расшифрования. Зашифрование (расшифрования) программ может осуществляться аппаратными средствами или отдельными программами.
Такое шифрование используется перед передачей программы по каналам связи или при хранении ее на ВЗУ. Дизассемблирование программ в этом случае возможно только при получении доступа к расшифрованной программе, находящейся в ОП перед ее выполнением (если считается, что преодолеть криптографическую защиту невозможно).
Другой подход к защите от дизассемблирования связан с совмещением процесса расшифрования с процессом выполнения программ. Если расшифрование всей программы осуществляется блоком, получающим управление первым, то такую программу расшифровать довольно просто. Гораздо сложнее расшифровать и дизассемблировать программу, которая поэтапно расшифровывает информацию, и этапы разнесены по ходу выполнения программы. Задача становится еще более сложной, если процесс расшифрования разнесен по тексту программы.
Сущность метода, основанного на использовании самогенерируемых кодов, заключается в том, что исполняемые коды программы получаются самой программой в процессе ее выполнения. Самогенерируемые коды получаются в результате определенных действий над специально выбранным массивом данных. В качестве исходных данных могут использоваться исполняемые коды самой программы или специально подготовленный массив данных. Данный метод показал свою высокую эффективность, но он сложен в реализации.
Под «обманом» дизассемблера понимают такой стиль программирования, который вызывает нарушение правильной работы стандартного дизассемблера за счет нестандартных приемов использования отдельных команд, нарушения общепринятых соглашений. «Обман» дизассемблера осуществляется несколькими способами:
‑ нестандартная структура программы;
‑ скрытые переходы, вызовы процедур, возвраты из них и из прерываний;
‑ переходы и вызовы подпрограмм по динамически изменяемым адресам;
‑ модификация исполняемых кодов.
Для дезориентации дизассемблера часто используются скрытые переходы, вызовы и возвраты за счет применения нестандартных возможностей команд.
Маскировка скрытых действий часто осуществляется с применением стеков.
Трассировка программ обычно осуществляется с помощью программных продуктов, называемых отладчиками. Основное назначение их - выявление ошибок в программах. При анализе алгоритмов программ используются такие возможности отладчиков как пошаговое (покомандное) выполнение программ, возможность останова в контрольной точке.
Покомандное выполнение осуществляется процессором при установке пошагового режима работы. Контрольной точкой называют любое место в программе, на котором обычное выполнение программы приостанавливается, и осуществляется переход в особый режим, например, в режим покомандного выполнения. Для реализации механизма контрольной точки обычно используется прерывание по соответствующей команде ЭВМ (для IBM-совместных ПЭВМ такой командой является команда INT). В современных процессорах можно использовать специальные регистры для установки нескольких контрольных точек при выполнении определенных операций: обращение к участку памяти, изменение участка памяти, выборка по определенному адресу, обращение к определенному порту ввода-вывода и т. д.
При наличии современных средств отладки программ полностью исключить возможность изучения алгоритма программы невозможно, но существенно затруднить трассировку возможно. Основной задачей противодействия трассировке является увеличение числа и сложности ручных операций, которые необходимо выполнить программисту-аналитику.
Для противодействия трассировке программы в ее состав вводятся следующие механизмы:
‑ изменение среды функционирования;
‑ модификация кодов программы;
‑ «случайные» переходы.
Под изменением среды функционирования понимается запрет или переопределение прерываний (если это возможно), изменение режимов работы, состояния управляющих регистров, триггеров и т.п. Такие изменения вынуждают аналитика отслеживать изменения и вручную восстанавливать среду функционирования.
Изменяющиеся коды программ, например, в процедурах приводят к тому, что каждое выполнение процедуры выполняется по различным ветвям алгоритма.
«Случайные» переходы выполняются за счет вычисления адресов переходов. Исходными данными для этого служат характеристики среды функционирования, контрольные суммы процедур (модифицируемых) и т. п. Включение таких механизмов в текст программ существенно усложняет изучение алгоритмов программ путем их трассировки.
- Оглавление
- Тема: «основные понятия и положения защиты информации в информационных системах»
- 3. Ценность информации изменяется во времени.
- 4. Информация покупается и продается.
- Лекция 02 (2 часа) «понятие сложной системы: элементы и подсистемы, управление и информация, самоорганизация»
- Лекция 03(2 часа) «информационные системы и их классификации» Основные понятия
- Автоматизированные системы управления
- Системы поддержки принятия решений
- Автоматизированные информационно-вычислительные системы
- Проблемно-ориентированные имитационные системы
- Моделирующее центры
- Автоматизированные системы обучения
- Автоматизированные информационно-справочные
- Лекция 04(2 часа) Тема: «угрозы безопасности информации в компьютерных системах»
- Случайные угрозы
- Преднамеренные угрозы
- 1) Традиционный шпионаж и диверсии
- 2) Несанкционированный доступ к информации
- 3) Электромагнитные излучения и наводки
- 4) Несанкционированная модификация структур
- 5) Вредительские программы
- 6) Классификация злоумышленников
- Лекция 05(2 часа)
- 1 Дублирование информации
- 2. Повышение надежности кс
- 3. Создание отказоустойчивых кс
- 4. Блокировка ошибочных операций
- 5. Оптимизация взаимодействия пользователей и обслуживающего персонала с кс
- 6. Минимизация ущерба от аварий и стихийных бедствий
- Лекция 06(4 часа)
- §1. Система охраны объекта кс
- 1.1. Инженерные конструкции
- 1.2. Охранная сигнализация
- 1.3. Средства наблюдения
- 1.4. Подсистема доступа на объект
- 1.5. Дежурная смена охраны
- §2. Организация работ с конфиденциальными информационными ресурсами на объектах кс
- §3. Противодействие наблюдению в оптическом диапазоне
- §4. Противодействие подслушиванию
- §5. Средства борьбы с закладными подслушивающими устройствами
- 5.1. Средства радиоконтроля помещений
- 5.2. Средства поиска неизлучающих закладок
- 5.3. Средства подавления закладных устройств
- §6. Защита от злоумышленных действий обслуживающего персонала и пользователей
- Лекция 07(2 часа) Тема: «методы защиты от несанкционированного изменения структур ас»
- §1. Общие требования к защищённости ас от несанкционированного изменения структур
- §2. Защита от закладок при разработке программ
- 2.1. Современные технологии программирования
- 2.2 Автоматизированная система разработки программных средств
- 2.3. Контрольно-испытательный стенд
- 2.4 Представление готовых программ на языках высокого уровня
- 2.5 Наличие трансляторов для обнаружения закладок
- §3 Защита от внедрения аппаратных закладок на этапе разработки и производства
- §4 Защита от несанкционированного изменения структур ас в процессе эксплуатации
- 4.1 Разграничение доступа к оборудованию
- 4.2 Противодействие несанкционированному подключению устройств
- 4.3 Защита внутреннего монтажа, средств управления и коммутации от несанкционированного вмешательства
- 4.4 Контроль целостности программной структуры в процессе эксплуатации
- Лекция 08(2 часа) Тема: «защита информации в ас от несанкционированного доступа»
- §1. Система разграничения доступа к информации в ас
- 1.1. Управление доступом
- 1.2. Состав системы разграничения доступа
- 1.3. Концепция построения систем разграничения доступа
- 1.4. Современные системы защиты пэвм от несанкционированного доступа к информации
- §2. Система защиты программных средств от копирования и исследования
- 2.1. Методы, затрудняющие считывание скопированной информации
- 2.2. Методы, препятствующие использованию скопированной информации
- 2.3. Защита программных средств от исследования
- Лекция 09(2 часа) Тема: «защита компьютерных систем от силовых деструктивных воздействий «
- 1. Каналы силового деструктивного воздействия на компьютерные системы
- Классификация средств силового деструктивного воздействия Технические средства сдв по сетям питания
- Технические средства сдв по проводным каналам
- Технические средства сдв по эфиру
- Рекомендации по защите компьютерных систем от силового деструктивного воздействия
- Заключение
- Лекция 10(4 часа) Тема: «защита информации в распределённых компьютерных системах»
- §1. Архитектура распределённых кс
- §2. Особенности защиты информации в ркс
- §3. Обеспечение безопасности информации в пользовательской подсистеме и специализированных коммуникационных кс
- §4. Защита информации на уровне подсистемы управления ркс
- Семиуровневая модель osi
- §5. Защита информации в каналах связи
- 5.1. Межсетевое экранирование
- 5.2. Подтверждение подлинности взаимодействующих процессов
- А. Проверка подлинности процессов при распределении ключей с использованием црк
- Б. Проверка подлинности взаимодействующих процессов при прямом обмене сеансовыми ключами
- §6. Подтверждение подлинности информации, получаемой по коммуникационной подсети
- §7. Особенности защиты информации в базах данных
- Лекция 11(2 часа) Тема: «эффективность защищенной ас. Управление рисками»
- §1. Методики оценки рисков
- 1.1 Модель качественной оценки
- 1.2. Количественная модель рисков
- 1.3. Наиболее вероятные атаки
- I Методологические ошибки:
- II Windows – системы:
- III Unix – системы:
- Лекция 12(3 часа) Тема: «основы построения комплексных систем защиты информации автоматизированых систем»
- §1 Концепция создания защищённых ас
- §2 Этапы создания комплексной системы защиты информации
- §3 Научно-исследовательская разработка ксзи
- §4 Моделирование ксзи
- §4.1. Специальные методы неформального моделирования
- §4.2 Декомпозиция общей задачи оценки эффективности функционирования ксзи
- §4.3 Макромоделирование
- §5 Выбор показателей эффективности и критериев оптимальности ксзи
- §6. Математическая постановка задачи разработки комплексной системы защиты информации
- §7 Подходы к оценке эффективности ксзи
- §7.1 Классический подход
- §7.2 Официальный подход
- §7.3 Экспериментальный подход
- §8 Создание организационной структуры ксзи
- Лекция 13(2 часа) Тема «средства контроля эффективности защиты информации в автоматизированных системах»
- 1. Классификация методов и средств контроля эффективности зи в ас
- 2. Сканеры безопасности ас
- 3. Система контроля защищённости и соответствия стандартам maxpatrol
- 3.1. Контроль защищённости и соответствия стандартам
- 3.2. Сетевой сканер xSpider
- 4. Решения компании Internet Security Systems (iss)
- Лекция 14(2 часа)
- 1.2. Обеспечение целостности и доступности информации в ас
- 2. Техническая эксплуатация ксзи
- Лекция 15(2 часа) «принципы системного проектирования автоматизированных систем»
- 1. Понятие информационного конфликта
- 2. Принцип целостности
- 3. Принцип рациональной декомпозиции
- 4. Принцип автономности
- 5. Принципы дополнительности и действия
- 6. Принципы консервативности и базовой точки
- 7. Принципы ограниченности целенаправленности поведения и неопределённости
- Лекция 16(2 часа) «общая характеристика процесса проектирования автоматизированных систем»
- 1. Основные стадии проектирования систем защиты информации
- I вариант: проектирование сзи для новой ас
- 1) Предпроектная стадия
- 2) Разработка проекта сзи
- 3) Ввод в действие сзи
- 2. Типовое содержание работ по этапам создания ас в защищённом исполнении по гост 34.601
- 2.1. Предпроектная стадия
- «Обследование объекта и обоснование необходимости создания сзи»
- «Формирование требований пользователя к сзи»
- 2.2 Разработка проекта сзи
- 4. Задачи по защите информации
- Определение стратегии осуществляется на основе выбранной цели защиты.
- II варинт: проектирование сзи для функционирующей системы в ходе её модернизации.
- Заключение
- Лекция 17 (2 часа) «разработка технического задания»
- 1. Общие положения
- 2. Состав технического задания
- 3. Содержание технического задания
- 3.1 Раздел «Общие положения»
- 3.2 Раздел «Назначение и цели создания системы»
- 5.2. Подраздел «Требования к структуре и функционированию системы»
- 5.3. Подраздел «Требования к численности и квалификации персонала системы»
- 5.5. Подраздел «Требования к надёжности»
- 5.6. Подраздел «Требования к безопасности»
- 5.7. Подраздел «Требования к эргономике и технической эстетике»
- 5.8. Подраздел «Требования к транспортабельности для подвижных ас»
- 5.9. Подраздел «Требования к эксплуатации, техническому обслуживанию, ремонту и хранению компонентов системы»
- 5.10. Подраздел «Требования к защите информации от несанкционированного доступа»
- 5.15. Подраздел «Дополнительные требования»
- 5.16. Подраздел «Требования к функциям (задачам), выполняемым системой»
- 5.17. Подраздел «Требования к видам обеспечения»
- 5.18. Подраздел «Требования к математическому обеспечению системы»
- 5.19. Подраздел «Требования информационному обеспечению системы»
- 5.20. Подраздел «Требования к лингвистическому обеспечению системы»
- 5.21. Подраздел «Требования к программному обеспечению системы»
- 5.22. Подраздел «Требования к техническому обеспечению»
- 5.23. Подраздел «Требования к метрологическому обеспечению»
- 5.24. Подраздел «Требования к организационному обеспечению»
- 5.25. Подраздел «Требования к методическому обеспечению»
- 6. Раздел «Состав и содержание работ по созданию (развитию) системы»
- 7. Раздел «Порядок контроля и приёмки системы»
- 8. Раздел «Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие»
- 9. Раздел «Требования к документированию»
- 10. Раздел «Источники разработки»