Фам Ван Маньx - Томский политехнический университет

advertisement
ИССЛЕДОВАНИЕ СУЩЕСТВУЮЩИХ СРЕДСТВ ЗАЩИТЫ
ПРИЛОЖЕНИЙ ОТ НЕСАНКЦИОНИРОВАННОГО
РАСПРОСТРАНЕНИЯ
Фам Ван Мань
Национальный исследовательский томский политехнический университет, г. Томск
Научный руководитель – Лунева Елена Евгеньевна
1. Проблема защиты программного обеспечения от несанкционированного
распространения
Программное обеспечение – Это все или часть программ, процедур, правил и
соответствующей документации системы обработки информации.
Защита от несанкционированного распространения программ – Это система мер,
связанных с необходимостью его распространения и установки на компьютеры
пользователей. Однако от копирования может защищаться лицензия на приложение
или его отдельные алгоритмы.
Защита программного обеспечения от несанкционированного распространения
является одной из важнейших проблем для его производителя. Правообладатель
программного обеспечения всегда стремится сохранить свой контроль за его
распространения. Производитель программного обеспечения не заинтересован в
бесплатном тиражировании программы, стараясь свои затраты. Программное
обеспечение разрабатывается за счет собственных средств.
На рынке программного обеспечения существует ситуация, что стремления
правообладателя на программное обеспечение прямо противоположна стремлениям
большинства конечных пользователей, которые не заинтересованы много платить за
приобретаемое программное обеспечение.
Наиболее
типичными
ситуациями,
возникающими
при
получении
злоумышленником нелегальных копий, являются следующие:
- Изготовление нелегальных копий официальным распространителем.
- Изготовление и коммерческое распространение нелегальных копий без
разрешения правообладателя.
Несанкционированное
коммерческое
распространение
программ
правообладателями.
Получение нелегальной копии программы у законного пользователя (или у
злоумышленника) и ее установка на собственный компьютер.
- Превышение числа разрешенных инсталляций законно приобретенной
программы правообладателями, то эта программа устанавливается на больше число
компьютеров, чем разрешено правообладателем.
2. Способы защиты приложений
На практике известны различные используемые способы защиты программного
обеспечения от несанкционированного копирования и распространения.
- Защита с использованием парольной защиты (активационных кодов).
- Защита с помощью ключевых носителей. Например магнитные карты,
носители с дефектами, интеллектуальные электронные ключи на базе процессоров и
микросхемы.
- Защита основана на взаимодействии пользователя программного обеспечения с
поставщиком и обмене регистрационными данными.
3. Анализ существующих средств защиты приложений.
Теперь
рассмотрим
некоторые
средства
защиты
приложений
от
несанкционированного копирования, производится анализ преимущества и недостатки
популярных систем защиты на рынке.
3.1. Star Forсe
Система защиты Star Forсe была разработана компанией Protection Technology.
Основной задачей этой системы является предотвращение нелегального копирования
программного обеспечения.
Star Force предназначена для архитектур x86 и x64, она работает с exe-файлами,
динамически загружаемыми библиотеками и драйверами. На сегодняшний день Star
Force установлена в десятках тысяч различных предложений и были разработаны
разные решения защиты конфиденциальных данных, электронных материалов,
программ и их исходных кодов, аудио/видео файлов и т. д.
Ранее защита использована драйвер, который перехватывал отладочные
прерывания, что мешало их использованию аналитиком в своих целях. Сейчас от
такого метода защита отказалась, драйвер используется в основном для работы с
диском и привязки копии защищаемой программы к компьютеру. Основная защита
находится на виртуальной машине и файловой системе SFFS (Star Force File System).
При обращении защищенного приложения к этим файлам протектор перехватывает
обращения и направляет их в контейнер, расшифровывая нужные файлы. Такой
протектор используют в основном для защиты игр и программ, распространяемых на
CD/DVD с привязкой к носителю, но спектр может шире, включая онлайн
распространение продуктов и гибкой системой лицензирования.
3.2. VMProtect
VMProtect - система защиты программного обеспечения нового поколения.
Протектор VMProtect предназначен для работы с архитектурами х86 и х64, он
способен защищать exe-файлы, динамически загружаемые библиотеки и драйверы. Это
первая защита, которая работала по принципу виртуальной машины, в качестве
дополнительной защиты программам возможно поместить в "конверт", который на
этапе защиты шифрует и сжимает код и данные программы, а во время запуска
приложения расшифровывает обратно. Конверт отвечает за восстановление таблиц
импорта, которая перенаправляется на собственные переходники, и за обнаружение
факта отладки различными способами. Виртуальные машины имеют возможность
защитить код при помощью полиморфа, который преобразует исходные инструкции и
разбавляет их мусорными командами, но на данный момент качество полиморфа не
слишком отличное.
В сегодняшний день качество полиморфа улучшилось, появилась возможность
накрытия конвертом с достаточно сильной антиотладкой, а также разрабатываются
возможности лицензирования, так как в данный момент лицензирования отсутствует в
приципе.
VMProtect поддерживает следующие компиляторы: Delphi, Borland C Builder,
Visual C/C++, Visual Basic, Virtual Pascal.
3.3. EXECryptor
EXECrytor – система защиты программ от инженерного анализа, анализа,
изменений и взламывания.
Протектор EXECryptor работает только для архитектуры х86 и способен
обрабатывать ехе-файлы и динамически загружаемые библиотеки. Такой протектор
стал одним из первых протекторов, в котором применялся полиморф неплохого
качества для защиты кода. Полимопф имеет возможность использовать "конверт" со
сжатием и шифрованием кода и данных программ, перенаправлением таблиц импорта.
В своем состоянии EXECryptor предохранит программы, записанные в
различных языках, как Delphi, C++, LCC, Visual Basic, PellelsC, IBASIC.
3.4. ASProtect
ASProtect
–
система
программной
защиты
приложений
от
несанкционированного копирования.
Система ASProtect предназначена для архитектуры х86 и работает с EXEфайлами, так и с динамически загружаемыми библиотеками. Эта система стала одним
из первых протекторов, который выносить части программы, в частности, код с
оригинальной точки выхода, разбавляя их мусорными командами, в динамически
выделяемую память. Протектор обладает стандартными возможностями защиты, как
сжатие и шифрование кода и данных защищаемого приложения и перенаправление
таблицы импорта. Кроме этого поддерживаются схемы лицензирования с ключами
разной длины. Система лицензирования достаточно стандартная с поддержкой
привязки копии защищаемой программы к компьютеру, ограничения времени работы
приложения, поддержкой чёрного списка ключей и расшифровкой помеченных
маркерами участков кода только при наличии верного ключа.
4. Заключение
На самом деле идеальной защиты для всех типов программного обеспечения и
100% безопасной не существует. Практически все средства защиты будут рано или
поздно взломаны, по этому основной задачей для разработчиков является то, что не
пытаться создать неломаемую защиту, а сделать взлом экономически
нецелесообразным. А в сторону пользователя, лучше выбрать самое полезное и
подходящее средство защиты для своих приложений чтобы уменьшать до
минимального взлома.
СПИСОК ЛИТЕРАТУРЫ
1.
Протектор StarForce. – http://www.star-force.ru
2.
Протектор VMProtect. – http://www.vmprotect.ru
3.
VMProtect. – http://www.seculab.eu/ru/product/vmprotect
4.
Протектор EXECryptor. – http://www.strongbit.com
5.
Протектор ASProtect. – http://asprotect.com
6.
ASProtect. – http://aspack.com
7.
Защита приложений. – http://msdn.microsoft.com/ru-ru/library/
8.
Защита
программного
обеспечения.
http://ru.wikipedia.org/wiki/Защита_программного_обеспечения
–
Download