Защита программного обеспечения реферат

Обновлено: 06.07.2024

Собрала для вас похожие темы рефератов, посмотрите, почитайте:

Введение

В наш век многие сферы человеческой деятельности связаны с использованием компьютеров. Эти машины стали неотъемлемой частью нашей жизни. Они обладают колоссальными возможностями и, таким образом, позволяют освободить человеческий мозг для более необходимых и ответственных задач. Компьютер может хранить и обрабатывать очень большое количество информации, что на сегодняшний день является одним из самых дорогих ресурсов. По мере развития и модернизации компьютерных систем и программного обеспечения увеличивается объем и уязвимость хранимых в них данных. Одним из новых факторов, значительно увеличивших уязвимость, является массовое производство программно-совместимых, высокопроизводительных персональных компьютеров, что стало одной из причин появления нового класса программного обеспечения — вандалов — компьютерных вирусов. Наибольшую опасность в результате риска заражения компьютерными вирусами представляет возможность искажения или уничтожения жизненно важной информации, что может привести не только к финансовым и временным потерям, но и к человеческим потерям. антивирус компьютерной программы

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

Характер и появление компьютерных вирусов

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

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

Основными маршрутами проникновения вирусов в компьютер являются съемные запоминающие устройства (гибкие и лазерные диски) и компьютерные сети. Вирусы могут заразить Ваш жесткий диск, когда Вы загружаете компьютер с дискеты, содержащей вирус. Эта инфекция может также произойти случайно, например, если дискета не будет извлечена из дисковода и компьютер будет перезагружен, а дискета может не быть системной. Заразить дискету намного проще. Она может быть заражена даже в том случае, если дискета была просто вставлена в дисковод зараженного компьютера и, например, было прочитано оглавление. Зараженный диск — это диск с вирусом в загрузочном секторе. После запуска программы, содержащей вирус, возможно заражение других файлов. Вирусом заражены наиболее часто используемые загрузочные сектора дискет и исполняемые файлы с расширениями EXE, COM, SYS или BAT. Текстовые и графические файлы крайне редко инфицируются.

Зараженная программа — это программа, в которую встроена вирусная программа.

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

Они включают в себя следующее:

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

Классификация вирусов

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

По среде обитания.

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

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

Загрузочные вирусы внедряются в загрузочный сектор дискеты или логического носителя, содержащего загрузочную программу. Файловые загрузочные вирусы одновременно заражают как файлы, так и загрузочные сектора жесткого диска.

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

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

Инопланетный вирус не заражает память компьютера и активен только в течение ограниченного времени. Активируется в определенные моменты времени, например, при редактировании документов с помощью текстового редактора.

Разрушительными (разрушительными) возможностями.

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

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

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

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

По особенностям алгоритма.

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

Репликаторы вирусов (червей) распространяются по компьютерным сетям, вычисляя адреса компьютеров сети и записывая их копии по этим адресам.

Невидимые вирусы (вирусы-невидимки) — это вирусы, которые очень трудно обнаружить и обезвредить, так как они перехватывают вызовы операционной системы к пораженным файлам и секторам диска и заменяют их незараженными участками диска.

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

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

Satellite — вирус, который не изменяет файл и, для исполняемых программ (exe), создает программы с тем же именем, что и com, которая, когда исполняется исходная программа, сначала запускает, а затем передает управление исполняемой исходной программе.

Антивирусное программное обеспечение

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

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

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

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

Особенности антивирусных программ

Антивирусные программы делятся на: Программы детекторов, докторов, аудиторов, фильтров и вакуумных программ.

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

Детектор, способный обнаружить несколько вирусов, называется полидетектор.

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

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

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

Аудиторы имеют достаточно продвинутые алгоритмы, обнаруживают вирусы-невидимки и даже могут различать изменения в версии проверяемой программы и изменения, вносимые вирусом.

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

Это могут быть такие действия:

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

Обзор антивирусов

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

Есть много антивирусных программ. Давайте посмотрим на самых знаменитых из них.

Один из самых известных и популярных антивирусных продуктов. Скорость обнаружения вирусов очень высока (близка к 100%). Программа использует механизм, позволяющий обнаруживать новые неизвестные вирусы.

Интерфейс программы Norton AntiVirus имеет функцию LiveUpdate, которая позволяет обновлять как программу, так и набор вирусных сигнатур через Интернет нажатием одной кнопки. Мастер AntiVirus Wizard предоставляет подробную информацию об обнаруженном вирусе, а также позволяет выбрать, удалять ли вирус автоматически или более тщательно, шаг за шагом, где вы можете увидеть каждое из действий, выполненных во время процесса удаления.

Антивирусные базы обновляются очень часто (иногда обновления появляются несколько раз в неделю). Есть локальный монитор.

Недостатком этой программы является сложность конфигурации (хотя основные настройки менять не нужно, они практически не нужны).

Он считается одним из лучших антивирусных продуктов (Евгений Касперский как-то сказал, что это единственный конкурент его AVP). Он обнаруживает почти 100% известных и новых вирусов. Многочисленные функции, сканер, монитор, эвристика и все необходимое для успешной защиты от вирусов.

Это один из самых известных антивирусных пакетов. Он очень хорошо удаляет вирусы, но VirusScan хуже других пакетов при обнаружении новых типов файловых вирусов. Его можно быстро и легко установить с настройками по умолчанию, но вы также можете настроить его в соответствии с вашими собственными предпочтениями. Вы можете сканировать все файлы, или только программные файлы, и распространять или не распространять сканирование в сжатом виде. Он имеет множество функций для работы с Интернетом.

Популярный домашний антивирус. Обнаруживает вирусы хорошо, но его база данных намного меньше, чем у других антивирусных программ.

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

Заключение

Список литературы

Помощь студентам в учёбе
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal
lfirmal

Образовательный сайт для студентов и школьников

© Фирмаль Людмила Анатольевна — официальный сайт преподавателя математического факультета Дальневосточного государственного физико-технического института

Изучение основных видов угроз программного обеспечения. Выявление наиболее эффективных средств и методов защиты программного обеспечения. Анализ их достоинств и недостатков. Описания особенностей лицензирования и патентования программного обеспечения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.05.2013
Размер файла 67,9 K

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

Тема: Исследование методов и средств защиты программного обеспечения

Выполнил: Славкин А. С.

Проверил: Красоткин Ю. И.

Ключевые слова: ПРОГРАМНОЕ ОБЕСПЕЧЕНИЕ, УГРОЗЫ БЕЗОПАСНОСТИ ПО, СРЕДСТВА ЗАЩИТЫ ПО, МЕТОДЫ АНАЛИЗА БЕЗОПАСНОСТИ ПО, СРЕДСТВА ДЕСТРУКТИВНОГО ВОЗДЕЙСТВИЯ НА ПО.

Цель работы - выявить наиболее эффективные средства и методы защиты программного обеспечения.

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

Содержание

1. Воздействие вредоносных средств на безопасность ПО

2. Методы анализа безопасности программного обеспечения

2.1 Контрольно-испытательные методы

2.2 Логико-аналитические методы

3. Сравнительный анализ программно-технических средств защиты ПО

3.1 Парольная защита

3.3 Средства защиты ПО с электронными ключами

3.4 Средства защиты ПО с ключевыми дисками

4. Анализ правовых средств защиты ПО

4.1 Лицензирование ПО

4.2 Патентование ПО

4.3 Авторское право

4.4 Метод авторизации ПО через Интернет

Список использованных источников

Обозначения и сокращения

ПК - персональный компьютер

ПО - программное обеспечение

ИТ - информационные технологии

КС - компьютерная система

ИС - информационная система

РПС - разрушающее программное средство

НСД - несанкционированный доступ

СЗПО - средства защиты программного обеспечения

Введение

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

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

В настоящее время разработано достаточно много средств защиты программного обеспечения: программные, технические, правовые и т.д. Однако реально существует проблема выбора наиболее эффективных методов и средств защиты ПО в конкретных ИС.

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


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

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

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

Технические средства защиты

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

Локальная программная защита

Требование ввода серийного номера (ключа) при установке/запуске. История этого метода началась тогда, когда приложения распространялись только на физических носителях (к примеру, компакт-дисках). На коробке с диском был напечатан серийный номер, подходящий только к данной копии программы.

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

Сетевая программная защита

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

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

Защита при помощи компакт-дисков

Программа может требовать оригинальный компакт-диск. В частности, такой способ применяется в играх. Стойкость таких защит невелика, ввиду широкого набора инструментов снятия образов компакт-дисков.

Как правило, этот способ защиты применяется для защиты программ, записанных на этом же компакт-диске, являющимся одновременно ключевым.

Для защиты от копирования используется:

Первые два метода практически бесполезны из-за возможности снятия полного образа с диска с использованием соответствующего прикладного ПО. Третий метод считается более надёжным (используется, в частности, в защите StarForce). Но существуют программы, которые могут эмулировать диски с учётом геометрии расположения данных, тем самым обходя и эту защиту. В StarForce, в числе прочих проверок, также выполняется проверка возможности записи на вставленный диск. Если она возможна, то диск считается не лицензионным. Однако, если образ будет записан на диск CD-R, то указанная проверка пройдет. Существует возможность скрыть тип диска, чтобы CD-R или CD-RW был виден как обычный CD-ROM. Однако, в драйвер защиты может быть встроена проверка на наличие эмуляции.

В настоящее время наибольшую известность в мире имеют системы защиты от копирования SecuROM, StarForce, SafeDisc, CD-RX и Tages.

Для многих программ указанный метод защиты недоступен ввиду отличного способа распространения (например, shareware-программы).

Защита при помощи электронных ключей

Электронный ключ (донгл), вставленный в один из портов компьютера (с интерфейсом USB, LPT или COM) содержит ключевые данные, называемые также лицензией, записанные в него разработчиком

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

Достоинства защиты с использованием электронных ключей:

  • Ключ можно вставлять в любой компьютер, на котором необходимо запустить программу
  • Ключ не занимает/не требует наличия дисковода
  • Электронный ключ умеет выполнять криптографические преобразования
  • Современные ключи могут исполнять произвольный код, помещаемый в них разработчиком защиты (пример — Guardant Code, Senselock)

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

  • Цена (15—30 долларов за штуку)
  • Необходимость доставки ключа конечному пользователю

Ранее к недостаткам можно было также отнести невысокое быстродействие ключа (в сравнении с CPU компьютера). Однако современные ключи достигают производительности в 1.25 DMIPS (пример — HASP, Guardant), а техника защиты с их помощью не предполагает постоянного обмена с ключом.

Привязка к параметрам компьютера и активация

Привязка к информации о пользователе / серийным номерам компонентов его компьютера и последующая активация программного обеспечения в настоящий момент используется достаточно широко (пример: ОС Windows).

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

Достоинство в том, что не требуется никакого специфического аппаратного обеспечения, и программу можно распространять посредством цифровой дистрибуции (по Интернет).

Основной недостаток: если пользователь производит модернизацию компьютера (в случае привязки к железу), защита отказывает. Авторы многих программ в подобных случаях готовы дать новый регистрационный код. Например, Microsoft в Windows XP разрешает раз в 120 дней генерировать новый регистрационный код (но в исключительных случаях, позвонив в службу активации, можно получить новый код и после окончания этого срока).

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

Защита программ от копирования путём переноса их в онлайн

Другим направлением защиты программ является использование подхода SaaS, то есть предоставление функций этих программ (всех или части), как сервиса. При этом код программы расположен и исполняется на сервере, доступном в глобальной сети. Доступ к нему осуществляется по принципу тонкого клиента. Это один из немногих случаев, когда реализуется защита от копирования.

Однако, и здесь возникает ряд проблем, связанных с безопасностью:

Защита кода от анализа

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

Защита программного обеспечения на мобильных платформах

Способы защиты программного обеспечения для мобильных платформ от копирования обычно основываются на невозможности рядового пользователя считывать/изменять хранящиеся в ППЗУ аппарата данные. Может также использоваться активация программного обеспечения.

Устаревшие технические средства защиты

В прошлом применялись и другие методы защиты ПО от нелегального использования.

Ключевая дискета

Метод был распространён во времена MS-DOS, сейчас, в силу устаревания технологии FDD, практически не применяется. Есть четыре основных способа создания некопируемых меток на дискетах:

Запись некопируемых меток на жёсткий диск

Некоторые старые программы для DOS создавали некопируемые метки на жёстком диске. Например, файл длиной 1 байт занимает на диске один кластер (не менее 512 байт), и в оставшиеся 511 байт можно записать некоторую информацию. Эта практика практически не используется, так как велик риск потери данных.

Привязка к некоторому физическому объекту

Лицензия программы может привязываться к некоторому физическому объекту, к примеру:

Юридические средства защиты

Согласно законодательству, программный код приравнивается к литературным произведениям, и к нему применяются все соответствующие нормативные акты. В контексте защиты ПО используется следующая терминология:

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

Организационные средства защиты

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

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

Недостатки технических методов защиты ПО

Уязвимости современных методов защиты ПО

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

Использование автоматических средств защиты

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

Это одна из фундаментальных проблем технических средств защиты. Заключается она в том, что система защиты неизбежно создаёт пользователю неудобства, и потому, с точки зрения пользователя, взломанная программа в каком-то смысле лучше, чем оригинальная. Например:

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


Несмотря на наличие всего комплекса законодательных и правовых мер по защите авторских и смежных прав на интеллектуальную собственность, ситуация с пиратским рынком программного обеспечения (ПО) оставляет желать лучшего. Согласно исследованиям компании, IDC Inc., занимающейся изучением мирового рынка информационных технологий и телекоммуникаций, уровень пиратства в России в 2015 г. составил 62 % [1]. Несмотря на то, что эта цифра каждый год снижается, для производителей коммерческого ПО это означает огромную недополученную прибыль. Подобная проблема существует не только на отечественном рынке, но и во всем мире. Для ее устранения используются различные системы защиты программного обеспечения (СЗПО), которые получили широкое распространение и находятся в процессе постоянного развития, благодаря глубокой интеграции информационных технологий в общество. Необходимость использования СЗПО обусловлена рядом причин, среди которых может быть: заимствование кода программы, являющейся интеллектуальной собственностью автора, для написания аналогов продукта; несанкционированная модификация программы, с целью внедрения в ее код вредоносного ПО; незаконное копирование и распространение ПО и т. п.

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



Рис. 1. Классификация СЗПО

Системы, встраиваемые в исходный код ПО до компиляции, неудобны для производителя ПО, так как возникает необходимость обучать персонал работе с программным интерфейсом СЗ с вытекающими отсюда денежными и временными затратами. Кроме того, усложняется процесс тестирования ПО и снижается его надежность, так как кроме самого ПО ошибки может содержать API СЗ или процедуры его использующие. Однако такие системы являются более стойкими к атакам, поскольку здесь исчезает четкая граница между СЗ и ПО как таковым [2–4].

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

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

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

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

К основным защитным механизмам, используемым комбинированными системами, относятся:

Основные термины (генерируются автоматически): система, API, IBM, IDC, исходный код, мера выполнения, программное обеспечение, система команд.


По статистике, приведенной в исследовании 2018 BSA Global Software Survey:

  • Нелицензированное (пиратское) ПО составляет 37% от всего объема программного обеспечения, установленного на персональных ПК по всему миру.
  • Стоимость контрафактного ПО оценивается в $46 млрд.
  • Malware, которыми заражены многие пиратские программы, загружаемые из сторонних источников, обходятся бизнесу в $359 млрд в год.
  • Потери от взлома лицензионного ПО составляют порядка $600 млрд ежегодно.

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

Что касается доходов, то по данным BSA бизнес, который решит серьезно отнестись к защите своих программных продуктов, может рассчитывать на повышение прибыли примерно на 11% (впрочем, важно понимать, что это среднее значение).

Но что можно сделать для защиты своего ПО?

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

Во-первых, необходимо определиться с тем, какой уровень защиты может понадобиться вашему конкретному проекту. Не стоит палить из пушки по воробьям, выбор должен быть адекватным. Многие разработчики совершают здесь ошибку, используя более мощную (и дорогую) защиту, чем в действительности нужно.

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

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

Ключевые элементы защиты

Все начинается с выбора принципа лицензирования: необходимо выбрать, как за ваш продукт будут платить. Существует множество разновидностей, в целом их можно разделить на четыре типа:

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

Виды защит

Как и говорилось выше, есть различные опции для защиты ПО от взлома и копирования. Эти опции могут отличаться по стоимости, уровню защиты и специализации.

Офлайн-программная защита

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

Онлайн-программная защита

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

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

Степень серьезности такой защиты — между средним и высоким уровнем.

Аппаратная защита

Один из наиболее надежных методов, который сочетает в себе преимущества всех прочих стратегий. За лицензирование отвечает электронный USB-ключ, которому не требуется подключение к сети. Цена каждого ключа для разработчика низкая, нет периодических дополнительных трат. Реализовать можно как при помощи API, так и посредством программной оболочки.

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

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

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

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

Читайте также: