- •1. Предмет и задачи программно-аппаратной защиты информации. Компьютерная система (кс). Структура и компоненты кс. Классы и типы кс. Сети эвм.
- •2. Актуальность проблемы защиты информации. Основные понятия и термины.
- •3. Уязвимость компьютерных систем. Понятие доступа, субъект и объект доступа. Понятие несанкционированного доступа (нсд). Классы и виды нсд. Механизмы защиты информации от нсд.
- •4. Несанкционированное копирование программ как особый вид нсд. Понятие злоумышленника; злоумышленник в криптографии и при решении проблем компьютерной безопасности (кб).
- •5. Политики безопасности в компьютерных системах. Оценка защищенности
- •17. Преимущества и недостатки программных и аппаратных средств защиты. Проблемы использования расширений bios: эмуляция файловой системы до загрузки ос.
- •21.Структура данных на cd. Способы создания некопируемых меток. Точное измерение характеристик форматирования дорожки. Физические метки и технология работы с ними.
- •23. Пароли и ключи. Секретная информация, используемая для контроля доступа: ключи и пароли. Злоумышленник и ключи. Классификация средств хранения ключей и идентифицирующей информации.
- •24. Организация хранения ключей (с примерами реализации). Магнитные диски прямого доступа. Магнитные и интеллектуальные карты. Средство TouchMemory.
- •25. Типовые решения в организации ключевых систем. Открытое распределение ключей.
- •Цифровые сертификаты
- •Динамический метод
- •27. Задачи защиты от изучения и способы их решения. Защита от отладки. Динамическое преобразование кода. Принцип ловушек и избыточного кода.
- •28. Защита от дизассемблирования. Принцип внешней загрузки файлов. Динамическая модификация программы. Защита от трассировки по прерываниям.
- •29. Аспекты проблемы защиты от исследования. Способы ассоциирования защиты и программного обеспечения. Оценка надежности защиты от отладки.
- •30. Перечень и краткая характеристика сертифицированных программно-аппаратных сзи для пэвм.
- •31. Построение и принципы функционирования системы защиты от нсд «Secret Net ».
- •32. Задачи, решаемые администратором сзи от нсд «Secret Net».
- •33. Построение и принципы функционирования системы защиты от нсд «Аккорд ».
- •34. Построение и принципы функционирования системы защиты от нсд «Соболь».
- •35. Вирусы. Классификация компьютерных вирусов. Защита от разрушающих программных воздействий.
- •Общие принципы защиты от вирусов
- •36. Вирусы как особый класс разрушающих программных воздействий. Механизм заражения программ вирусами.
27. Задачи защиты от изучения и способы их решения. Защита от отладки. Динамическое преобразование кода. Принцип ловушек и избыточного кода.
Защищая свои программы от несанкционированного копирования, не следует забывать о таких средствах "взлома", как пошаговые отладчики.
При проектировании и реализации систем защиты информации (СЗИ) практически всегда возникает задача защиты ее алгоритма. Атака на алгоритм СЗИ может быть пассивной (изучение) - без изменения алгоритма СЗИ и активной - с изменением алгоритма в соответствии с целью злоумышленника.
Задача защиты от изучения (исследования) сводится к решению двух взаимосвязанных задач:
• выявлению отладчика;
• направлению работы защищенной программы или отладчика по "неверному пути".
Атаки злоумышленника на логику работы СЗИ сводятся к декомпозиции программного кода на множество отдельных команд (инструкций), каждая из которых рассматривается отдельно. Условно такие атаки можно разделить на динамические - разбор по командам, сопряженный с выполнением программы (выполнением каждой рассматриваемой команды), и статические - декомпозиция всего кода программы.
Стандартным методом, использующимся для обнаружения средств защиты от копирования, является дизассемблирование программы установки программного пакета или выполнение его под управлением пошагового отладчика. Листинг, получаемый в процессе дизассемблирования, оказывает большую услугу при использовании отладчика, поэтому эти два средства - дизассемблирование и использование отладчика - обычно используются вместе.
Для затруднения дизассемблирования лучше всего подходит шифрование отдельных участков программ или всей программы целиком.
Способ динамического преобразования заключается в следующем: первоначально в оперативную память загружается фрагмент кода, содержание части команд которого не соответствует тем командам, которые данный фрагмент в действительности выполняет; затем этот фрагмент по некоторому закону преобразуется, превращаясь в исполняемые команды, которые затем и выполняются.
Преобразование кода программы во время ее выполнения может преследовать три основные цели:
• противодействие файловому дизассемблированию программы;
• противодействие работе отладчику;
• противодействие считыванию кода программы в файл из оперативной памяти.
Перечислим основные способы организации преобразования кода программы.
1. Замещение фрагмента кода функцией от находящейся на данном месте команде и некоторых данных.
2. Определение стека в области кода и перемещение фрагментов кода с использованием стековых команд.
3. Преобразование кода в зависимости от содержания предыдущего фрагмента кода или некоторых условий, полученных при работе предыдущего фрагмента.
4. Преобразование кода в зависимости от внешней к программе информации.
5. Преобразование кода, совмещенное с действиями, характерными для работы отладочных средств.
Первый способ заключается в том, что по некоторому адресу в коде программы располагается, например, побайтовая разность между реальными командами программы и некоторой хаотической информацией, которая располагается в области данных. Непосредственно перед выполнением данного участка программы происходит суммирование хаотической информации с содержанием области кода и в ней образуются реальные команды.
Второй способ состоит в перемещении фрагментов кода программы в определенное место или наложении их на уже выполненные команды при помощи стековых операций.
Третий способ служит для защиты от модификации кода программы и определения точек останова в программе. Он состоит в том, что преобразование следующего фрагмента кода происходит на основе функции, существенно зависящей от каждого байта или слова предыдущего фрагмента или нескольких фрагментов кода программы. Такую функцию называют обычно контрольной суммой участка кода программы. Особенностью данного способа является то, что процесс преобразования должен существенно зависеть от посчитанной контрольной суммы (хеш-функции) и не должен содержать в явном виде операций сравнения.
Четвертый способ заключается в преобразовании кода программы на основе некоторой внешней информации, например считанной с ключевой дискеты некопируемой метки, машинно-зависимой информации или ключа пользователя. Это позволит исключить анализ программы, не имеющей ключевого носителя или размещенной на другом компьютере, где машинно-зависимая информация иная.
Пятый способ состоит в том, что вместо адресов отладочных прерываний помещается ссылка на процедуру преобразования кода программы. При этом либо блокируется работа отладчика, либо неверно преобразуется в исполняемые команды код программы.
Другой способ борьбы с дизассемблером является, по своей сути, борьбой с человеком, занимающимся дизассемблированием. Он заключается в увеличении размера загрузочного модуля программы и в усложнении структуры программы.
