Автор работы: Пользователь скрыл имя, 20 Февраля 2011 в 14:59, курс лекций
Программные и аппаратные механизмы защиты
HASP Envelopment
«+» 1. простота использования и простота внедрения
2. возможность защиты
исполнительного кода от
«-» 1. используется детерминированный алгоритм, который могут попытаться вскрыть
2. жесткая реакция
защиты программы на
Блок сравнения характеристик среды
Злоумышленник,
атакуя этот блок, либо пытается найти
эталонные характеристики среды, которые
ожидает увидеть блок защиты, либо
пытается модифицировать алгоритм сравнения
характеристик среды таким
Для того, чтобы затруднить злоумышленнику атаку на этот блок, данный блок должен отвечать ряду требований:
Блок установки характеристик среды.
Наиболее
уязвимым местом данного блока является
способ сбора характеристик среды и способ
передачи их от ПА среды блока установки
и от блока установки к блоку сравнения.
Если характеристики среды по открытому
каналу, хранятся в открытых объектах,
то такой способ защиты не является стабильным.
Лекция № 7
Электронные ключи. Защита программ с помощью электронных ключей HASP
Минусом таких характеристик среды как серийный номер, конфигурация аппаратуры, ключевой файл, информация в секретном секторе диска, является то, что злоумышленник достаточно легко может их раскрыть и осуществить взлом посредством их имитации.
Для устранения подобных недостатков характеристики среды необходимо выносить во внешние максимально защищенные от НСД устройства, которые затрудняют свою эмуляцию и дублирование.
Данную
возможность предоставляют
Ключи являются разработкой израильской фирмы Aladdin и используются для ЗПО от НС использования: предотвращают запуск программ при отсутствии электронных ключей, ограничивают максимальное количество копии, одновременный запуск программ в сети, ограничивают время работы программы и ограничивают максимальное количество её запусков.
Типы электронных ключей HASP.
HASP Standard
Самая
простая модификация
Основные элементы защиты:
С каждым из электронных ключей связана некая серия, которая присваивает конкретную разработку программного продукта и вполне возможно по желанию производителя каждого из выпускаемого им программного продукта. Внутри одной серии электронные ключи имеют одну функцию шифрования и одну функцию отклика. Для доступу к функциям электронного ключа, требуется знание кода доступа (2 по 16 бит). Внутри одной серии коды доступа одинаковы. Пользователь ПО не должен знать эти коды, они известны только производителю.
HASP Memo
Данные ключи включают в себя все функции HASP Standart. Кроме того, имеют уникальный идентификационный номер и энергонезависимую память определенного объёма.
2
типа по объёму
Кроме тех функций, которые можно реализовать с помощью HASP4 Standart, эти ключи могут:
HASP Time
С помощью данного ключа возможно ограничить срок работы программы и, как правило, используется для создания демо-версий программ, имеющих высокую стоимость, либо при лизинге ПО.
Включает в себя встроенный календарь с датой и временем. Используется для защиты ПО по срокам использования.
HASP Net
Используется для ограничения максимального количества одновременно запущенных копий программ в сети.
Способы защиты программного обеспечения с помощью электронных ключей HASP
Можно
реализовывать с помощью
Встроенные – HASP API.
Пристыковочные HASP Envelopment.
Электронные ключи HASP Memo, Time и Net включают в себя подсистему полного управления доступом (FAS), позволяющую защитить одновременно несколько программ одного производителя, и ограничить их в зависимости от типа ключей по количеству запусков, по сроку действия, по количеству одновременно запущенных копий.
Электронные ключи HASP Memo, Time и Net обладают возможностью их удаленного перепрограммирования с помощью подсистемы RUS.
Для реализации удаленного управления формируется 2 утилиты: продавца и покупателя. Они формируются под конкретный электронный ключ, привязывающийся к его идентификационному номеру.
Pattern Code Security (Механизм защиты структурного кода)
Механизм PCS основан на внедрении в исходные тексты программ шаблонов, в которых определены некие функции доступа к электронному ключу. Данные функции, определенные в шаблонах, будут вызываться скрытым образом из исполняемого кода программы. Для них не будет явным образом вызываться процедура HASP. Когда разработчиком защиты для решения своих задач делается явный вызов HASP, программа автоматически выполняет последовательность скрытых вызовов функций, определенных в шаблонах PCS. Всего таких шаблонов можно определить до 25 штук. Внедрив через данные шаблоны вызовы скрытых процедур, разработчик защиты может значительно усложнить трассировку защитных механизмов, затруднить вмешательство извне в их работу.
Злоумышленник,
отключая явный вызов HASP, в действительности
отключает множество скрытых вызовов,
результат исполнения которых отражается
на функционировании программы, например,
вызовы могли выполнять дешифровку кода,
получать отклики от электронного ключа,
которые будут проводится в ходе дальнейшей
работы программы.
Лекция № 8
Защита программного обеспечения от исследования
Исследование исполняемого кода программы позволяет злоумышленнику разобраться с логикой работы защитных механизмов, что дает возможность отключить их либо обойти. При работе с аппаратными средствами защиты в исполняемом коде программы достаточно часто хранится конфиденциальная информация, например, коды доступа к электронному ключу, который не должен знать злоумышленник. Иначе говоря, возможность исследования кода является необходимым условием взлома программных продуктов. В связи с этим исполняемый код необходимо защищать от исследования. Для защиты ПО от исследования необходимо обеспечить защиту от статического и динамического анализа.
В первом случае злоумышленник пытается получить листинг программы на каком-либо языке для возможности дальнейшего изучения и исследования логики защитных механизмов с использованием таких средств как Ida Pro, Soucer.
Большая часть средств защиты от отладки основывается на обнаружении отладчиков в оперативной памяти с целью дальнейшего противодействия отладке, либо на включенных в исполняемый код механизмов, которые не могут быть корректно выполнены под отладкой в режиме трассировки. Работа отладчиков в реальном режиме процессора основана на прерываниях int1, int3, которые устанавливают точки прерывания, в защищенном режиме работа отладчиков основана на использовании регистра отладки dr0 – dr7.
Приемы защиты:
Один из приемов основан на том, что по команде pop ss следующая команда не может быть выполнена в режиме трассировки и она выполняется на реальном процессоре. В эту команду можно заложить защитный механизм.
push ss
pop ss
push f
pop ax
test ax, 100h
je debugger detected
1. mov ax, cs:[100]=ds:es:cs:mov ax, [100]
2. cs:nop
Противодействие средствам статического анализа: