Виды и способы защиты программного обеспечения

1.

Виды и способы защиты программного обеспечения

2.

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

3.

ЛОКАЛЬНАЯ ПРОГРАММНАЯ ЗАЩИТА
Требование ввода серийного номера (ключа) при
установке/запуске.
Использовался когда приложения
распространялись только на физических носителях
(на коробке был напечатан серийный номер,
подходящий только к данной копии программы). С
распространением сетей появилась проблема
распространения образов дисков и серийных
номеров по сети.
В настоящий момент используется только в
совокупности одним или более других методов.

4.

СЕТЕВАЯ ПРОГРАММНАЯ ЗАЩИТА
Локальная. Сканирование сети исключает одновременный запуск двух программ с одним регистрационным ключом на
двух компьютерах в пределах одной локальной сети.
Недостатки: что брандмауэр ((нем. Brandmauer — противопожарная стена), Межсетево́ й экра́н—программноаппаратный элемент компьютерной сети, осуществляющий контроль и фильтрацию проходящего через него сетевого
трафика в соответствии с заданными правилами)) можно настроить так, чтобы он не пропускал пакеты, принадлежащие
защищённой программе. Это требует некоторых пользовательских навыков. Приложения могут взаимодействовать по
сети (к примеру, при организации сетевой игры). В этом случае брандмауэр должен пропускать такой трафик.
Глобальная. Если программа работает с каким-то централизованным сервером и без него бесполезна (например,
сервера онлайн-игр, серверы обновлений антивирусов). Она может передавать серверу свой серийный номер; если
номер неправильный, сервер отказывает в услуге.
Недостатки: существует возможность создать сервер, который не делает такой проверки.

5.

PvPGN (Player vs Player Gaming Network)— открытый программный
проект, позволяющий эмулировать различные игровые серверы.

6.

ЗАЩИТА ПРИ ПОМОЩИ КОМПАКТ-ДИСКОВ
Программа может требовать оригинальный компакт-диск. Стойкость таких защит невелика, ввиду широкого набора
инструментов снятия образов компакт-дисков. Метод применяется для защиты программ, записанных на этом же компактдиске, являющимся одновременно ключевым. Для многих программ этот метод недоступен ввиду отличного способа
распространения (например, shareware-программы).
Для защиты от копирования используется: запись информации в неиспользуемых секторах, проверка расположения и
содержимого «сбойных» секторов, проверка скорости чтения отдельных секторов.
Первые два метода практически бесполезны из-за возможности снятия полного образа с диска с использованием
прикладного ПО. Третий метод считается более надёжным. Но существуют программы, которые могут эмулировать диски с
учётом геометрии расположения данных, обходя и эту защиту. В числе прочих проверок, может выполнятся проверка
возможности записи на вставленный диск. Если она возможна, то диск считается не лицензионным. Однако, если образ
будет записан на диск CD-R, то проверка пройдет. Существует возможность скрыть тип диска, чтобы CD-R или CD-RW был
виден как обычный CD-ROM. Однако, в драйвер защиты может быть встроена проверка на наличие эмуляции.

7.

8.

СОВРЕМЕННЫЕ ЭЛЕКТРОННЫЕ КЛЮЧИ
Электронный ключ, вставленный в один из портов (USB, LPT или COM) содержит ключевые данные, называемые также
лицензией, записанные в него разработчиком
Достоинства: можно вставлять в любой компьютер, не занимает/не требует наличия дисковода, электронный ключ
умеет выполнять криптографические преобразования, современные ключи могут исполнять произвольный код,
помещаемый в них разработчиком защиты стойкость защиты основывается на том, что ключевая информация защиты
(криптографические ключи, загружаемый код) не покидает ключа в процессе работы с ним.
Недостатки: информация для чтения/записи (практически не применяется, т.к после считывания ключ может быть
сэмулирован), цена (15—30 долларов за штуку), необходимость доставки ключа конечному пользователю, ранее можно
было отнести невысокое быстродействие ключа (в сравнении с cpu компьютера), проблемы с установкой ключа на
определённые аппаратные платформы решены при помощи сетевых ключей (способны работать с одной или более
копиями защищённого приложения, просто находясь с ним в одной локальной сети) и с помощью программных или
аппаратных средств «проброса» USB-устройств по сети.

9.

10.

ПРИВЯЗКА К ПАРАМЕТРАМ КОМПЬЮТЕРА И АКТИВАЦИЯ
Привязка к информации о пользователе/серийным номерам компонентов его компьютера и последующая активация ПО.
В процессе установки программа подсчитывает код активации— значение, соответствующее установленным комплектующим
компьютера и параметрам установленной ОС. Это значение передаётся разработчику программы. На его основе
генерируется ключ активации, подходящий только указанной машине. В качестве привязки используются: серийный номер
BIOS, винчестера. Данные о защите могут располагаться в неразмеченной области жёсткого диска.
Достоинства: не требуется специфического аппаратного обеспечения, программу можно распространять посредством
интернета. Недостатки: если пользователь производит модернизацию компьютера (в случае привязки к железу), защита
отказывает. Авторы многих программ, служба поддержки готовы дать новый код.
Такие защиты разрабатывались и внедрялись разработчиками самого программного продукта. Сейчас существуют SDK для
работы с программными ключами. Распространяются сервисы предлагающие функцию «навесной» защиты и сервера
активации/лицензирования.

11.

12.

ЗАЩИТА ПРОГРАММ ОТ КОПИРОВАНИЯ ПУТЁМ ПЕРЕНОСА ИХ В ОНЛАЙН
Код программы расположен и исполняется на сервере, доступном в глобальной сети. Доступ к нему осуществляется по
принципу тонкого клиента. Это один из немногих случаев, когда реализуется защита от копирования. Код исполняется
на «доверенной» стороне, откуда не может быть скопирован.
Проблемы с безопасностью: стойкость такой защиты зависит от защищённости серверов, на которых он исполняется,
важно обеспечение конфиденциальности запросов, аутентификации пользователей, целостности ресурса (возможности
«горячего» резервирования), и доступности решения в целом, возникают также вопросы доверия сервису (в том числе
правовые), так как ему фактически «в открытом виде» передаются как само по, так и данные, которые оно
обрабатывает (к примеру, персональные данные пользователей).
Защита кода от анализа
Можно выделить здесь отдельно средства защиты непосредственно кода приложения от анализа и использования в
других программах. В частности, применяются обфускаторы — программы нужны для запутывания кода с целью
защиты от его анализа, модификации и несанкционированного использования

13.

14.

ЮРИДИЧЕСКИЕ СРЕДСТВА ЗАЩИТЫ
Согласно законодательству, программный код приравнивается к
литературным произведениям, и к нему применяются все
соответствующие нормативные акты. В контексте защиты ПО
используется следующая терминология:
Лицензия— разрешение на право, либо право на выполнение
некоторых действий, которое может подтверждаться одноиме́нным
документом.
Патент— охранный документ, удостоверяющий исключительное
право, авторство и приоритет изобретения, полезной модели,
промышленного образца.
Предусмотрена ответственность за использование контрафактных
экземпляров программ для ЭВМ и баз данных, за преодоление
применяемых технических средств защиты.

15.

ОРГАНИЗАЦИОННЫЕ СРЕДСТВА ЗАЩИТЫ
Основной принцип заключается в невозможности
полноценного использования программного продукта без
соответствующей поддержки со стороны разработчика:
подробной пользовательской документации, «горячей линии»
технической поддержки и т. п.
Иногда защита дорогостоящих программных комплексов от
копирования производится организационными мерами
(предоставление пробной копии ПО только по запросу, либо
установка полнофункциональной версии программного
комплекса на пробный период при заключении
соответствующего соглашения).
Применяются крупными разработчиками к достаточно
большим и сложным программным продуктам.

16.

УСТАРЕВШИЕ МЕТОДЫ

17.

Ключевая дискета
В силу устаревания технологии, практически не применяется.
Есть четыре основных способа создания некопируемых меток на дискетах:
Считывание конкретного сектора дискеты (возможно, пустого или сбойного). Это самый простой способ защиты, и при
копировании «дорожка в дорожку» дискета копируется, Запоминание сбойных секторов дискеты. Перед тем, как записать на
дискету информацию, её царапают или прожигают лазером, после этого записывают номера сбойных секторов. Для
проверки подлинности дискеты программа пытается записать в эти сектора информацию, затем считать её, Нестандартное
форматирование дискеты, Один бит записывается так, что в некоторых случаях он читается как «0», в некоторых как «1».
Проводится многократное считывание дискеты; среди результатов считывания должны быть и нули, и единицы.
Запись некопируемых меток на жёсткий диск
Некоторые старые программы для DOS создавали некопируемые метки на жёстком диске. Например, файл длиной 1 байт
занимает на диске один кластер (не менее 512 байт), и в оставшиеся 511 байт можно записать некоторую информацию. Эта
практика практически не используется, так как велик риск потери данных.

18.

19.

Привязка к некоторому физическому объекту
Лицензия может привязываться к некоторому физическому объекту.
К руководству пользователя. Например, программа выводит: «Введите
5-е слово на 12-й сверху строке 26-й страницы». Более изощрённый
способ защиты — в руководстве находится важная информация, без
которой невозможно пройти игру, этим известна серия Space Quest.
Распространение сканеров и многозадачных операционных систем
положило конец этой практике.
К некоторому механическому устройству. Игра Another World
поставлялась с «кодовым колесом». В системе защиты от копирования
Lenslok, применявшейся в играх для ZX Spectrum, надо было,
посмотрев на картинку через систему призм, увидеть двухбуквенный
код.
Кодовое колесо
Pool of Radiance

20.

НЕДОСТАТКИ ТЕХНИЧЕСКИХ
МЕТОДОВ ЗАЩИТЫ ПО

21.

Проверка оригинального носителя. Можно обойти при помощи копирования / эмуляции диска (программа полностью копирует
диск, затем создаётся драйвер виртуального дисковода, в который помещается образ, который программа принимает за
лицензионный диск. Вариант этого метода «mini image», когда подставной диск имеет маленький размер, программа признаёт
его лицензионным.
Ввод серийного номера. Основной уязвимость возможность беспрепятственного копирования и распространения дистрибутива
вместе с серийным номером. Поэтому практически не используется (либо в совокупности с другими методами).
Активация программного обеспечения. Активационный код генерируется с использованием уникальной информации и
является уникальным. В этом случае, в момент генерации кода активации в процессе установки программы есть риск эмуляции
«универсального» аппаратного окружения (как то перехват обращений программы при считывании соответствующей
информации, либо запуск программы изначально в виртуальной среде). При неиспользовании запутывания кода защищённого
приложения (или использовании слабых методов), злоумышленник может найти код генерации кода активации и вынести его в
отдельную утилиту, вырезав всю процедуру активации (что сложнее, т.к. код может вызываться в разных частях приложения)

22.

Использование электронных ключей. Встречается мнение о возможности эмуляции электронного ключа
или библиотек интерфейса API, используемого при обращении к электронному ключу. При плохой
реализации защиты к примеру, программа только проверяет наличие ключа и читает/пишет в него чтолибо. Однако встроенные в программу защитные механизмы собственной разработки, основанные на
вызове симметричных и асимметричных алгоритмов электронного ключа практически исключают
возможность его эмуляции, т.к. обращения к ключу происходят каждый раз разные и накопить достаточное
количество статистики для создания полного статистического аналога невозможно. Стойкость защиты
сильно зависит от реализации, наличия уникальных защитных механизмов, реализованных разработчиком.
«Отключение» защиты путём модификации программного кода (к примеру, удаления проверок лицензии).
Может быть реализовано при неиспользовании (или использовании слабых) инструментов запутывания
кода. В результате программа дизассемблируется (или даже декомпилируется, в худшем случае), код
исследуется на наличие защитных механизмов, найденные проверки удаляются.

23.

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

24.

ИСПОЛЬЗОВАНИЕ АВТОМАТИЧЕСКИХ СРЕДСТВ ЗАЩИТЫ
Если у разработчиков нет времени, денег, квалификации на
создания своей защиты, то он может воспользоваться
шаблонным методом— сторонними автоматическими
средствами защиты ПО. Эти средства пристыковывают к
скомпилированной программе защитный модуль.
Преимущество в возможности установки на любую
программу (даже без доступа к исходному коду программы).
Стандартные защиты имеют большую вероятность быть
взломанными, т.к. устанавливаются на несколько программ и
тем самым обеспечивают спрос на рынке взлома. Но иногда
целесообразно использовать либо когда защиты нет вообще,
либо в совокупности с реализацией собственной уникальной
защиты.
Система защиты ПО PC Guard

25.

ПРОБЛЕМА «ЛУЧШЕ, ЧЕМ ЛЕГАЛЬНОЕ»
Система защиты неизбежно создаёт пользователю неудобства, с точки зрения пользователя, взломанная программа в
каком-то смысле лучше, чем оригинальная.
Например: В общем случае, незащищенная быстрее, чем защищённая, для работы «взломанной» программы не
нужен оригинальный носитель. Если не использовать компакт-дисков, время работы ноутбука существенно
увеличивается. Кроме того на некоторых моделях ноутбуков устройство чтения компакт-дисков может отсутствовать
вовсе, При использовании USB-ключа может не хватить портов на всё нужное оборудование или не быть таковых
вовсе (к примеру при использовании виртуализации), Электронный ключ может создавать физические неудобства при
работе с защищённой программой на ноутбуке, J2ME-программа исчезнет после перепрошивки телефона, и нет
возможности сделать её резервную копию, по этой причине даже владельцы лицензионных копий иногда
устанавливают взломанное программное обеспечение наравне с лицензионным.

26.

27.

Спасибо за
внимание!

28.

Источники
https://gios-services.com/
https://www.guardant.ru/
https://www.4cstrategies.com/
https://www.kuypersconsultancy.nl/
https://fondolimp.ru/
https://expertnov.ru/
https://www.vecteezy.com/
https://treeone.ru/
https://en.wikipedia.org/wiki/Main_Page
https://dtsinfo.ru/
https://thecode.media/
http://pyatilistnik.org/sozdaem-usb-klyuch-zashhityi-sredstvami-windows/
https://itnan.ru/post.php?c=2&p=279214
https://propb.ru/
https://www.sofpro.com/
https://www.softpedia.com/
https://www.playground.ru/misc/opinion/kak_my_lomali_igry_s_zaschitoj_starforce-504110
English     Русский Правила