Свежий номер №19 (444) / Don't worry, be copy
 
Дата публикации: 20.05.2002

Александр Новичков, alex-golder@mtu.ru

…Использование программ для ЭВМ или базы данных третьими лицами (пользователями) осуществляется на основании договора с правообладателем…

В эпиграф к статье вынесена выдержка из Закона об авторском праве и смежных правах от 9 июля 1993 года. В законе есть достаточное количество статей, стоящих на страже авторства на ПО или базы данных, вот только нарушаются они сплошь и рядом как в России, так и за ее пределами: процветает нелегальное копирование продукции, взлом программного обеспечения и откровенное воровство баз данных. Давайте попробуем сформулировать ряд критериев, отвечающих некоей универсальной системе защиты. Итак, защита должна:

  • обладать большим запасом прочности, то есть учитывать высокий уровень пиратов вообще, и российских в частности;

  • не использовать дорогостоящие аппаратные приспособления, повышающие стоимость конечного продукта;

  • не привязываться к аппаратной конфигурации компьютера, поскольку персональный компьютер не есть вещь в себе, и его отдельные компоненты могут и должны быть заменяемыми по мере старения;

  • основываться на оригинальных принципах защиты от взлома;

  • допускать свободное копирование любых защищенных данных (запрещен только несанкционированный запуск;

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

Взлом и защита: противоборство брони и снаряда в электронном мире…

Во времена MS-DOS была наработана множество способов, позволяющих более или менее надежно определить легальность запуска того или иного приложения. Существует масса уловок, позволяющих обманывать отладчики и дизассемблеры, сводя на нет логику защищаемого приложения. С появлением на сцене Windows в силу специфики системы жизнь хакеров упростилась, а защитников - усложнилась. Появились умные отладчики (один SoftIce чего стоит!), интеллектуальные дизассемблеры и прочее, и прочее… Становится труднее находить новые приемы привязки защиты к различным физическим меткам и электронным ключам. Обе воюющие стороны давно изучили всевозможные приемы, помогающие ставить некопируемые метки и противодействовать отладчикам.

Давайте попробуем понять, как собственно работают средства защит ПО. Защита состоит из двух подсистем:

  • способ постановки метки на носителе, которую невозможно или весьма затруднительно перенести (скопировать) или воспроизвести программными методами (эмулировать);

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

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

Если защите удалось найти способ получения некопируемых дисков (StarForce, CD-Cops, TAGES), далее следует обезопасить себя от очередной напасти - от эмуляторов устройств. Многие пираты прибегают к тактике эмуляции характеристик диска, создавая виртуальные драйверы устройств, позволяющих обманывать систему защиты. К сожалению, практически все средства защиты от копирования, рассматриваемые в данной статье, уже взломаны.

Способов получения уникальных идентификаторов диска не так уж и много. Среди них нанесение лазерных меток на определенную часть диска и получение уникальных характеристик, присущих носителю. Пока что это удалось только StarForce, CD-Cops и TAGES, что разительно отличает их от конкурентов. Само по себе нанесение меток не требует слишком уж сложного оборудования, что немаловажно, ведь любое удорожание производственного цикла бьет по карманам покупателей. Следовательно, чем выше стоимость продукта, тем пристальней нацелены на него пиратские взоры.

Существует ряд защит, использующих передовые способы идентификации носителей и противодействия копированию. Эти способы абсолютно необходимы, но им требуется хорошо защищенная от взлома программная часть, отвечающая за идентификацию носителя. Справедливости ради надо сказать, что если есть хорошая программная защита, но нет аппаратно некопируемой метки, то и это не есть правильно. Правда, здесь кроется одно «НО»: компания, разработавшая хотя бы один действительно надежный способ противодействия, со временем может его и усовершенствовать. В данном случае более важной представляется технология получения некопируемых меток или иных методов дальнейшей идентификации носителя.

Еще один атрибут защиты - это резидентная программная часть, способная на 100% идентифицировать метку или характеристику носителя, с которого она была запущена.

Если рассмотреть способ защиты модуля от взлома, то вырисовывается такая картина: третья компания разрабатывает программный продукт, скажем, один ехе-файл и передает его создателям защиты. Последние встраивают специальный код идентификации в данный ехе-модуль и ставят некопируемую метку. Цель хакера на этом этапе: либо полностью удалить защитный модуль, либо найти в коде защиты участок, отвечающий за идентификацию, и изменить его (поменять условие проверки). Цель защиты - противодействовать всем существующим методам взлома, причем продвинутая защита должна защищать не только себя, но и модули того файла, к которому ее присоединили. Последнее возможно в том случае если защита имеет открытый расширенный SDK (Software Development Kit).

Для вскрытия программной защиты хакер может выбрать следующее:

  • Получить код программы любым известным дизассемблером.

  • Проанализировать ход исполнения программы специальным отладчиком.

  • Получить «слепок» программы в памяти, которая исполнилась после проверки защитой диска (дампер).

  • Поставить набор контрольных точек в заданных местах, чтобы анализировать не весь код, а только его части, с указанных адресов.

Практически все защиты уже взломаны, невзирая на ухищрения, предпринимаемые компаниями-защитниками. Тут действуют несколько золотых правил: во-первых, то, что сделал один человек, другой может завсегда сломать, а во-вторых, тираж и популярность продукта стимулируют хакеров на очень активные действия. Если защита вскрывается в течение 4-5 месяцев, то компания может продать достаточное количество копий своего продукта, чтобы покрыть все расходы и получить прибыль. А если новая версия продукта выходит через 7-8 месяцев, то коммерческий успех можно повторять до бесконечности.

Особенно обидно за продукты CD-Cops и TAGES, которые стойко противостоят первой волне взлома (копированию), и совсем не держат натиски отладчиков, дамперов и дизассемблеров. В наиболее выгодном свете здесь представлена только защита StarForce, которая использует ряд интересных решений, делающих ее взлом практически невозможным, или о-о-очень трудноосуществимым. По данным официальных источников, разработчики StarForce применили способ динамического шифрования кода, даже не столько шифрования - для этих целей разработана специальная виртуальная машина со своим языком программирования. Этот подход позволяет не просто шифровать блоки кода, а транслировать на другой язык программирования, образуя тем самым виртуальную машину.

Есть еще один способ усиления защиты: предоставление разработчикам ПО так называемых SDK, при помощи которых разработчики могут эффективно использовать элементы защиты на этапе разработки ПО. Это один из самых действенных методов защиты, обеспечивающий не просто проверку информации отдельным модулем, а неявное «размазывание» самой системы на весь программный продукт (т.е. нарушение целостности и правильности исполнения программного продукта при помощи определенных механизмов). (Еще во времена DOS существовал «крякнутый» пакет программы анимации 3-D Studio 4.0, который никак не хотел работать правильно именно из-за подобной «защиты»). Достичь эффекта «размазывания» можно как своими силами, так и силами компании, реализующей защиту. Последнее предпочтительней, поскольку позволяет осуществить комплексный подход в защите.

На мой взгляд, внимания заслуживают лишь те системы, которые не вскрыты вообще (StarForce) или вскрыты лишь частично (во втором случае у компании есть шанс усовершенствовать защиту (CD-Cops)). Достойна похвалы и программа TAGES, которая эффективно борется с копированием, но пока имеет слабую защиту самого кода приложения. За кем же останется последнее слово? За информационным «снарядом» или информационной «броней»?

В работе над данной статьей автор опирался на личный опыт в написании защит, официальные сайты компаний-производителей защит (см. во врезке) и сайт www.cdmediaworld.com, где рассмотрены все существующие защиты, и не просто рассмотрены, а разобраны!


Название
защиты

Производитель

Способ
защиты

Необходимость
в
специальной
аппаратуре
 для защиты

Защита
небольших
партий
на CD-
R\RW

Способы
взлома

Коммерческие
продукты,
использующие
данный вид
защиты

Особенности
защиты

Cd-Cops

Link Data Security

Анализ физических характеристик CD. Без установки меток

НЕТ

НЕТ

Существует несколько «кряков» 1

Interactive English / De Agostini, Agostini
Atlas 99,
Agostini Basetera, BMM,
DK KortLad emanns'99

Система анализирует физический угол между прошлым и текущими логическими блоками на компакт-диске. Слабое место — сам код, анализирующий углы. Фирме пока не удалось найти эффективного способа противодействия дизассемблерам и отладчикам.

StarForce

Protection
Technology
(Россия)

НЕТ

ДА

Защита пока не вскрыта 2

«1С» (игры), «Нивал»,
Softmax,
Q-puncture, Scholastic, Hypnosys World, «Руссобит-М» (игры)

Поскольку защита не вскрыта, то неизвестен и способ, которым удается идентифицировать различные диски. Заявленная 100% совместимость с любой аппаратурой и 100% идентификация дисков подтверждается независимыми тестами.

TAGES

Thomson & MPO

НЕТ

НЕТ

Эмуляция, «кряк»

Moto Racer 3

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

LaserLock

MLS LaserLock International

Нанесение некопируемых меток

ДА

НЕТ

Эмуляция 3, побитовое копирование 4, «кряк»

Asghard,
Fallout 2,
Icewind Dale, Jagged Alliance 2, Messiah,
Metro Police, Outcast,
Shogo,
SpecOps

Использует уникальную маркировку. Каждое приложение на CD имеет уникальную блокировку параметра, который отвечает за конечную защиту от копирования. Продукт уже вскрыт всеми возможными методами

SafeDisk

Macrovision Corporation

ДА

НЕТ

Эмуляция, побитовое копирование, «кряк»

Практически
 все игры
после
01.01.2001

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

SecuRom

Sony www.securom.com

ДА

НЕТ

Эмуляция, побитовое копирование, «кряк»

Diablo 2,
SimCity 3000, Decent FreeSpace, FIFA 99,
Panzer Commander, S.A.G.A: Rage of the Vikings

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

1 (обратно к тексту) - Под термином «кряк» здесь понимается внешняя программа, способная дезавуировать защиту. При этом способе в код защищенной пронграммы вносятся изменения.
2 (обратно к тексту) - Справедливости ради стоит отметить, что прецедент вскрытия есть, но стал он возможен только благодаря тому, что пираты получили доступ к незащищенному коду приложения, после чего был сделан «кряк».
3 (обратно к тексту) - Этот вид программ эмулирует лазерные метки. При таком подходе в код вскрываемой программы не вносится изменений.
4 (обратно к тексту) - Наиболее распространенный способ копирования, смысл которого состоит в использовании специальных побитовых копировщиков, наподобие CloneCD. Этот тип защиты может работать как сам по себе, так и вместе с «кряком».


Александр Новичков
alex-golder@mtu.ru
 


<< Политика безопасности LAN
Все материалы номера
Системы обнаружения вторжения aka IDS (Intrusion Detection Systems) >>