Методы затруднения дизассемблирования предполагают что
Проблема защиты информации решается введением контроля доступа и разграничением полномочий пользователя.
Распространённым средством ограничения доступа (или ограничения полномочий) является система паролей. Однако оно ненадёжно. Опытные хакеры могут взломать эту защиту, «подсмотреть» чужой пароль или войти в систему путём перебора возможных паролей, так как очень часто для них используются имена, фамилии или даты рождения пользователей. Более надёжное решение состоит в организации контроля доступа в помещения или к конкретному ПК в ЛВС с помощью идентификационных пластиковых карточек различных видов.
Использование пластиковых карточек с магнитной полосой для этих целей вряд ли целесообразно, поскольку, её можно легко подделать. Более высокую степень надёжности обеспечивают пластиковые карточки с встроенной микросхемой — так называемые микропроцессорные карточки (МП — карточки, smart — card). Их надёжность обусловлена в первую очередь невозможностью копирования или подделки кустарным способом. Кроме того, при производстве карточек в каждую микросхему заносится уникальный код, который невозможно продублировать. При выдаче карточки пользователю на неё наносится один или несколько паролей, известных только её владельцу. Для некоторых видов МП — карточек попытка несанкционированного использования заканчивается её автоматическим «закрытием». Чтобы восстановить работоспособность такой карточки, её необходимо предъявить в соответствующую инстанцию.
Установка специального считывающего устройства МП — карточек возможна не только на входе в помещения, где расположены компьютеры, но и непосредственно на рабочих станциях и серверах сети.
Оценка эффективности систем защиты программного обеспечения
Системы защиты ПО широко распространены и находятся в постоянном развитии, благодаря расширению рынка ПО и телекоммуникационных технологий. Необходимость использования систем защиты (СЗ) ПО обусловлена рядом проблем, среди которых следует выделить: незаконное использование алгоритмов, являющихся интеллектуальной собственностью автора, при написании аналогов продукта (промышленный шпионаж); несанкционированное использование ПО (кража и копирование); несанкционированная модификация ПО с целью внедрения программных злоупотреблений; незаконное распространение и сбыт ПО (пиратство).
Системы защиты ПО по методу установки можно подразделить на системы, устанавливаемые на скомпилированные модули ПО; системы, встраиваемые в исходный код ПО до компиляции; и комбинированные.
Системы первого типа наиболее удобны для производителя ПО, так как легко можно защитить уже полностью готовое и оттестированное ПО (обычно процесс установки защиты максимально автоматизирован и сводится к указанию имени защищаемого файла и нажатию «Enter»), а потому и наиболее популярны. В то же время стойкость этих систем достаточно низка (в зависимости от принципа действия СЗ), так как для обхода защиты достаточно определить точку завершения работы «конверта» защиты и передачи управления защищенной программе, а затем принудительно ее сохранить в незащищенном виде.
Системы второго типа неудобны для производителя ПО, так как возникает необходимость обучать персонал работе с программным интерфейсом (API) системы защиты с вытекающими отсюда денежными и временными затратами. Кроме того, усложняется процесс тестирования П.О и снижается его надежность, так как кроме самого ПО ошибки может содержать API системы защиты или процедуры, его использующие. Но такие системы являются более стойкими к атакам, потому что здесь исчезает четкая граница между системой защиты и как таковым ПО.
Для защиты ПО используется ряд методов, таких как:
§ Алгоритмы запутывания — используются хаотические переходы в разные части кода, внедрение ложных процедур — «пустышек», холостые циклы, искажение количества реальных параметров процедур ПО, разброс участков кода по разным областям ОЗУ и т.п.
§ Алгоритмы мутации — создаются таблицы соответствия операндов — синонимов и замена их друг на друга при каждом запуске программы по определенной схеме или случайным образом, случайные изменения структуры программы.
§ Алгоритмы компрессии данных — программа упаковывается, а затем распаковывается по мере выполнения.
§ Алгоритмы шифрования данных — программа шифруется, а затем расшифровывается по мере выполнения.
§ Вычисление сложных математических выражений в процессе отработки механизма защиты — элементы логики защиты зависят от результата вычисления значения какой-либо формулы или группы формул.
§ Методы затруднения дизассемблирования — используются различные приемы, направленные на предотвращение дизассемблирования в пакетном режиме.
§ Методы затруднения отладки — используются различные приемы, направленные на усложнение отладки программы.
§ Эмуляция процессоров и операционных систем — создается виртуальный процессор и/или операционная система (не обязательно реально существующие) и программа-переводчик из системы команд IBM в систему команд созданного процессора или ОС, после такого перевода ПО может выполняться только при помощи эмулятора, что резко затрудняет исследование алгоритма ПО.
Классификация систем защиты программного обеспечения (защита программного обеспечения )
Стремительное развитие информационных технологий привело к формированию информационной среды, оказывающей влияние на все сферы человеческой деятельности. Однако с развитием информационных технологий возникают и стремительно растут риски, связанные с их использованием, появляются совершенно новые угрозы, с последствиями, от реализации которых человечество раньше не сталкивалось.
Одним из главных инструментов для реализации конкретных информационных технологий являются информационные системы, задача обеспечения безопасности которых является приоритетной, так как от сохранения конфиденциальности, целостности и доступности информационных ресурсов зависит результат деятельности информационных систем.
Целью данной работы является анализ основных видов систем защиты программного обеспечения.
Для достижения данной цели необходимо выполнить следующие задачи:
- проанализировать основные средства и методы защиты информации;
- изучить классификацию систем защиты программного обеспечения;
- выявить достоинства и недостатки систем защиты программного обеспечения;
- проанализировать основные показатели эффективности системы защиты программного обеспечения.
Предметов изучения в данной работе является система защиты программного обеспечения.
1 ЗАЩИТА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
1.1 Обеспечение безопасности программного обеспечения. Меры и основные направления
Защита информации согласно закону «Об информации, информационных технологиях и о защите информации» представляет собой принятие правовых, организационных и технических мер, направленных на:
- обеспечение защиты информации от неправомерного доступа, уничтожения, модифицирования, блокирования, копирования, предоставления, распространения, а также от иных неправомерных действий в отношении такой информации;
- соблюдение конфиденциальности информации ограниченного доступа;
- реализацию права на доступ к информации.
Целями защиты информации являются:
- предотвращение утечки информации по техническим каналам;
- предотвращение несанкционированного уничтожения, искажения, копирования, блокирования информации в системах информатизации;
- соблюдение правового режима использования массивов и программ обработки информации, а также обеспечение полноты, целостности и достоверности информации в системах обработки;
- сохранение возможности управления процессом обработки и пользования информацией.
Мероприятия по защите информации — составная часть управленческой, научной и производственной деятельности — осуществляются во взаимосвязи с другими мерами по обеспечению установленного режима секретности проводимых работ.
Главные направления работ по защите информации:
- обеспечение эффективного управления системой защиты информации;
- определение сведений, охраняемых от технических средств разведки, и демаскирующих признаков, раскрывающих эти сведения;
- анализ и оценка реальной опасности перехвата информации техническими средствами разведки, несанкционированного доступа, разрушения (уничтожения) или искажения путем преднамеренных программно-технических воздействий в процессе ее обработки, передачи и хранения в технических средствах, выявление возможных технических каналов утечки сведений, подлежащих защите;
- разработка организационно-технических мероприятий по защите информации и их реализация;
- организация и проведение контроля состояния защиты информации.
По способам осуществления меры защиты программного обеспечения делятся на:
• технические (аппаратные и программные) (бондарев 33).
Законодательные меры включают в себя указы, постановления, законы, руководящие документы и другие нормативно-правовые акты, которые определяют нормы обращения с информацией, права и обязанности участников информационных отношений и устанавливают ответственность за несоблюдение данных норм. Морально-этические меры предполагают соблюдение норм поведения, которые традиционно сложились в обществе или формируются по мере распространения информационных технологий. Данные нормы не обязательны к применению, как требования нормативных актов, однако, их несоблюдение может нередко привести к снижению престижа компании.
Организационные меры — меры административного характера, которые устанавливают правила функционирования системы обработки данных и деятельности обслуживающего персонала, а также порядок их взаимодействия для снижения вероятности осуществления угроз безопасности или потерь в случае их реализации. К организационным мерам относят надлежащую охрану территории объекта, соблюдение требований разграничения доступа, формирование дисциплины и ответственности сотрудников и др.
Технологические меры предусматривают такие технологические решения и приемы, которые основаны на принципе избыточности (структурной, функциональной, информационной, временной и т. п.) и направлены на уменьшение возможности совершения сотрудниками ошибок и нарушений в рамках мандатного доступа (например, двойной ввод ответственной информации, инициализация ответственных операций только при наличии разрешений от нескольких должностных лиц, процедура проверки соответствия реквизитов исходящих и входящих сообщений в системах коммутации сообщений, периодическое подведение общего баланса всех банковских счетов и т. п.).
Меры физической защиты на основе механических, электромеханических и электронно-механических устройств позволяют создавать физические препятствий на возможных путях проникновения и доступа потенциальных нарушителей к компонентам системы и защищаемой информации, а также средств визуального наблюдения, связи и охранной сигнализации. К данному типу относятся также меры и средства контроля физической целостности компонентов АС (пломбы, наклейки и т.п.).
Технические меры защиты основаны на использовании различных электронных устройств и специальных программ, входящих в состав программного обеспечения и выполняющих (самостоятельно или в комплексе с другими средствами) функции защиты.
Таким образом, специалисты по информационной безопасности располагают широким спектром защитных мер: законодательных, морально-этических, административных (организационных), физических и технических. Предпринимаемые меры имеют как достоинства, так и недостатки, которые необходимо знать и правильно учитывать при создании систем защиты. Все известные каналы проникновения и утечки информации должны быть перекрыты с учетом анализа риска, вероятностей реализации угроз безопасности в конкретной прикладной системе и обоснованного рационального уровня затрат на защиту. Наилучшие результаты достигаются при системном подходе к вопросам безопасности компьютерных систем и комплексном использовании различных мер защиты на всех этапах жизненного цикла системы, начиная с самых ранних стадий ее проектирования
1.2. Методы и средства защиты программного обеспечения
Защита программного обеспечения — комплекс мер, направленных на защиту программного обеспечения от несанкционированного приобретения, использования, распространения, модифицирования, изучения и воссоздания аналогов.
Защита программного обеспечения преследует цели:
- ограничение несанкционированного доступа к программам или их преднамеренное разрушение и хищение;
- исключение несанкционированного копирования (тиражирования) программ;
- программный продукт и базы данных должны быть защищены по нескольким направлениям от воздействия:
- человека — хищение машинных носителей и документации программного обеспечения; нарушение работоспособности программного продукта и др.;
- аппаратуры — подключение к компьютеру аппаратных средств для считывания программ и данных или их физического разрушения;
- специализированных программ — приведение программного продукта или базы данных в неработоспособное состояние (например, вирусное заражение), несанкционированное копирование программ и базы данных и т.д.
Патентная защита устанавливает приоритет в разработке и использовании нового подхода или метода, примененного при разработке программ, удостоверяет их оригинальность.
Статус производственного секрета для программы ограничивает круг лиц, знакомых или допущенных к ее эксплуатации, а также определяет меру их ответственности за разглашение секретов. Например, используется парольный доступ к программному продукту или базе данных, вплоть до паролей на отдельные режимы (чтение, запись, корректировку и т.п.). Программы, как любой материальный объект большой стоимости, необходимо охранять от кражи и преднамеренных разрушений.
Лицензионные соглашения распространяются на все аспекты правовой охраны программных продуктов, включая авторское право, патентную защиту, производственные секреты. Наиболее часто используются лицензионные соглашения на передачу авторских прав.
Системы защиты программного обеспечения широко распространены и находятся в постоянном развитии, благодаря расширению рынка программного обеспечения и телекоммуникационных технологий. Необходимость использования систем защиты обусловлена рядом проблем, среди которых следует выделить: незаконное использование алгоритмов, являющихся интеллектуальной собственностью автора, при написании аналогов продукта (промышленный шпионаж); несанкционированное использование ПО (кража и копирование); несанкционированная модификация ПО с целью внедрения программных злоупотреблений; незаконное распространение и сбыт ПО (пиратство).
Методы защиты программного обеспечения (программ для ЭВМ) в информационной среде условно можно разделить на три типа:
- Защита программного обеспечения – это комплекс мер, направленных на защиту программного обеспечения от несанкционированного приобретения, использования, распространения, модифицирования, изучения и воссоздания аналогов.
- Защита от несанкционированного использования программ – система мер, направленных на противодействие нелегальному использованию программного обеспечения. При защите могут применяться организационные, юридические, программные и программно-аппаратные средства.
- Защита от копирования к программному обеспечению применяется редко, в связи с необходимостью его распространения и установки на компьютеры пользователей. Однако, от копирования может защищаться лицензия на приложение (при распространении на физическом носителе) или его отдельные алгоритмы.
Существуют следующие виды защиты программного обеспечения:
- Локальная программная защита – требование ввода серийного номера (ключа) при установке/запуске программного обеспечения. История этого метода началась тогда, когда приложения распространялись только на физических носителях (компакт-дисках). На коробке с диском был напечатан серийный номер, подходящий только к данной копии программы.
- Сетевая программная защита делится на локальную – сканирование сети исключает одновременный запуск двух программ с одним регистрационным ключом на двух персональных компьютерах в пределах одной локальной сети и глобальную – если программа работает с каким-то централизованным сервером и без него бесполезна (например, серверы обновлений антивирусов, серверы обновления правовых программ, таких как Гарант, Консультант Плюс, антивирус Касперского).
- Защита при помощи компакт-дисков – программа может требовать оригинальный компакт-диск. Как правило, этот способ защиты применяется для защиты программ, записанных на этом же компакт-диске, являющимся одновременно ключевым.
- Защита при помощи электронных ключей – вставленный в один из портов компьютера (с интерфейсом USB, LPT или COM) носитель, содержащий ключевые данные, называемые также лицензией, записанные в него разработчиком.
- Привязка к параметрам компьютера и активация – привязка к информации о пользователе/серийным номерам компонентов его компьютера и последующая активация программного обеспечения в настоящий момент используется достаточно широко. В процессе установки программное обеспечение подсчитывает код активации — контрольное значение, однозначно соответствующее установленным комплектующим компьютера и параметрам установленной программы. Это значение передается разработчику программы.
- Защита программ от копирования путём переноса их в сеть Интернет – стремительно набирающий популярность метод защиты, который заключается в предоставление функционала программ (всего или части), как сервиса онлайн, в сети Интернет. При этом код программы расположен и исполняется на сервере, доступном в глобальной сети.
- Защита кода от анализа – средства защиты непосредственно кода приложения от анализа и использования в других программах. В частности, применяются обфускаторы – программы для запутывания кода с целью защиты от его анализа, модификации и несанкционированного использования.
- Защита программного обеспечения на мобильных платформах. Способы защиты программного обеспечения для мобильных платформ от копирования обычно основываются на невозможности рядового пользователя считывать/изменять хранящиеся в постоянном запоминающем устройстве (ПЗУ) аппарата данные.
Согласно Гражданского кодекса Российской Федерации, программное обеспечение и базы данных приравниваются к литературным произведениям, и их защита регулируется авторским законодательством, однако, в контексте защиты программного обеспечения как объекта интеллектуальной собственности, к программам применима как лицензия, так и патент, так как зачастую программы имеют инновационный характер и сложный технологический процесс разработки, поэтому авторское законодательство, порой, не может с учётом всех аспектов обеспечить должный уровень правовой защиты данным результатам интеллектуальной деятельности. Но, чтобы обезопасить программу от незаконного использования (воспроизведения, коммерческого использования, сдачи в прокат или импорта произведения) правовых средств, порой, недостаточно, так как эти средства в сфере защиты интеллектуальной собственности известны неповоротливой и абсолютно негибкой процедурой осуществления их на практике. Ведь от момента обнаружения факта нарушения авторских прав до конечного решения судебных инстанций может пройти от нескольких месяцев до нескольких лет судебных тяжб, которые в свою очередь также требуют затрат средств и времени.
2. СИСТЕМЫ ЗАЩИТЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЕ. ОСНОВНЫЕ ВИДЫ И ОЦЕНКА ИХ ЭФФЕКТИВНОСТИ
2.1. Классификация систем защиты программного обеспечения
Существующие системы защиты программного обеспечения можно классифицировать по ряду признаков, среди которых можно выделить:
- метод установки;
- используемые механизмы защиты;
- принцип функционирования.
Системы защиты ПО по методу установки можно подразделить на:
-
-
-
- системы, устанавливаемые на скомпилированные модули ПО;
- системы, встраиваемые в исходный код ПО до компиляции;
- комбинированные.
Системы первого типа наиболее удобны для производителя ПО, так как легко можно защитить уже полностью готовое и оттестированное ПО, а потому и наиболее популярны. В то же время стойкость этих систем достаточно низка (в зависимости от принципа действия системы защиты), так как для обхода защиты достаточно определить точку завершения работы «конверта» защиты и передачи управления защищенной программе, а затем принудительно ее сохранить в незащищенном виде.
Системы второго типа неудобны для производителя ПО, так как возникает необходимость обучать персонал работе с программным интерфейсом (API) системы защиты с вытекающими отсюда денежными и временными затратами. Кроме того, усложняется процесс тестирования ПО и снижается его надежность, так как кроме самого ПО ошибки может содержать API системы защиты или процедуры, его использующие. Но такие системы являются более стойкими к атакам, потому что здесь исчезает четкая граница между системой защиты и как таковым ПО.
Наиболее живучими являются комбинированные системы защиты. Сохраняя достоинства и недостатки систем второго типа, они максимально затрудняют анализ и дезактивацию своих алгоритмов.
По используемым механизмам защиты системы защиты можно классифицировать на:
1) системы, использующие сложные логические механизмы;
2) системы, использующие шифрование защищаемого ПО;
3) комбинированные системы.
Системы первого типа используют различные методы и приемы, ориентированные на затруднение дизассемблирования, отладки и анализа алгоритма системы защиты и защищаемого ПО. Этот тип систем наименее стоек к атакам, так как для преодоления защиты достаточно проанализировать логику процедур проверки и должным образом их модифицировать.
Более стойкими являются системы второго типа. Для дезактивации таких защит необходимо определение ключа дешифрации ПО. Самыми стойкими к атакам являются комбинированные системы.
Для защиты ПО используется ряд методов:
1. Алгоритмы запутывания – используются хаотические переходы в разные части кода, внедрение ложных процедур – «пустышек», холостые циклы, искажение количества реальных параметров процедур ПО, разброс участков кода по разным областям ОЗУ и т.п.
2. Алгоритмы мутации – создаются таблицы соответствия операндов – синонимов и замена их друг на друга при каждом запуске программы по определенной схеме или случайным образом, случайные изменения структуры программы.
3. Алгоритмы компрессии данных – программа упаковывается, а затем распаковывается по мере выполнения.
4. Алгоритмы шифрования данных – программа шифруется, а затем расшифровывается по мере выполнения.
5. Вычисление сложных математических выражений в процессе отработки механизма защиты – элементы логики защиты зависят от результата вычисления значения какой-либо формулы или группы формул.
6. Методы затруднения дизассемблирования – используются различные приемы, направленные на предотвращение дизассемблирования в пакетном режиме.
7. Методы затруднения отладки – используются различные приемы, направленные на усложнение отладки программы.
8. Эмуляция процессоров и операционных систем – создается виртуальный процессор и/или операционная система (не обязательно существующие) и программапереводчик из системы команд IBM в систему команд созданного процессора или ОС, после такого перевода ПО может выполняться только при помощи эмулятора, что резко затрудняет исследование алгоритма ПО.
9. Нестандартные методы работы с аппаратным обеспечением – модули системы защиты обращаются к аппаратуре ЭВМ, минуя процедуры ОС, и используют малоизвестные или недокументированные ее возможности.
По принципу функционирования системы защиты можно подразделить на следующие:
2) системы защиты от несанкционированного копирования;
3) системы защиты от несанкционированного доступа.
Первоначально основной целью упаковщиков/шифраторов являлось уменьшение объема исполняемого модуля на диске без ущерба для функциональности программы, но позднее на первый план вышла цель защиты программного обеспечения от анализа его алгоритмов и несанкционированной модификации. Для достижения этого используются алгоритмы компрессии данных; приемы, связанные с использованием недокументированных особенностей операционных систем и процессоров; шифрование данных, алгоритмы мутации, запутывание логики программы, приведение операционной системы в нестабильное состояние на время работы программного обеспечения и др. Целью таких систем является защита программного обеспечения от анализа его алгоритмов и несанкционированной модификации. Для достижения этого используются алгоритмы компрессии данных; шифрование данных, алгоритмы мутации, запутывание логики программы, приведение ОС в нестабильное состояние на время работы программного обеспечения и др.
Защита от несанкционированного копирования — система мер, направленных на противодействие несанкционированному копированию информации, как правило, представленной в электронном виде (данных или собственнического программного обеспечения).
При защите от не санкционированного копирования основываются в зависимости от применяемых способов и средств могут использоваться правовые, организационные, технические и криптографические методы защиты.
Правовые методы защиты информации от несанкционированного копирования основываются на ответственности, предусмотренной действующим законодательством, как за несанкционированное использование защищаемой информации, так и за преодоление применяемых средств защиты информации.
Организационные методы защиты информации от несанкционированного копирования заключаются в том, что полноценное использование защищаемой информации невозможно без соответствующей поддержки со стороны ее владельца (пользовательская документация, «горячая линия», система обучения пользователей, обновление ПО и т. п.).
Технические методы защиты информации от несанкционированного копирования предполагают намеренное ограничение или затруднение различных действий с данными в электронной форме (копирование, модификация, просмотр и т. п.), либо позволяют отследить такие действия с помощью систем контроля и управления доступом.
Криптографические методы защиты информации от НСК используют криптостойкие алгоритмы защиты информации. Данные методы основываются на необходимости знания определенного секретного ключа для получения доступа к защищаемой информации.
Преимуществом технических и криптографических методов защиты информации от НСК является возможность предотвращения непосредственного копирования информации с носителей.
Средства защиты от несанкционированного доступа — это программные и/или аппаратные средства, позволяющие предотвратить попытки несанкционированного доступа, такие как неавторизованный физический доступ, доступ к файлам, хранящимся на компьютере, уничтожение конфиденциальных данных.
Средства защиты от несанкционированного доступа чаще всего имеют следующие функции:
- Осуществление идентификации и усиленной аутентификации доверенными средствами, как пользователей, так и устройств.
- Разграничение доступа к файлам и каталогам в соответствии с матрицей доступа (дискреционный метод) и режима конфиденциальности (полномочный доступ).
- Регистрация и хранение информации о действиях пользователя, позволяющие производить мониторинг и аудит информационной безопасности.
- Построение замкнутой программной среды, позволяющей запускать только выделенный набор программ из белого списка.
- Контроль целостности файлов и каталогов (с возможностью запрета на загрузку операционной системы, в случае повреждения данных).
- Теневое копирование информации (при копировании конфиденциальных данных на носители информации, при печати конфиденциальной информации на принтере).
- Контроль устройств (разрешение и запрет на использование флеш-накопителей, DVD-приводов, Wi-Fi-адаптеров и другого оборудования).
2.2. Достоинства и недостатки основных систем защиты программного обеспечения
Первоначально основной целью упаковщиков/шифраторов являлось уменьшение объема исполняемого модуля на диске без ущерба для функциональности программы, но позднее на первый план вышла цель защиты ПО от анализа его алгоритмов и несанкционированной модификации. Для достижения этого используются алгоритмы компрессии данных; приемы, связанные с использованием недокументированных особенностей операционных систем и процессоров; шифрование данных, алгоритмы мутации, запутывание логики программы, приведение ОС в нестабильное состояние на время работы ПО и др.
-
-
-
- В рамках периода безопасного использования данные системы обеспечивают высокий уровень защиты ПО от анализа его алгоритмов.
- Методы упаковки/шифрации намного увеличивают стойкость СЗ других типов.
-
-
-
- Практически все применяемые методы замедляют выполнение кода ПО.
- Шифрование/упаковка кода ПО вызывает затруднения при обновлении (update) и исправлении ошибок (bugfix, servicepack).
- Возможно повышение аппаратно-программных требований ПО.
- В чистом виде данные системы не применимы для авторизации использования ПО.
- Эти системы применимы лишь к продуктам небольшого объема.
- Данный класс систем уязвим, так как программный код может быть, распакован или расшифрован для выполнения. Обладают небольшим сроком безопасного использования ввиду п. 4.
- Упаковка и шифрование исполняемого кода вступает в конфликт с запрещением самомодифицирующегося кода в современных ОС.
Системы защиты от несанкционированного копирования осуществляют «привязку» программного обеспечения к дистрибутивному носителю (гибкий диск, CD и др.). Данный тип защит основывается на глубоком изучении работы контроллеров накопителей, их физических показателей, нестандартных режимах разбивки, чтения/записи и т.п. При этом на физическом уровне создается дистрибутивный носитель, обладающий предположительно неповторимыми свойствами (нестандартная разметка носителя информации или/и запись на него дополнительной информации – пароля или метки), а на программном – создается модуль, настроенный на идентификацию и аутентификацию носителя по его уникальным свойствам. При этом возможно применение приемов, используемых упаковщиками/шифраторами.
1. Затруднение нелегального копирования и распространения ПО.
2. Защита прав пользователя на приобретенное ПО.
- Большая трудоемкость реализации системы защиты.
- Замедление продаж из-за необходимости физической передачи дистрибутивного носителя информации.
- Повышение системных требований из-за защиты (наличие накопителя).
- Снижение отказоустойчивости ПО.
- Несовместимость защиты и аппаратуры пользователя (накопитель, контроллер).
- На время работы ПО занимается накопитель.
- Угроза кражи защищенного носителя. Основные показатели эффективности систем защиты программного обеспечения
Необходимо отметить, что пользователи явно ощущают лишь отрицательные стороны систем защит. А производители программного обеспечения рассматривают только относящиеся к ним «плюсы» и «минусы» систем защиты и практически не рассматривают факторы, относящиеся к конечному потребителю. По результатам исследований был разработан набор показателей применимости и критериев оценки систем зашиты программного обеспечения.
2.3. Основные показатели эффективности систем защиты программного обеспечения делятся на технические, экономические и организационные.
Технические — соответствие системы защиты программного обеспечения функциональным
требованиям производителя программного обеспечения и требованиям по стойкости, системные требования программного обеспечения и системные требования системы защиты программного обеспечения, объем программного обеспечения и объем системы защиты программного обеспечения, функциональная направленность программного обеспечения, наличие и тип системы защиты у аналогов программного обеспечения — конкурентов.Экономические — соотношение потерь от пиратства и
общего объема прибыли, соотношение потерь от пиратства и стоимости системы защиты программного обеспечения и ее внедрения, соотношение стоимости программного обеспечения и стоимости системы защиты программного обеспечения, соответствие стоимости системы защиты программного обеспечения и ее внедрения поставленным целям.Организационные — распространенность и популярность программного обеспечения, условия распространения и использования программного обеспечения, уникальность программного обеспечения, наличие угроз, вероятность превращения пользователя в злоумышленника, роль документации и поддержки при использовании программного обеспечения.
Защита как таковая — затруднение нелегального копирования и доступа, защита от мониторинга, отсутствие логических брешей и ошибок в реализации системы.
Стойкость к исследованию/взлому — применение
стандартных механизмов, новые/нестандартные механизмы.Отказоустойчивость (надежность) — вероятность
отказа защиты (НСД), время наработки на отказ, вероятность отказа программы защиты (крах), время наработки на отказ, частота ложных срабатываний.Независимость от конкретных реализаций ОС — использование недокументированных возможностей, «вирусных» технологий и «дыр» ОС.
Совместимость — отсутствие конфликтов с системным и прикладным ПО, отсутствие конфликтов с существующим АО, максимальная совместимость с разрабатываемым АО и ПО.
Неудобства для конечного пользователя ПО — необходимость и сложность дополнительной настройки системы защиты, доступность документации, доступность информации об обновлении модулей системы защиты из-за
ошибок/несовместимости/нестойкости, доступность сервисных пакетов, безопасность сетевой передачи пароля/ключа, задержка из-за физической передачи пароля/ключа, нарушения прав потребителя.Побочные эффекты — перегрузка трафика, отказ в
обслуживании, замедление работы защищаемого ПО и ОС, захват системных ресурсов, перегрузка ОЗУ, нарушение стабильности ОС.Стоимость — стоимость/эффективность, стоимость/цена защищаемого ПО, стоимость/ликвидированные убытки.
Доброкачественность — доступность результатов независимой экспертизы, доступность информации о побочных эффектах, полная информация о СЗ для конечного пользователя.
При разработке и анализе защиты программного обеспечения необходимо учитывать существующую законодательную базу, при этом нужно проводить подробный экономический анализ ситуации, применяя различные критерии оценки, а затем создавать стратегию защиты, включающую применение технических и организационных мер защиты программного обеспечения.
ЗАКЛЮЧЕНИЕ
Таким образом, в работе были рассмотрены основные цели и направления защиты информации и программного обеспечения. Основные меры защиты можно поделить на законодательные, морально-этические, организационные, физические, технические (аппаратные и программные).
В работе также подробно описана классификация систем защиты программного обеспечения. Основным признаком классификации систем является – принцип функционирования системы защиты. В зависимости от принципа функционирования системы защиты программного обеспечения можно разделить на упаковщиков/шифраторов, системы защиты от несанкционированного копирования, системы защиты от несанкционированного доступа.
Изучив достоинства и недостатки основных видов систем защиты программного обеспечения, можно сделать вывод о целесообразности использования системы для защиты информации. Преимущества системы намного превосходят их недостатки.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Бондарев, В. В. Б81 Введение в информационную безопасность автоматизированных систем: учебное пособие / В. В. Бондарев. — Москва: Издательство МГТУ им. Н. Э. Баумана, 2016. — 250 c.
- Безбогов, А.А. Б391 Безопасность операционных систем: учебное пособие / А.А. Безбогов, А.В. Яковлев, Ю.Ф. Мартемьянов. – М.: «Издательство Машиностроение-1», 2007. – 220 с.
- Фролов А.В., Фролов Г.В. Аппаратное обеспечение персонального компьютера. — М.: ДИАЛОГ-МИФИ, 2017. – 304 с.
- Березин А.С., Петренко С.А. Безопасность корпоративной информационной системы глазами бизнеса / Экспресс-электроника. – № 9. – 2002. – 87 с.
- Войников, Н.А. Системное программирование для Правец-16 / Н.А. Войников. – М.: София: Техника, 2014. – 256 c.
- Грибанов, В.П. Операционные системы / В.П. Грибанов, С.В. Дробин, В.Д. Медведев. – М.: Финансы и статистика, 2015. – 239 c.
- Клименко, Р.А. Windows Vista. Для профессионалов / Р.А. Клименко. – М.: СПб: Питер, 2016. – 656 c.
- Смит Оптимизация и защита Linux сервера своими руками / Смит, Питер. – М.: Наука и техника, 2016. – 576 c.
- Таненбаум, Э. Современные операционные системы / Э. Таненбаум. — М.: СПб: Питер; Издание 2-е, 2016. – 498 c.
- Тимонин, В.И. Операционная система ОС ЕС. Основы функционирования / В.И. Тимонин. – М.: Финансы и статистика, 2016. – 223 c.
При копировании любых материалов с сайта evkova.org обязательна активная ссылка на сайт www.evkova.org
Сайт создан коллективом преподавателей на некоммерческой основе для дополнительного образования молодежи
Сайт пишется, поддерживается и управляется коллективом преподавателей
Telegram и логотип telegram являются товарными знаками корпорации Telegram FZ-LLC.
Cайт носит информационный характер и ни при каких условиях не является публичной офертой, которая определяется положениями статьи 437 Гражданского кодекса РФ. Анна Евкова не оказывает никаких услуг.
Система защиты программных средств от копирования и исследования
1. Методы, затрудняющие считывание скопированной информации. Создание копий программных средств для изучения или несанкционированного использования осуществляется с помощью устройств вывода или каналов связи.
Одним из самых распространенных каналов несанкционированного копирования является использование накопителей на съемных магнитных носителях. Угроза несанкционированного копирования информации блокируется методами, которые могут быть распределены по двум группам:
— методы, затрудняющие считывание скопированной информации;
— методы, препятствующие использованию информации.
Методы из первой группы основываются на придании особенностей процессу записи информации, которые не позволяют считывать полученную копию на других накопителях, не входящих в защищаемую КС.
Таким образом, эти методы направлены на создание совместимости накопителей только внутри объекта. В КС должна быть ЭВМ, имеющая в своем составе стандартные и нестандартные накопители. На этой ЭВМ осуществляется ввод (вывод) информации для обмена с другими КС, а также переписывается информация со стандартных носителей на нестандартные, и наоборот. Эти операции осуществляются под контролем администратора системы безопасности. Такая организация ввода-вывода информации существенно затрудняет действия злоумышленника не только при несанкционированном копировании, но и при попытках несанкционированного ввода информации.
Особенности работы накопителей на съемных магнитных носителях должны задаваться за счет изменения программных средств, поддерживающих их работу, а также за счет простых аппаратных регулировок и настроек. Такой подход позволит использовать серийные образцы накопителей.
Самым простым решением является нестандартная разметка (форматирование) носителя информации [18]. Изменение длины секторов, межсекторных расстояний, порядка нумерации секторов и некоторые другие способы нестандартного форматирования дискет затрудняют их использование стандартными средствами операционных систем. Нестандартное форматирование защищает только от стандартных средств работы с накопителями. Использование специальных программных средств (например, DISK EXPLORER для IBM-совместимых ПЭВМ) позволяет получить характеристики нестандартного форматирования.
Перепрограммирование контроллеров ВЗУ, аппаратные регулировки и настройки вызывают сбой оборудования при использовании носителей на стандартных ВЗУ, если форматирование и запись информации производились на нестандартном ВЗУ. В качестве примеров можно привести изменения стандартного алгоритма подсчета контрольной суммы и работы системы позиционирования накопителей на гибких магнитных дисках.
В контроллерах накопителей подсчитывается и записывается контрольная сумма данных сектора. Если изменить алгоритм подсчета контрольной суммы, то прочитать информацию на стандартном накопителе будет невозможно из-за сбоев.
Позиционирование в накопителях на магнитных дисках осуществляется следующим образом. Определяется номер дорожки, на которой установлены магнитные головки. Вычисляется количество дорожек, на которое необходимо переместить головки и направление движения. Если нумерацию дорожек магнитного диска начинать не с дорожек с максимальным радиусом, как это делается в стандартных накопителях, а нумеровать их в обратном направлении, то система позиционирования стандартного накопителя не сможет выполнять свои функции при установке на него такого диска. Направление движения будет задаваться в направлении, обратном фактически записанным на дискете номерам дорожек, и успешное завершение позиционирования невозможно.
Выбор конкретного метода изменения алгоритма работы ВЗУ (или их композиции) осу-
ществляется с учетом удобства практической реализации и сложности повторения алгоритма злоумышленником. При разработке ВЗУ необходимо учитывать потребность использования устройств в двух режимах: в стандартном режиме и в режиме совместимости на уровне КС. Выбор одного из режимов, а также выбор конкретного алгоритма нестандартного использования должен осуществляться, например, записью в ПЗУ двоичного кода. Число нестандартных режимов должно быть таким, чтобы исключался подбор режима методом перебора. Процесс смены режима должен исключать возможность автоматизированного подбора кода. Установку кода на ВЗУ всего объекта должен производить администратор системы безопасности.
Методы, препятствующие использованию скопированной информации. Эта группа методов имеет целью затруднить использование полученных копированием данных. Скопированная информация может быть программой или данными. Данные и программы могут быть защищены, если они хранятся на ВЗУ в преобразованном криптографическими методами виде. Программы, кроме того, могут защищаться от несанкционированного исполнения и тиражирования, а также от исследования.
Наиболее действенным (после криптографического преобразования) методом противодействия несанкционированному выполнению скопированных программ является использование блока контроля среды размещения программы [18]. Блок контроля среды размещения является дополнительной частью программ. Он создается при инсталляции (установке) программ. В него включаются характеристики среды, в которой размещается программа, а также средства получения и сравнения характеристик.
В качестве характеристик используются характеристики ЭВМ или носителя информации, или совместно, характеристики ЭВМ и носителя. С помощью характеристик программа связывается с конкретной ЭВМ и (или) носителем информации. Программа может выполняться только на тех ЭВМ или запускаться только с тех носителей информации, характеристики которых совпадут с характеристиками, записанными в блоке контроля среды выполнения.
В качестве характеристик ЭВМ используются особенности архитектуры: тип и частота центрального процессора, номер процессора (если он есть), состав и характеристики внешних устройств, особенности их подключения, режимы работы блоков и устройств и т.п.
Сложнее осуществляется привязка программ к носителям информации, так как они стандартны и не имеют индивидуальных признаков [38]. Поэтому такие индивидуальные признаки создаются искусственно путем нанесения физических повреждений или изменением системной информации и структуры физических записей на носителе. Например, на гибких магнитных дисках могут прожигаться лазером отверстия, используется нестандартное форматирование, пометка некоторых секторов как дефектных. Приведенные средства защиты от несанкционированного использования дискет эффективны против стандартных способов создания копий (COPY, XCOPY, Diskcopy, Pctools, Norton Utilities в MS DOS и др.).
Однако существуют программные средства (COPYWRITE, DISK EXPLORER), позволяющие создавать полностью идентичные копии дискет с воспроизведением всех уникальных характеристик. Все же приведенный метод защиты нельзя считать абсолютно неэффективным, так как трудоемкость преодоления защиты велика и требования, предъявляемые к квалификации взломщика, высоки.
Общий алгоритм механизма защиты от несанкционированного использования программ в "чужой" среде размещения сводится к выполнению следующих шагов.
Шаг 1. Запоминание множества индивидуальных контрольных характеристик ЭВМ и (или) съемного носителя информации на этапе инсталляции защищаемой программы.
Шаг 2. При запуске защищенной программы управление передается на блок контроля среды размещения. Блок осуществляет сбор и сравнение характеристик среды размещения с контрольными характеристиками.
Шаг 3. Если сравнение прошло успешно, то программа выполняется, иначе — отказ в выполнении. Отказ в выполнении может быть дополнен выполнением деструктивных действий в отношении этой программы, приводящих к невозможности выполнения этой программы, если такую самоликвидацию позволяет выполнить ОС.
Привязка программ к среде размещения требует повторной их инсталляции после проведения модернизации, изменения структуры или ремонта КС с заменой устройств.
Для защиты от несанкционированного использования программ могут применяться и электронные ключи [51] . Электронный ключ "HASP" имеет размеры со спичечный коробок и подключается к параллельному порту принтера. Принтер подключается к компьютеру через электронный ключ. На работу принтера ключ не оказывает никакого влияния. Ключ распространяется с защищаемой программой. Программа в начале и в ходе выполнения считывает контрольную информацию из ключа. При отсутствии ключа выполнение программы блокируется.
3. Защита программных средств от исследования. Изучение логики работы программы может выполняться в одном из двух режимов: статическом и динамическом [60,61]. Сущность статического режима заключается в изучении исходного текста программы. Для получения листингов исходного текста выполняемый программный модуль дизассемблируют, то есть получают из программы на машинном языке программу на языке Ассемблер.
Динамический режим изучения алгоритма программы предполагает выполнение трассировки программы. Под трассировкой программы понимается выполнение программы на ЭВМ с использованием специальных средств, позволяющих выполнять программу в пошаговом режиме, получать доступ к регистрам, областям памяти, производить остановку программы по определенным адресам и т.д. В динамическом режиме изучение алгоритма работы программы осуществляется либо в процессе трассировки, либо по данным трассировки, которые записаны в запоминающем устройстве.
Средства противодействия дизассемблированию не могут защитить программу от трассировки и наоборот: программы, защищенные только от трассировки, могут быть дизассемблированы. Поэтому для защиты программ от изучения необходимо иметь средства противодействия как дизассемблированию, так и трассировке.
Существует несколько методов противодействия дизассемблированию:
— использование самогенерирующих кодов;
Архивацию можно рассматривать как простейшее шифрование.
Причем архивация может быть объединена с шифрованием. Комбинация таких методов позволяет получать надежно закрытые компактные программы.
Зашифрованную программу невозможно дизассемблировать без расшифрования. Зашифрование (расшифрование) программ может осуществляться аппаратными средствами или отдельными программами. Такое шифрование используется перед передачей программы по каналам связи или при хранении ее на ВЗУ. Дизассемблирование программ в этом случае возможно только при получении доступа к расшифрованной программе, находящейся в ОП перед ее выполнением (если считается, что преодолеть криптографическую защиту невозможно).
Другой подход к защите от дизассемблирования связан с совмещением процесса расшифрования с процессом выполнения программ. Если расшифрование всей программы осуществляется блоком, получающим управление первым, то такую программу расшифровать довольно просто. Гораздо сложнее расшифровать и дизассемблировать программу, которая поэтапно расшифровывает информацию, и этапы разнесены по ходу выполнения программы. Задача становится еще более сложной, если процесс расшифрования разнесен по тексту программы.
Использование самогенерируемых кодов, заключается в том, что исполняемые коды программы получаются самой программой в процессе ее выполнения.
Самогенерируемые коды получаются в результате определенных действий над специально выбранным масс
сивом данных. В качестве исходных данных могут использоваться исполняемые коды самой программы или специально подготовленный массив данных. Данный метод показал свою высокую эффективность, но он сложен в реализации.
"Обманом" дизассемблера – это такой стиль программирования, который вызывает нарушение правильной работы стандартного дизассемблера за счет нестандартных приемов использования отдельных команд, нарушения общепринятых соглашений.
"Обман" дизассемблера осуществляется несколькими способами:
— нестандартная структура программы;
— скрытые переходы, вызовы процедур, возвраты из них и из прерываний;
— переходы и вызовы подпрограмм по динамически изменяемым адресам;
— модификация исполняемых кодов.
Для дезориентации дизассемблера часто используются скрытые переходы, вызовы и возвраты за счет применения нестандартных возможностей команд.
Маскировка скрытых действий часто осуществляется с применением стеков.
Трассировка программ обычно осуществляется с помощью программных продуктов, называемых отладчиками. Основное назначение их — выявление ошибок в программах. При анализе алгоритмов программ используются такие возможности отладчиков как пошаговое (покомандное) выполнение программ, возможность останова в контрольной точке.
Покомандное выполнение осуществляется процессором при установке пошагового режима работы. Контрольной точкой называют любое место в программе, на котором обычное выполнение программы приостанавливается, и осуществляется переход в особый режим, например, в режим покомандного выполнения. Для реализации механизма контрольной точки обычно используется прерывание по соответствующей команде ЭВМ (для IBM-совместных ПЭВМ такой командой является команда INT). В современных процессорах можно использовать специальные регистры для установки нескольких контрольных точек при выполнении определенных операций: обращение к участку памяти, изменение участка памяти, выборка по определенному адресу, обращение к определенному порту ввода-вывода и т.д.
При наличии современных средств отладки программ полностью исключить возможность изучения алгоритма программы невозможно, но существенно затруднить трассировку возможно;
Основной задачей противодействия трассировке является увеличение числа и сложности ручных операций, которые необходимо выполнить программисту-аналитику.
Для противодействия трассировке программы в ее состав вводятся следующие механизмы:
— изменение среды функционирования;
— модификация кодов программы;
Изменением среды функционирования понимается – это запрет или переопределение прерываний (если это возможно), изменение режимов работы, состояния управляющих регистров, триггеров и т.п. Такие изменения вынуждают аналитика отслеживать изменения и вручную восстанавливать среду функционирования.
Модифицирующиеся (изменяющиеся) коды программ, например, в процедурах приводят к тому, что каждое выполнение процедуры выполняется по различным ветвям алгоритма.
"Случайные" переходы выполняются за счет вычисления адресов переходов. Исходными данными для этого служат характеристики среды функционирования, контрольные суммы процедур (модифицируемых) и т.п. Включение таких механизмов в текст программ существенно усложняет изучение алгоритмов программ путем их трассировки.
-
-
-
-
-
-