Системы защиты программного обеспечения | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №21 (259) май 2019 г.

Дата публикации: 27.05.2019

Статья просмотрена: 28 раз

Библиографическое описание:

Канафеев Р. И. Системы защиты программного обеспечения // Молодой ученый. — 2019. — №21. — С. 34-36. — URL https://moluch.ru/archive/259/59688/ (дата обращения: 16.12.2019).



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

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


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

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

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

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

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

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

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

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

  1. Запутывание программного кода — используются неупорядоченные переходы в различные части кода, внедряются ложные процедуры — «пустышки», холостые циклы, искажается количество реальных параметров процедур программы и т. п.
  2. Мутация — формируются таблицы соответствия операндов-синонимов, которые при каждом запуске программы по определенной схеме или случайным образом заменяют их друг на друга; также возможны случайные изменения в структуре программы.
  3. Компрессия данных — программа упаковывается, а затем (по мере выполнения) распаковывается.
  4. Шифрование данных — программа шифруется, а затем (по мере выполнения) расшифровывается.
  5. Защита от дизассемблирования — используются различные приемы, направленные на предотвращение дизассемблирования в пакетном режиме.
  6. Защита от отладки — используются различные приемы, направленные на усложнение отладки программы.
  7. Эмуляция процессоров и операционных систем (ОС) — создается виртуальный процессор и/или ОС и программа-переводчик из системы команд IBM в систему команд созданного процессора или ОС. После такого перевода данное ПО может выполняться только при помощи эмулятора, что резко затрудняет исследование исходного алгоритма.
  8. Нестандартные методы работы с аппаратным обеспечением — модули СЗ, минуя процедуры ОС, обращаются к аппаратуре ЭВМ и используют малоизвестные или недокументированные возможности системы.

Литература:

  1. BSA Global Software Survey [Электронный ресурс] / Software Management: Security Imperative, Business Opportunity. — Режим доступа: https://gss.bsa.org/wp-content/uploads/2018/05/2018_BSA_GSS_Report_en.pdf, свободный.
  2. Середа, С. А. Оценка эффективности систем защиты программного обеспечения [Электронный ресурс]. — Режим доступа: http://www.security.ase.md/publ/ru/pubru30.html, свободный.
  3. Степин, А. Современные технологии защиты программного обеспечения от нелегального копирования: что выбрать разработчику / А. Степин // Информационная безопасность. — 2010. — № 4. — С.30–32.
  4. Semjanov, P. V. On cryptosystems untrustworthiness [Электронный ресурс]. — Режим доступа: http://www.password-crackers.ru, свободный.
Основные термины (генерируются автоматически): система, система команд, IDC, мера выполнения, API, IBM, исходный код, программное обеспечение.


Похожие статьи

К вопросу об использовании программных продуктов с открытым...

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

Применение интеллектуальных технологий в процессе...

Сертификация программного обеспечения (ПО) на

Эффективность обеспечения безопасности ПО в рамках существующей система сертификации находится в

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

Системы сбора информации в аспекте кибербезопасности

Ключевые слова: системы обработки журналов, системы обнаружения атак,системы обнаружения и реагирования на конечных узлах сети,системы сбора информации о безопасности и управления событиями,OSSEC, SIEM, IDS, EDR, открытый исходный код...

Обзор различных средств фаззинга как инструментов...

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

Сетевые атаки. Виды. Способы борьбы | Статья в сборнике...

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

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

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

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

Проверка корректности программного обеспечения

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

Современные системы автоматизированного динамического...

Статья посвящена исследованию трех современных систем автоматизированного динамического анализа вредоносных файлов: CuckooSandbox, Anubis и DRAKVUF. Показано значение подобных систем в области изучения функциональности вредоносных программ.

Особенности изучения способа тестирования базового пути...

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

Похожие статьи

К вопросу об использовании программных продуктов с открытым...

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

Применение интеллектуальных технологий в процессе...

Сертификация программного обеспечения (ПО) на

Эффективность обеспечения безопасности ПО в рамках существующей система сертификации находится в

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

Системы сбора информации в аспекте кибербезопасности

Ключевые слова: системы обработки журналов, системы обнаружения атак,системы обнаружения и реагирования на конечных узлах сети,системы сбора информации о безопасности и управления событиями,OSSEC, SIEM, IDS, EDR, открытый исходный код...

Обзор различных средств фаззинга как инструментов...

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

Сетевые атаки. Виды. Способы борьбы | Статья в сборнике...

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

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

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

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

Проверка корректности программного обеспечения

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

Современные системы автоматизированного динамического...

Статья посвящена исследованию трех современных систем автоматизированного динамического анализа вредоносных файлов: CuckooSandbox, Anubis и DRAKVUF. Показано значение подобных систем в области изучения функциональности вредоносных программ.

Особенности изучения способа тестирования базового пути...

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

Задать вопрос