- •Компьютерные преступления методические указания к выполнению практических занятий по учебной дисциплине
- •090301 «Компьютерная безопасность»
- •2.1.1 Классификации механизмов защиты программного обеспечения (по)
- •2.1.2 Исследование программы Denoiser
- •2.1.3 Физические и виртуальные адреса
- •2.1.3 Вопросы для самоконтроля
- •2.2.1 Восстановление с помощью fsck
- •2.2.3 Вопросы для самоконтроля
- •2.3 Практическая работа №3: «Изучение работы Snort - свободной сетевой системы предотвращения вторжений (ips)»
- •2.3.1 Общие положения
- •2.3.2 Установка Snort (Windows xp)
- •2.3.3 Режим снифера
- •2.3.4 Режим регистратора пакетов
- •2.3.5 Режим обнаружения сетевых вторжений
- •2.3.6 Создание собственных правил Snort
- •2.3.7 Написание контекстных правил (подключение препроцессоров)
- •2.3.8 Подключение препроцессора Portscan
- •2.3.9 Вопросы для самоконтроля
- •2.4 Практическая работа №4 «Анализ антивирусного программного обеспечения»
- •2.4.1 Общие положения
- •2.4.2 Классификация антивирусных продуктов
- •2.4.3 Выполнение практической работы
- •2.4.4 Вопросы для самоконтроля
- •2.5 Практическая работа № 5: «Стеганография. Использование программ скрытого шифрования»
- •2.5.1 Основные понятия и определения стеганографии
- •2.5.2 Методы, технологии, алгоритмы
- •2.5.3. Практическая реализация
- •2.5.3.1 Работа с s-Tools
- •2.5.4 Программа ImageSpyer
- •1. Общие положения 1
- •1.1 Цель и задачи практических занятий 1
- •2.3.1 Общие положения 21
- •2.4.1 Общие положения 37
- •Компьютерные преступления методические указания к выполнению практических занятий по учебной дисциплине
- •090301 «Компьютерная безопасность»
- •394026 Воронеж, Московский просп., 14
2.1.1 Классификации механизмов защиты программного обеспечения (по)
Системы защиты ПО были придуманы для того, чтобы создатели программного обеспечения могли получать финансовые вознаграждения за свой труд. Для этого есть 2 способа:
попытаться заинтересовать пользователя в его приобретении. Это привело к мысли создавать «Shareware» программы (то есть условно-бесплатные). Такой «софт» можно бесплатно скачать и пользоваться. Однако, ограничения ставятся на некоторые функции ПО, или же на время использования. То есть, если программа нужна пользователю, он ее рано или поздно должен будет приобрести. Приобретение сводится к продаже пользователю регистрационного кода, сгенерированного для него (то есть на основе его данных, хотя в некоторых случаях, серийные номера могут генерироваться случайно, но иметь общие свойства – например чтобы деление одной части ключа на другую давало всегда один и тот же остаток, известный программе). При всем этом необходимо заботиться о том, чтобы покупатель, ее не смог свободно распространять. Однако, до сих пор существует множество программ, которые можно купить один раз и распространять неограниченными тиражами[1].
продавать программу сразу, но опять же заботиться о защите нелегального распространения.
Описанное выше можно назвать «внешними» системами защиты. «Внутренние» системы – это средства затруднения взлома и анализа машинного кода программы, такие как использование специальных приемов против отладчиков, упаковка (сжатие), шифрование, проверка целостности машинного кода (например через «циклический избыточный код» CRC, либо другие эффективные алгоритмы, к примеру коды Рида-Соломона, которые не только говорят о «неправильных» байтах, но и могут их восстанавливать).
Для защиты от нелегального распространения используют либо «привязку» к конкретному компьютеру пользователя, либо снабжают ПО специальным устройством, которое трудно продублировать. В роли «привязки» – считывание уникальных данных аппаратуры (например: процессора, жесткого диска, настроек и версий операционной системы и т.д.), после чего создается ключевой файл либо запись в реестре, либо используется любое другое хранилище ключевой информации. При каждом запуске программы такой ключ генерируется заново и сверяется с тем, что создавался при регистрации. Их несовпадение говорит о том, что программа либо запущена на другой машине или пользователь сменил часть аппаратуры. Из-за второго варианта могут возникать претензии со стороны легального пользователя, поэтому с таким методом защиты разработчики очень осторожны. Так же, зарегистрированная программа, может оставить специальную метку в файловой системе, однозначно идентифицируя данный компьютер, что проще и не вызовет претензий пользователя при замене, ну, скажем, процессора, но все же менее надежно при нелегальном копировании[2].
В роли специальных устройств может выступать HASP-ключ, дискета или CD, подготовленные особым образом, и т.д. К примеру - программа записана на CD со специальными метками, который невозможно скопировать штатными средствами. Так или иначе, эти устройства выполняют роль регистрационного ключа, и должны являться гарантом того, что данная копия программы принесла прибыль разработчикам[3].
Качество механизмов защиты, деньги, получаемые пиратами от торговли взломанным ПО, а так же желание некоторых людей решить новую «головоломку» лишает программистов честно заработанных денег.
Взлом программного обеспечения можно разделить на несколько категорий – «математический» взлом, «эмуляция условий» и программный (грубый) взлом.
«Математический» взлом - это исследование алгоритма генерации серийного номера находящегося внутри программы-жертвы и создание на его основе генератора серийных номеров (так называемый «KeyGen»), который распространяется вместе с программой. При таком взломе целостность программы-жертвы остается неименной. Для выявления такого алгоритма требуются глубокие знания в математике и программировании (в частности – языка Assembler), а так же знание особенностей компиляторов от разных разработчиков.