Реферат: Анализ рынка средств защиты программного обеспечения от несанкционированного копирования.

SafeDisk Macrovision Corporation Нанесение не копируемых меток ДА НЕТ Эмуляция, побитовое копирование, "кряк"

SecuRom Sony Нанесение не копируемых меток ДА НЕТ Эмуляция, побитовое копирование, "кряк"

TAGES Thomson & MPO Анализ физических характеристик CD. Без установки меток НЕТ НЕТ Эмуляция, "кряк"

*Под термином "кряк" здесь понимается внешняя программа, способная дезавуировать защиту. При данном способе в код защищенной программы вносятся изменения.

**Данный вид программ эмулирует лазерные метки. При данном подходе в код вскрываемой программы не вносится изменений

***Наиболее распространенный способ копирования, смысл которого состоит в использовании специальных побитовых копировщиков, наподобие CloneCD. Данный тип защиты может работать как сам по себе, так и вместе с "кряком".

****справедливости ради стоит отметить, что прецедент вскрытия есть, но стал он возможен только благодаря тому, что пираты получили доступ к незащищенному коду приложения, после чего был сделан кряк.

Краткий справочник по методам взлома и способам защиты от них

(1) Взлом копированием и эмулированием

Побитовое копирование

Суть атаки заключается в том, что пользователь (не всегда злоумышленник) пытается скопировать имеющийся у него диск с целью создания копии (для личного использования или для тиража).

Для осуществления подобной атаки могут использоваться различные программы, зачастую входящие в поставку устройств CD-R/RW. Это и официальный Easy CD Creator, и полуофициальные (полухакерские) CloneCD и BlindRead…

Защита должна уметь противодействовать данному виду взлома, так как с него обычно и начинается взлом, поскольку копировщиков способных скопировать диски с примитивной защитой великое множество.

Способы обороны: существуют два способа противодействия взлому. Первый заключается в том, что на диск записывается определенная метка, которая не копируется обычными средствами (например, создается нестабильный сегмент, который не читается носителем, а раз не читается, то и скопированным быть также не может). К сожалению, данный способ не всегда устойчив, поскольку уже есть программы "продвинутого" копирования (те же CloneCD и BlindRead), которые способны пропускать подобные места (замещать нестабильные области произвольными данными) и проводить копирование до конца. Второй способ основывается на том, что ничего никуда записывать не надо, а надо лишь определенным образом запоминать физические характеристики диска, которые просто невозможно воспроизвести любым копированием, точнее диск сам по себе копируется, но уже с другой физической структурой. Соответственно, пользователь может спокойно клонировать диски, но ключевым будет тот, который был официально куплен.

Эмулирование

Данный подход позволяет формировать виртуальные драйверы устройств и имитировать обращение к диску. Это уже чистой воды взлом, поскольку для нормальной работы вскрытого приложения в систему инсталлируется специальный драйвер, который имитирует обращение к не копируемой метке на диске и возвращает вскрытой программе именно те данные, которые она ожидает "увидеть". Подобный способ довольно часто применяется на первых порах, когда хакеру известен способ получения некопируемой метки на диске, но ему не очень хочется разбираться с программой методом дизассемблирования.

Противодействием может служить работа с устройствами записи\чтения на низком уровне, когда невозможно перехватить вызовы к оборудованию. Здесь нужно еще внести одно пояснение: для того, чтобы защищенному приложению обратиться к CD, и проверить его на наличие не копируемой метки, необходимо воспользоваться одной из функций чтения\записи, которые предоставляет сама Windows. Хакерами уже наработан ряд механизмов, позволяющих перехватывать стандартные обращения к функциям Windows, а раз можно перехватить сообщение, значит целиком можно имитировать чтение, целиком заменяя стандартные вызовы на собственные. Как говорилось выше, противодействием данному способу взлома может быть только обращение к накопителю не через стандартные вызовы.

(2) Взлом программного модуля

Это следующий уровень взлома. В том случае если не удалось скопировать приложение, а способ его защиты также неизвестен, то хакер переходит на следующий уровень взлома - на исследование логики самой программы, с той целью, чтобы, проанализировав весь код приложения, выделить блок защиты и деактивировать его.

Взлом программ осуществляется двумя основными способами. Это отладка и дизассемблирование.

Отладка - это специальный режим, создаваемый специальным приложением - отладчиком, который позволяет по шагам исполнять любое приложение, передавая ему всю среду и делая все так, как будто приложение работает только с системой, а сам отладчик невидим. Механизмами отладки пользуются все, а не только хакеры, поскольку это единственный способ для разработчика узнать, почему его детище работает неправильно. Естественно, что любую благую идею можно использовать и во зло. Чем и пользуются хакеры, анализируя код приложения в поиске модуля защиты.

Это так называемый, пошаговый режим исполнения, или, иными словами интерактивный. А есть еще и второй - дизассемблирование - это способ преобразования исполняемых модулей в язык программирования, понятный человеку - Ассемблер. В этом случае хакер получает распечатку того, что делает приложение. Правда распечатка может быть очень и очень длинной, но никто и не говорил, что защиты снимать легко.

Хакеры активно пользуются обоими механизмами взлома, поскольку иногда приложение проще пройти по шагам, а иногда проще получить листинг и проанализировать его.

Давайте теперь рассмотрим основные методы взлома и противодействия ему

Отладчики

Отладчиков существует великое множество: от отладчиков, являющихся частью среды разработки, до сторонних эмулирующих отладчиков, которые полностью "погружают" отлаживаемое приложение в аналитическую среду, давая разработчику (или хакеру) полную статистику о том что и как делает приложение. С другой же стороны, подобный отладчик настолько четко имитирует среду, что приложение, исполняясь под ним, считает, что работает с системой напрямую (типичный пример подобного отладчика - SoftIce).

Противодействие

Способов противодействия существует великое множество. Это именно способы противодействия поскольку основная их задача сделать работу отладчика либо совсем невозможной, либо максимально трудоемкой. Опишем основные способы противодействия:

Замусоривание кода программы. Способ, при котором в программу вносятся специальные функции и вызовы, которые выполняют сложные действия, обращаются к накопителям, но по факту ничего не делают. Типичный способ обмана. Хакера нужно отвлечь, создав ответвление, которое и будет привлекать внимание сложными вызовами и содержать в себе сложные и большие вычисления. Хакер рано или поздно поймет, что его обманывают, но время будет потеряно.

К-во Просмотров: 195
Бесплатно скачать Реферат: Анализ рынка средств защиты программного обеспечения от несанкционированного копирования.