Обычные проблемы хакера
Проще всего разбирать чужую программу, если она уже распечатана на бумаге на любом языке высокого уровня (Паскаль, Си и т.д.), но в крайнем случае сгодится и ассемблер (машинные коды заменены их мнемоническим изображением). В качестве универсального инструмента можно рекомендовать отладчик Turbo Debugger (TD), имеющий широкий сервис и удобный интерфейс. Автор программы применил шифрование и ее разновидность - архивацию. А потому непосредственное дизассемблирование уже не даст верных результатов. Опытный хакер быстро поймет, что вместо текста идет "мусор" и сразу же начнет поиск средств для снятия шифра. Обычно он достигает цели, так как рано или поздно программа сама производит нужную операцию (она ведь не подозревает, что ее запустил хакер). Определив момент завершения дешифрации, можно "снять" в файл содержимое памяти, занимаемой уже "нормальной" программой, и, прогнав его дизассеблером, получить желаемый результат. Даже если используется поэтапная дешифровка (то есть она разнесена по времени), полной гарантии защиты нет - дизассемблирование лишь несколько затянется. Впрочем, когда дешифрацией занимается несколько подпрограмм и каждая является результатом работы предыдущей, хакеру предстоит очень нудная и кропотливая работа по их анализу. Шифрование, хотя и не гарантирует полной безопасности программы, но вынуждает хакера запускать ее отдельные участки (без алгоритмов, разбираясь "на ходу"), таким образом, разработчику предоставляется возможность активно вмешиваться в процесс "взлома" (точнее, поручить это своей программе) и, в первую очередь, отобрать у хакера самый мощный инструмент - пошаговый режим отладки.
В режиме отладки больше всего забот доставляет стек: его расположение, размер, варианты применения. Достаточно тонкое его использование зачастую делает невозможным даже запуск стандартных отладочных средств. Например, назначение в тело выполняемой задачи: стековый сегмент совпадает с кодовым, а указатель вершины стека SP указывает на саму программу. Тогда отработка отладчиком хотя бы одного прерывания (трассировочного) обязательно сотрет участок размером не менее 3-х слов. Тем более, что популярные отладчики (TD, CodView и другие) применяют только пользовательский стек, затирая в нашем случае коды на большую глубину. Кроме того, старые версии TD имеют принципиальную ошибку - при начальной загрузке совершенно произвольно уменьшают стартовое значение указателя стека на 2. Более умеренно работают со стеком отладчики AFD и PERISCOPE. И наиболее выгодно себя проявляет обычный DEBUG, поставляемый вместе с DOS.
Переназначение стека в свободную область памяти как средство борьбы с назначением его в тело программы не каждому "по плечу", тем более если через него передаются массивы данных из модуля в модуль, да и он сам активно участвует в работе (как, например, в пакете CONVOY фирмы "Элиас", осуществляющем через стек разархивацию защищенного файла). В этом случае корректный проход программы возможен только без трассировки (то есть пошаговый режим исключен).
Не менее важная и такая же сложная проблема, стоящая перед хакером, - отслеживание прерываний, перехватываемых исследуемой программой. Суть в следующем. Все стандартные отладчики для нормальной работы "забирают" первое и третье из них. Первое (трассировочное) используется для пошагового режима. Третье необходимо для точек останова программы по заданным адресам. Защитный механизм обязательно должен их перехватывать, чтобы предотвратить анализ под отладчиком. Хакер, если он разобрался с замыслом автора, может либо обойти данный участок (с не малой долей риска, если прерывание выполняет некоторую "полезную" функцию), либо изменить подпрограмму обработки прерывания таким образом, чтобы после ее отработки управление передавалось отладчику (но неумелое ее исправление тоже чревато...).
Вот далеко не полный перечень того, с чем сталкивается "взломщик" в своем нелегком труде, только при добывании текста.
- Министерство образования и науки российской федерации
- Лекция 1
- Предмет и задачи программно-аппаратной защиты информации.
- Лекция 2
- Информационная безопасность
- В компьютерных системах
- Компьютерная система как объект защиты информации
- Понятие угрозы информационной безопасности в кс
- Классификация и общий анализ угроз информационной безопасности в кс
- Лекция 3 Случайные угрозы информационной безопасности
- Лекция 4 понятие политики безопасности в компьютерных системах
- 1. Разработка политики информационной безопасности
- 2. Методология политики безопасности компьютерных систем
- 3. Основные положения политики информационной безопасности
- 4. Жизненный цикл политики безопасности
- 5. Принципы политики безопасности
- Лекция 5 Идентификации субъекта. Понятие протокола идентификации. Идентифицирующая информация. Пароли. Программно-аппаратные средства идентификации и аутентификации пользователей
- Идентификация и аутентификация. Основные понятия и классификация
- Лекция 6 Простая аутентификация
- 1. Аутентификация на основе многоразовых паролей
- 2. Аутентификация на основе одноразовых паролей
- 3. Аутентификация, на основе сертификатов
- Лекция 7
- 2. Строгая аутентификация
- 2.1. Протоколы аутентификации с симметричными алгоритмами шифрования
- 2.2. Протоколы, основанные на использовании однонаправленных ключевых хэш-функций
- Лекция 8 Аутентификация с использованием асимметричных алгоритмов шифрования
- Электронная цифровая подпись (эцп). Аутентификация, основанная на использовании цифровой подписи
- Протоколы аутентификации с нулевой передачей значений
- Упрощенная схема аутентификации с нулевой передачей знаний
- Лекция 9 системы идентификации и аутентификации
- Классификация систем идентификации и аутентификации
- Комбинированные системы
- Лекция 10 Бесконтактные смарт-карты и usb-ключи
- Гибридные смарт-карты
- Биоэлектронные системы
- 1. Ключи. Организация хранения ключей
- Утверждение о подмене эталона
- Защита баз данных аутентификации операционных систем класса Windows nt.
- Алгоритм вычисления хэша lanman
- Хэш ntlm
- 2. Распределение ключей
- Лекция 12 Использование комбинированной криптосистемы
- Метод распределения ключей Диффи-Хеллмана
- Протокол вычисления ключа парной связи ескер
- Лекция 13 Основные подходы к защите данных от нсд. Защита пэвм от несанкционированного доступа
- 1) Физическая защита пэвм и носителей информации;
- 1. Полностью контролируемые компьютерные системы.
- Программная реализация функций кс.
- Аппаратная реализация функций кс.
- 2. Частично контролируемые компьютерные системы.
- Основные элементы и средства защиты от несанкционированного доступа. "Снег-2.0"
- Лекция 15 Устройства криптографической защиты данных серии криптон.
- Устройства для работы со смарт-картами.
- Лекция 16 Программные эмуляторы функций шифрования устройств криптон
- Системы защиты информации от несанкционированного доступа Система криптографической защиты информации от нсд криптон –вето
- Лекция 17 Комплекс криптон -замок для ограничения доступа компьютеру.
- Система защиты конфиденциальной информации Secret Disk.
- Система защиты данных Crypton Sigma.
- Лекция 18 Модель компьютерной системы. Методы и средства ограничения доступа к компонентам эвм. Понятие изолированной программной среды.
- 1. Понятие доступа и монитора безопасности
- 2. Обеспечение гарантий выполнения политики безопасности
- 3. Методология проектирования гарантированно защищенных кс
- Лекция 19 Метод генерации изолированной программной среды
- Лекция 20
- Модели управления доступом
- Системы разграничения доступа
- Диспетчер доступа
- Списки управления доступом к объекту
- Списки полномочий субъектов
- Атрибутные схемы
- Лекция 21
- 1. Подходы к защите информационных систем Устойчивость к прямому копированию
- Устойчивость к взлому
- Аппаратные ключи
- 2. Структура системы защиты от несанкционированного копирования
- Блок установки характеристик среды
- 3. Защита дискет от копирования
- Лекция 22 Электронные ключи hasp
- Лекция 23
- 1. Разрешения для файлов и папок
- 2. Шифрующая файловая система (efs)
- 2.1. Технология шифрования
- 2.2. Восстановление данных
- Лекция 24
- 1. Драйвер еfs
- 2. Библиотека времени выполнения efs (fsrtl)
- 4. Win32 api
- 11.4. Взаимодействие файловой системы защиты ntfs и защиты ресурса общего доступа (Sharing)
- 11.5. Типовые задачи администрирования
- Оснастка Локальные пользователи и группы (Local Users and Groups)
- 11.6. Администрирование дисков в Windows 2000
- Лекция 25
- 2. Обзор современных средств защиты
- Лекция 26 Защита файлов от изменения. Защита программ от изучения. Защита от дизассемблирования. Защита от отладки. Защита от трассировки по прерываниям. Защита от исследований.
- Обычные проблемы хакера
- Защита от исследований на уровне текстов
- Защита от исследований в режиме отладки.
- Защита программ от трассировки
- Лекция 27
- 1. Базовые методы нейтрализации систем защиты от несанкционированного использования
- 2. Понятие и средства обратного проектирования
- Лекция 28 Локализация кода модуля защиты посредством отлова WinApi функций в режиме отладки
- Базовые методы противодействия отладчикам
- Лекция 29 Базовые методы противодействия дизассемблированию по
- Защита от отладки, основанная на особенностях конвейеризации процессора
- Лекция 30 Использование недокументированных инструкций и недокументированных возможностей процессора
- Шифрование кода программы как универсальный метод противодействия отладке и дизассемблированию
- Основные модели работы рпв
- Компьютерные вирусы.
- Классификация вирусов
- Лекция 32 Механизмы заражения компьютерными вирусами
- Признаки появления вирусов
- Методы и средства защиты от компьютерных вирусов
- Лекция 33
- Ibm antivirus/dos
- Viruscan/clean-up
- Panda Antivirus
- Профилактика заражения вирусами компьютерных систем
- Антивирус. Алгоритм работы
- Проверочные механизмы
- Постоянная проверка и проверка по требованию
- Лекция 34 Структура антивирусной защиты предприятия
- Функциональные требования
- Общие требования
- Пример вируса
- Список литературы Основная литература
- Дополнительная литература
- Периодические издания
- Методические указания к лабораторным занятиям
- Методические указания к практическим занятиям
- Методические указания к курсовому проектированию и другим видам самостоятельной работы