- •Методы защиты программного обеспечения и способы их обхода.
- •Классификация систем защиты программного обеспечения. Классификация по методу установки, по используемым механизмам защиты, по принципу функционирования.
- •Упаковщики/шифраторы. Достоинства и недостатки.
- •Форматы исполняемых файлов. Формат Portable Executable. Relative Virtual Address.
- •Форматы исполняемых файлов. Формат Portable Executable. Поле ImageBase структуры image_optional_header. Настройка адресов. Секция .Reloc.
- •Стандартный механизм импорта
- •Форматы исполняемых файлов. Формат Portable Executable. Секция .Export. Как работает механизм экспортируемых функций?
- •Виды точек останова в отладчике. Алгоритм работы точек останова.
- •Антиотладочные приёмы. Использование функции IsDebuggerPresent и защита от неё.
- •Антиотладочные приёмы. Использование функции FindWindow и защита от неё.
- •Антиотладочные приёмы. Использование функций Proccess32First и Process32Next и защита от них.
- •Антиотладочные приёмы. Обнаружение отладчика по имени процесса и защита от данного приёма.
Виды программного обеспечения по степени проприетарности и их главные отличия друг от друга. Ограничение на коммерческое использование. Ограничение на распространение. Ограничение на модификацию. Условно-свободное ПО.
Виды программного обеспечения и их главные отличия друг от друга.
Вид ПО |
Запрет копирования |
Исходный код |
Возможность создавать производные продукты |
Бесплатное использование |
Коммерческо |
Есть |
Закрыт |
Юридически запрещен |
Юридически запрещен |
Freewar |
Фиктивный |
Закрыт |
Юридически запрещен |
Разрешен |
Коммерческое бесплатное с открытым исходным кодом |
Фиктивный |
Открыт |
Юридически запрещен |
Разрешен |
Sharewar |
Фиктивный |
Закрыт |
Юридически запрещена |
Разрешено* (предлагается сделать нерегламентированный взнос автору из морально-этических соображений. Иногда требует оплаты после истечения пробного периода или имеет платную, более полную версию) |
Copyleft |
Фиктивный |
Открыт |
Разрешено* (Исходный код производного продукта должен быть открытым) |
Разрешено |
BSD License |
Фиктивный |
Открыт |
Разрешено |
Разрешено |
Проприетарное программное обеспечение -программное обеспечение, являющееся частной собственностью авторов или правообладателей инеудовлетворяющее критериям свободного.
Наиболее типичные ограничения проприетарногоПО:
• Ограничение на коммерческое использование.
Если это - единственное значительное ограничениеданного ПО, Фонд СПО считает это ПО полусвободным.
• Ограничениенараспространение
• Ограничениенамодификацию
Методы защиты программного обеспечения и способы их обхода.
Методы защиты программного обеспечения.
1)Локальная программная защита
Требование ввода серийного номера (ключа) при установке/запуске. распространением сетей очевидным недостатком стала проблема распространения образов дисков и серийных номеров по сети.
2)Сетевая программная защита
Локальная
Недостаток в том, что брандмауэр можно настроить так, чтобы он не пропускал пакеты, принадлежащие защищённой программе
Глобальная
Недостаток в том, что, существует возможность создать сервер, который не делает такой проверки.
3)Защита при помощи компакт-дисков
запись информации в неиспользуемых секторах;
проверка расположения и содержимого «сбойных» секторов;
проверка скорости чтения отдельных секторов.
Первые два метода практически бесполезны из-за возможности снятия полного образа с диска с использованием соответствующего прикладного ПО. Третий метод считается более надежным .Но существуют программы, которые могут эмулировать диски с учётом геометрии расположения данных, тем самым обходя и эту защиту.
4)Защита при помощи электронных ключей
Украсть ключ у пользователя.
5)Привязка к параметрам компьютера и активация
6)Защита программ от копирования путем переноса их в Online
7)Защита кода от анализ
Классификация систем защиты программного обеспечения. Классификация по методу установки, по используемым механизмам защиты, по принципу функционирования.
Системы защиты ПО можно классифицировать по следующим признакам:
• метод установки;
• используемые механизмы защиты;
• принцип функционирования.
Системы защиты ПО по методу установки можно разделить на:
• системы, устанавливаемые на скомпилированные модули ПО;
• системы, встраиваемые в исходный код ПО до компиляции;
• комбинированные.
По используемым механизмам защиты СЗ можно разделить на:
• системы, использующие сложные логические механизмы;
• системы, использующие шифрование защищаемого ПО;
• комбинированные системы.
По предназначению (принципу функционирования) СЗ можно разделить на:
• Упаковщики/шифраторы;
• СЗ от несанкционированного копирования (программ и данных);
• СЗ от несанкционированного исследования программ;
• СЗ от несанкционированной модификации (программ и данных);
• СЗ от несанкционированного доступа (НСД).
Упаковщики/шифраторы. Достоинства и недостатки.
Положительные стороны:
•В рамках периода безопасного использования данные системы обеспечивают высокий уровень защиты ПО от анализа его алгоритмов.
•Методы упаковки/шифрации намного увеличивают стойкость СЗ других типов.
Отрицательные стороны:
•Все применяемые методы замедляют выполнение кода ПО.
•Шифрование/упаковка кода ПО вызывает затруднения при обновлении (update) и исправлении ошибок (bugfix, servicepack).
•Возможно повышение аппаратно – программных требований ПО.
•В чистом виде данные системы не применимы для авторизации использования ПО.
•Эти системы применимы лишь к продуктам небольшого объема.
•Данный класс систем уязвим, так как программный код может быть, распакован или расшифрован для выполнения.
•Обладают небольшим сроком безопасного использования ввиду п.4
•Упаковка и шифрование исполняемого кода вступает в конфликт с запрещением самомодифицирующегося кода в современных ОС.
Парольные системы защиты. Достоинства и недостатки.
Положительные стороны:
•Надёжная защита от злоумышленника-непрофессионала.
•Минимальные неудобства для пользователя.
•Возможность передачи пароля/кода по сети.
•Отсутствие конфликтов с системным и прикладным ПО и АО.
•Простота реализации и применения.
•Низкая стоимость.
Отрицательные стороны:
•Низкая стойкость большинства систем защиты данного типа.
•Пользователю необходимо запоминать пароль/код.
Системы привязки к компьютеру пользователя. Достоинства и недостатки.
Положительные стороны:
•Не требуется добавочных аппаратных средств для работы защиты.
•Затруднение несанкционированного доступа к скопированному ПО.
•Простота применения.
•"Невидимость" СЗПО для пользователя.
Отрицательные стороны:
•Ложные срабатывания СЗПО при любых изменениях в параметрах ПК.
•Низкая стойкость при доступе злоумышленника к ПК пользователя.
•Возможность конфликтов с системным ПО.
Программно-аппаратные средства защиты ПО с электронными ключами. Достоинства и недостатки.
Положительные стороны:
•Значительное затруднение нелегального распространения и использования ПО.
•Избавление производителя ПО от разработки собственной системы защиты.
•Высокая автоматизация процесса защиты ПО.
•Наличие API системы для более глубокой защиты.
•Возможность легкого создания демо-версий.
•Достаточно большой выбор таких систем на рынке.
Отрицательные стороны:
•Затруднение разработки и отладки ПО из-за ограничений со стороны СЗ.
•Дополнительные затраты на приобретение системы защиты и обучение персонала.
•Замедление продаж из-за необходимости физической передачи аппаратной части.
•Повышение системных требований из-за защиты (совместимость, драйверы).
•Снижение отказоустойчивости ПО.
•Несовместимость систем защиты и системного или прикладного ПО пользователя.
•Несовместимость защиты и аппаратуры пользователя.
•Ограничения из-за несовместимости электронных ключей различных фирм.
•Снижение расширяемости компьютерной системы.
•Затруднения или невозможность использования защищенного ПО в переносных и блокнотных ПК.
•Наличие у аппаратной части размеров и веса (для COM/LPT= 5х3х2см ~ 50гр).
•Угроза кражи аппаратного ключа.