Защита ПО от копирования и исследования




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

1. Незаконное использование алгоритмов, являющихся интеллектуальной собственностью автора, при написании аналогов продукта.

2. Несанкционированная модификация ПО с целью внедрения программных злоупотреблений.

3. Незаконное распространение и сбыт ПО.

4. Незаконное использование ПО.

Злоумышленники пользуются следующими инструментами для исследования кода:

1. Мониторы — активные (находящиеся в памяти постоянно) инструменты, записывающие все обращения к файлам или реестру, которые просил запомнить пользователь. Часто применяются для определения местоположения счётчика, сохраняющего дату установки или количество запусков программы.

2. Дизассемблеры — пассивные инструменты, позволяющие восстановить текст программы на ассемблере. [idopro?]

3. Отладчики (дебаггеры) — активные инструменты, позволяющие проследить процесс выполнения по шагам, которые получают в любой момент времени всю информацию о текущем состоянии программы (дизассмблированные инструкции состояния памяти, регистров и т. д.) и могут вносить изменения в порядок выполнения программы. [softize? Windebug, olledebug]

Существующие системы защиты ПО можно классифицировать по ряду признаков, среди которых выделяют метод установки, используемые механизмы защиты и принцип функционирования.

1. Системы защиты ПО по методу установки:

1. Системы, устанавливаемые на скомпилированные модули ПО. Примеры таких систем являются протекторы, представляющие собой программные инструменты, предназначенные для защиты других программ. Протекторы обрабатывают исполняемый файл программного продукта и создают новый исполняемый файл, в котором реализованы некоторые средства защиты. Код протектора добавляется таким образом, чтобы он выполнялся до основной программы, не нарушая её функциональности. Код, данные и ресурсы программы защищаются при помощи шифрования. В том числе могут быть доступны функции динамической разблокировки фрагментов кода. При запуске защищённой программы код протектора выполняет предусмотренные проверки, расшифровывают в памяти все необходимые области и в случае успешного завершения настройки протектор начинает выполнение основной программы.

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

1. Система защиты разрабатывается как коммерческий проект.

2. Существующие средства защиты не способны обчеспечить необходимой функциональности.

3. Существующие средства защиты не подходят по соображениям безопасности.

2. По используемым механизмам защиты:

1. Системы, использующие сложные логические механизмы. Данные системы применяют различные методы и приёмы, ориентированные на затруднение дизассемблирования, отладки и анализа алгоритмов средства защиты и защищаемого ПО. Для защиты ПО используются следующие методы:

1. Запутывание кода программы (обфускация) — хаотические переходы в разные части кода, внедрение ложных процедур и циклов, искажение количества реальных параметров процедур и т. д. Обфускация может быть на уровне алгоритма, на уровне исходного теста или на уровне ассемблерного текста (для последнего нужны специальные компиляторы).

2. Вычисление сложных математических выражений в процессе отработки механизма защиты (элементы логики защиты зависят от результата вычисления какой-либо формулы или группы формул).

3. Эмуляция процессоров и операционных систем

4. И т. д.

2. Системы, использующие шифрование защищаемого ПО. Гарантированно воспрепятствовать анализу кода может только шифрование программы. Однако, при этом возникает вопрос хранения ключа шифрования (внутри программы или вне её).

3. По принципу функционирования:

1. Системы защиты от несанкционированного копирования. Данные системы осуществляют привязку программного обеспечения к дистрибутивному носителю. При этом, на физическом уровне создаётся дистрибутивный носитель, обладающий, предположительно, неповторимыми свойствами. На программном уровне создаётся модуль, настроеный на идентификацию и аутентификацию носителя, по его уникальным свойствам.

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

1. Парольные системы — данные системы используют чаще всего «серийный номер» и/или имя пользователя.

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

3. Программно-аппаратные средства защиты ПО с электронными ключами. Аппаратные ключи состоят из ключа, подключаемого к USB-порту и ПО. Электронные ключи позволяют предотвратить несанкционированное копирование и использование программ. Они делятся на ключи с памятью и ключи с микропроцессором. В ключ с памятью, перед продажей защищаемого ПО, записываются некоторые данные или части программного кода, а на этапе проверки эти данные считываются из ключа. Ключи с микропроцессором делятся на ключи с программируемым алгоритмом (можно изменить алгоритм работы ключа) и ключи с известным алгоритмом (алгоритмы жёстко задаются на этапе производства микросхем). Если система защиты обнаруживает попытку взлома, работоспособность прикладной программы намеренно нарушается.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: