Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Модульная архитектура технических средств защиты ПО от несанкционированного копирования




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

Основные требования к системе защиты ПО от несанкционированного копирования:

1. такая система должна достоверно выявлять факт несанкционированного использования программы

2. реагировать на факт несанкционированного использования

3. противодействовать возможным атакам, направленным на нейтрализацию защитных механизмов.

Система защиты ПО от несанкционированного копирования работает по следующему алгоритму:

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

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

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

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

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

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

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

 

Преимущества:

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

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

3. защита производится не по детерминированному алгоритму. Разработчик сам определяет, когда и каким образом будут вызываться API-функции с ПА устройствами защиты, как будут обрабатываться возвращаемые ими результаты.

Недостаток: сложная реализация.

    Модуль противодействия нейтрализации защитных механизмов затрудняет анализ злоумышленником защитного кода, противодействует вмешательству в его работу и выполняется по 2 направлениям:

1) статическое

2) динамическое

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

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

    

Пристыковочные механизмы защиты внедряются непосредственно в исполнительный код, реализуется непосредственно некого автоматического обработчика исполнительных файлов. Эти обработчики заключают исполнительный код программы в некую защитную оболочку, которой при старте программы передается управление. При старте программы запускается защитная оболочка, реализующая все защитные функции, проверки, по результатам которых принимается решение о запуске/незапуске программы. Они поставляются в виде неких wizad-ов. При использовании подобных wizard-ов от пользователя требуется минимум действий, например, указать программу, требующую защиту и способ защиты.

 

HASP Envelopment

«+» 1. простота использования и простота внедрения

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

«-» 1. используется детерминированный алгоритм, который могут попытаться вскрыть

2. жесткая реакция защиты программы на несовпадение характеристик среды (отказ в запуске)

Блок сравнения характеристик среды

Злоумышленник, атакуя этот блок, либо пытается найти эталонные характеристики среды, которые ожидает увидеть блок защиты, либо пытается модифицировать алгоритм сравнения характеристик среды таким образом, чтобы он всегда запускался по одной из ветвей – ветви верной регистрации (лицензионного запуска). В отдельных ситуациях такая модификация сводится к изменению всего 1 байта программы.

Для того, чтобы затруднить злоумышленнику атаку на этот блок, данный блок должен отвечать ряду требований:

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

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

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

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 270.

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