Автоматизация процессов по защите программного обеспечения от несанкционированного использования для минимизации экономических потерь (на примере" ООО "Корабли и Люди")

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 22.01.2021
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

6

НЕГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ ЧАСТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ФИНАНСОВО-ПРОМЫШЛЕННЫЙ УНИВЕРСИТЕТ «СИНЕРГИЯ»

Факультет онлайн обучения

Специальность: «Информационные системы и технологии»

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

Автоматизация процессов по защите программного обеспечения от несанкционированного использования для минимизации экономических потерь (на примере" ООО "Корабли и Люди")

Обучающийся Васильев Петр Николаевич

Москва 2019

Задание

на выпускную квалификационную работу студента

Васильев Петр Николаевич

1. Тема ВКР: Автоматизация процессов по защите программного обеспечения от несанкционированного использования для минимизации экономических потерь (на примере" ООО "Корабли и Люди")

2. Структура ВКР:

Введение

Раздел 1. Аналитическое обозрение методик защиты программного обеспечения

1.1. Анализ средств защиты на этапе программирования.

1.1.1 Определение процесса обфускации

1.1.2 Таксономия запутывающих преобразований

1.2. Средства защиты на уровне исполняемого кода.

1.3. Обзор средств защиты от копирования с лицензионного носителя.

1.4. Аппаратные средства защиты ПО от несанкционированного использования

1.4.1. Аппаратные брандмауэры

1.4.2. Смарт-карты

1.4.3. Биометрические устройства

Раздел 2. Проектирование комплекса защиты программного обеспечения на примере" ООО "Корабли и Люди")

2.1. Обзор предметной области: структура и деятельность ООО "Корабли и Люди"

2.1.1. Краткое описание деятельности ООО "Корабли и Люди"

2.1.2. Организационно-функциональная модель ООО "Корабли и Люди"

2.1.3. Информационно-техническая модель ООО "Корабли и Люди"

2.2. Краткая характеристика ПО, применяемого компанией.

2.2.1. Исследование существующих бизнес-процессов и поиск готового комплекса задач автоматизации

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

2.2.3. Обоснование необходимости улучшения существующей в ООО "Корабли и Люди" материально-технической базы и ее программного обеспечения

2.3. Анализ состояния информационной безопасности в компании.

2.3.1. Параметризация предприятия по видам угроз, возможных из-за несовершенства существующей системы информационной безопасности

2.3.2. Выделение компонентов системы, подверженных несанкционированному доступу извне.

2.4. Формирование требований к комплексу защиты ПО от несанкционированного использования, выбор концепции автоматизации «КАК ДОЛЖНО БЫТЬ»

2.4.1. Обзорный анализ уже готовых решений для автоматизации задачи

2.4.2. Выбор оптимальной стратегии автоматизации задачи

2.4.3. Техническое обоснование проектных решений для информационного обеспечения

2.4.4. Техническое обоснование проектных решений для программного обеспечения

2.4.5. Техническое обоснование проектных решений для технического обеспечения

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

2.5.1. Краткая характеристика исходных и результирующих данных

2.5.2. Концептуальная модель разрабатываемой системы.

2.5.3. Логическая и физическая модель системы, диаграммы вариантов использования, последовательности, классов для системы «КАК ЕСТЬ»

2.5.4. Логическая и физическая модель системы, диаграммы вариантов использования, последовательности, классов для системы «КАК ДОЛЖНО БЫТЬ»

2.5.5. Выбор средств программирования, разработка модулей системы.

2.5.6 Тестирование системы на предмет выполнения критерия минимальности материального ущерба.

Раздел 3. Обоснование экономической эффективности, оценка экономических показателей эффективности проекта

3.1. Выбор методики расчета экономической эффективности в зависимости от входных технико-экономических условий проекта

3.2. Расчет основных параметров экономической эффективности проекта.

Заключение

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

Приложение

3. Основные вопросы, подлежащие разработке.

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

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

В параграфе 1.1 необходимо отразить технико-экономическую характеристику предметной области и предприятия. Анализ деятельности «КАК ЕСТЬ».

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

В параграфе 1.3 необходимо провести анализ существующих разработок и выбор стратегии автоматизации «КАК ДОЛЖНО БЫТЬ».

Глава 2 должна отразить проектную часть работы.

В параграфе 2.1 необходимо осуществить разработку проекта автоматизации.

В параграфе 2.2 необходимо описать информационное обеспечение задачи.

В параграфе 2.3 необходимо выделить программное обеспечение задачи.

В Главе 3 необходимо обосновать экономическую эффективность проекта.

В параграфе 3.1 необходимо осуществить выбор и обосновать методику расчёта экономической эффективности.

В параграфе 3.2 необходимо произвести расчёт показателей экономической эффективности проекта.

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

В приложение выносятся: Листинг программного кода

4. Исходные данные по ВКР:

1. Материалы предпроектного анализа предприятия.

2. Законодательная и нормативная документация по теме ВКР.

3. Научная, техническая и учебная литература по теме работы.

Основная литература:

1. Мезенцев, К.Н. Автоматизированные информационные системы / К.Н. Мезенцев. - М.: Academia, 2016. - 1280 c.

2. Миков, А.И. Информационные процессы и нормативные системы в IT: Математические модели. Проблемы проектирования. Новые подходы / А.И. Миков. - М.: КД Либроком, 2013. - 256 c.

3. Нестеров, В.В. Информационные системы в экономике: В 2-х ч. Ч.1. Методология создания. Уч. пособ. / В.В. Нестеров. - М.: Финансы и статистика, 2006. - 336 c.

4. Норенков, И.П. Автоматизированные информационные системы: Учебное пособие / И.П. Норенков. - М.: МГТУ им. Баумана, 2011. - 342 c.

5. Одинцов, Б.Е. Информационные системы управления эффективностью бизнеса: Учебник и практикум для бакалавриата и магистратуры / Б.Е. Одинцов. - Люберцы: Юрайт, 2016. - 206 c.

6. Остроух, А.В. Интеллектуальные информационные системы и технологии: Монография / А.В. Остроух, А.Б. Николаев. - СПб.: Лань, 2019. - 308 c.

7. Патрушина, С.М. Информационные системы в экономике: Учебное пособие / С.М. Патрушина, Н.А. Аручиди.. - М.: Мини Тайп, 2012. - 144 c.

8. Пирогов, В. Информационные системы и базы данных: организация и проектирование: Учебное пособие / В. Пирогов. - СПб.: BHV, 2009. - 528 c.

9. Пирогов, В.Ю. Информационные системы и базы данных: организация и проектирование: Учебное пособие / В.Ю. Пирогов. - СПб.: БХВ-Петербург, 2009. - 528 c.

10. Раклов, В.П. Географические информационные системы в тематической картографии: Учебное пособие / В.П. Раклов. - М.: Академический проект, 2014. - 176 c.

11. Раннев, Г.Г. Измерительные информационные системы: Учебник / Г.Г. Раннев. - М.: Академия, 2015. - 368 c.

Дополнительная литература:

12. Конотопов, М.В. Информационная безопасность. Лабораторный практикум / М.В. Конотопов. - М.: КноРус, 2013. - 136 c.

13. Партыка, Т.Л. Информационная безопасность: Учебное пособие / Т.Л. Партыка, И.И. Попов. - М.: Форум, 2018. - 88 c.

Содержание

  • Введение
  • Раздел 1. Аналитическое обозрение методик защиты программного обеспечения
    • 1.1 Анализ средств защиты на этапе программирования
      • 1.1.1 Определение процесса обфускации
      • 1.1.2 Таксономия запутывающих преобразований
    • 1.2 Средства защиты на уровне исполняемого кода
    • 1.3 Обзор средств защиты от копирования с лицензионного носителя
    • 1.4 Аппаратные средства защиты ПО от несанкционированного использования
      • 1.4.1 Аппаратные брандмауэры
      • 1.4.2 Смарт-карты
      • 1.4.3 Биометрические устройства
    • Выводы
  • Раздел 2. Проектирование комплекса защиты программного обеспечения на примере" ООО "Корабли и Люди")
    • 2.1 Обзор предметной области: структура и деятельность ООО "Корабли и Люди"
      • 2.1.1 Краткое описание деятельности ООО "Корабли и Люди"
      • 2.1.2 Организационно-функциональная модель ООО "Корабли и Люди"
      • 2.1.3 Информационно-техническая модель ООО "Корабли и Люди"
    • 2.2 Краткая характеристика ПО, применяемого компанией
      • 2.2.1 Исследование существующих бизнес-процессов и поиск готового комплекса задач автоматизации
      • 2.2.2 Обозначение места проектируемого функционала в комплексе задач автоматизации, описание задачи защиты от несанкционированного использования информационных систем в ООО "Корабли и Люди"
      • 2.2.3 Обоснование необходимости улучшения существующей в ООО "Корабли и Люди" материально-технической базы и ее программного обеспечения
    • 2.3 Анализ состояния информационной безопасности в компании
      • 2.3.1 Параметризация предприятия по видам угроз, возможных из-за несовершенства существующей системы информационной безопасности
      • 2.3.2 Выделение компонентов системы, подверженных несанкционированному доступу извне
    • 2.4 Формирование требований к комплексу защиты ПО от несанкционированного использования, выбор концепции автоматизации «Как должно быть»
      • 2.4.1 Обзорный анализ уже готовых решений для автоматизации задачи
      • 2.4.2 Выбор оптимальной стратегии автоматизации задачи
      • 2.4.3 Техническое обоснование проектных решений для информационного обеспечения
      • 2.4.4 Техническое обоснование проектных решений для программного обеспечения
      • 2.4.5 Техническое обоснование проектных решений для технического обеспечения
    • 2.5 Практическая реализация выбранной системы защиты программного обеспечения от несанкционированного использования для минимизации материального ущерба
      • 2.5.1 Краткая характеристика исходных и результирующих данных
      • 2.5.2 Концептуальная модель разрабатываемой системы
      • 2.5.3 Логическая и физическая модель системы, диаграммы вариантов использования, последовательности, классов для системы «Как есть»
      • 2.5.4 Логическая и физическая модель системы, диаграммы вариантов использования, последовательности, классов для системы «Как должно быть»
      • 2.5.5 Выбор средств программирования, разработка модулей системы
      • 2.5.6 Тестирование системы на предмет выполнения критерия минимальности материального ущерба
  • Раздел 3. Обоснование экономической эффективности, оценка экономических показателей эффективности проекта
    • 3.1 Выбор методики расчета экономической эффективности в зависимости от входных технико-экономических условий проекта
    • 3.2 Расчет основных параметров экономической эффективности проекта.
  • Заключение
  • Список использованной литературы
  • Приложение

Введение

В XXI веке объем накопленных знаний и данных продолжает расти лавинообразно. К 2025 году объем всей информации увеличится в 10 раз по сравнению с 2016 годом. Этот процесс будет касаться каждой организации, каким бы не были ее род деятельности, частная она или государственная, вне зависимости от того, какова ее организационная структура. Важно не только ориентироваться в таком потоке информации, но и защитить собственные конфиденциальные данные от утечки и передачи третьим лицам. А инфраструктура предприятия должна идти в ногу со временем, чтобы не отставать от роста объемов информации.

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

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

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

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

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

К задачам работы можно отнести:

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

2) Анализ и мониторинг применяющихся средств обеспечения информационной безопасности, очерчивание их достоинств и недостатков.

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

4) Определение списка рисков и их приоритета, ущерба от возможного применения.

5) Планирование инженерно-технических мер, устраняющих наиболее критичные обозначенные риски и угрозы.

6) Выбор технологий, которые наиболее полно могут устранить угрозы из списка - обновления клиентских и серверных операционных систем.

7) Описание технологий операционной системы, таких, - Active Directory и BitLocker и их сочетания с аппаратными комплексами (смарт-картами, устройствами для считывания смарт-карт).

8) Обоснование усовершенствования инфраструктуры путем введения смарт-карт и сервера обновлений WSUS.

9) Обоснование эффективности проекта по экономическим показателям.

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

Целью работы является построение эффективной системы обновления программного обеспечения для повышения уровня его защищенности от несанкционированного доступа на предприятии ООО «Корабли и Люди».

Раздел 1. Аналитическое обозрение методик защиты программного обеспечения

1.1 Анализ средств защиты на этапе программирования

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

1.1.1 Определение процесса обфускации

В зависимости от контекста можно найти различные определения процесса обфускации. Анализируя обфускацию с точки зрения безопасности и описывая преобразование обфускации как " односторонний перевод”, следующее определение было дано в [13]:

Определение 1. Пусть TR-процесс перевода, такой, что переводит исходную программу P в двоичную программу B. TR-это односторонний перевод, когда время, необходимое для восстановления программы P из программы B, больше от конкретной константы T.

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

Наиболее общее доступное определение процесса обфускации можно найти в работах [13] и других, написанных теми же авторами. Согласно их идее процесс обфускации - это превращение компьютерной программы в программу.

Определение 2.2 Пусть T (P) - программа, преобразование программы P. T является запутывающим преобразованием, если T (P) имеет то же наблюдаемое поведение, что и P. Кроме того, T должен следовать условиям:

* если программа P не завершается или завершается с условием ошибки, то T (P) может или не может завершиться

* в противном случае P завершается и T (P) должны завершиться и произвести тот же результат, что и P

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

1.1.2 Таксономия запутывающих преобразований

Основным критерием классификации является цель применения. Здесь были созданы четыре группы, связанные с запутыванием некоторой информации ([25]):

* обфускация макета - его исходная и / или бинарная структура (напр. изменение имен экспортируемых функций в случайных символьных строках)

* запутывание данных - некоторые локальные и глобальные структуры

* контрольная обфускации - основного скелета создания программы

* профилактическая обфускация - защита от декомпиляторов и отладчиков

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

Без сомнения классификация, сделанная Колльбергом, не охватывает все возможности обфускации макета. Причина кроется в специализации разработанного алгоритма 2. Методы кодирования идентификаторов и удаления комментариев описаны достаточно четко, но в категорию ”изменение формата” можно отнести и большее преобразование, применяемое не только к исходному коду, но и к двоичному коду. Для Java-программ это может быть изменение компоновки блоков внутри метода, в то время как для машинного кода двоичной программы типичной была бы модификация исполняемого файла (например. увеличение разделов кода).

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

1. Обфускация хранения и кодирования - изменение представления и способы использования переменных, например:

* разделенные переменные - представление переменной в виде нескольких переменных и сопоставление идентификаторов

* продвижение скаляров к объектам - например, целочисленные переменные для объектов со сложными методами, вместо тривиального сложения или умножения

* преобразование статических данных в процедуру - например значение 1 к формуле b+1-a cos (a+р?b), с предположением, что a = b и оба значения точны

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

* изменение переменной -- например от локальной к глобальной или от локальной к элементу объекта;

2. Агрегирующая обфускация - объединение независимых данных и разделение зависимых данных, например:

* объединение скалярных переменных - хранение в одной согласованной области, запрос изменения в ссылках на эти переменные;

* изменение отношения наследования - например добавление избыточных объектов в уже существующие структуры

* разделение, сгибание, слияние массивов - усложнение доступа к массивам

3. Упорядочивающая обфускация - переупорядочение компоновки внутренних объектов, например:

* переупорядочивание переменных - локальных, глобальных или в структурах (первоначально этот порядок очень редко бывает случайным)

* изменение порядка методов - как они являются частью объектов

* изменить порядок массивов - например, нестандартное представление многомерных массивов

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

В классификации методов обфускации контроля также были созданы три группы преобразований:

1. Обфускация вычислений - изменение основной структуры потока управления, например:

* сводимые к несводимым графам потока - например, вставка конструкций не происходит в языках высокого уровня, [2] с. 606

* расширение условия цикла - добавление условий, не изменяющих поведение программы

* интерпретация таблицы -- например создание простых виртуальных процессов и добавление интерпретаторов псевдокода

2. Агрегация обфускация - разбиение и слияние фрагментов кода, например:

* встроенный метод - вместо вызова метода, независимое запутывание каждой вставленной копии

* общие положения - искусственное создание глобальных процедур

* методы клонирования - аналогично встроенному методу

* развернуть цикл - возможно только для коротких циклов с постоянным счетчиком

3. Упорядочение обфускации - переупорядочение блоков, циклов и выражений, с сохранением зависимостей, например:

* порядок блоков -- например, в инструкции по ветвлению

* переупорядочивание цикла - возможно часто во вложенных циклах

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

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

Помимо такого общего подхода, в исследовании других авторов, например, Чекси Вонг [13], можно найти гораздо более простые классификации, подготовленные для конкретного применения.

Для примера в той же работе запутывающие преобразования классифицируются как:

* внутрипроцессные преобразования

- вырождение потока управления изменением статических ветвей на динамические

- свободная инъекция псевдонимов данных

* Внутрипроцессные преобразовний

- изменение вызовов функций на косвенные вызовы, используя указатели на функции

- создание псевдонимов для указателей функций

- инъекция зависимых от данных псевдонимов между различными процедурами

В этой классификации были выделены методы создания указателей на псевдонимы данных, поскольку было доказано ([13]), что устранение таких конструкций является вычислительно очень сложной задачей.

1.2 Средства защиты на уровне исполняемого кода

Обработка информации в компьютерных системах и сетях - это проблема сегодняшнего дня (и она будет актуальна еще долгое время). В частности, до сих пор не решена задача защиты кода и обрабатываемых данных. Основными задачами программы защиты кода: [31]

1. Предотвращение несанкционированных изменений в алгоритме поведения программы.

2. Защита обрабатываемых данных от незаконного пользователя.

3. Обеспечение защиты программного обеспечения от несанкционированного копирования.

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

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

1. Актуальность защиты программного кода

Существует огромное поле деятельности для хакеров в области алгоритма изменения поведения программ. Дело в том, что большая часть программного кода находится в открытом виде, т. е. имеет вид либо машинного кода, либо какого-то промежуточного байт-кода (ассемблерной программы), выполняемого виртуальной машиной. [31]

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

На сегодняшний день существует не одно решение шифрования кода приложения, позволяющее обезопасить его от разборки, а для подключения к донглу, например, Aladdin - широко известный и самый популярный способ шифрования. Принцип состоит в кодировке важных разделы кода так, чтобы они могли быть правильно декодированы только через законно полученный ключ. Приложение без ключа перестает работать или работать во время ознакомительной версии. Алгоритм кодирования будет проверкой законного использования. Условный переход, IF “decoded_correct “ THEN ... - это просто формальность, которая вызовет нарушение прав доступа при выполнении неправильно декодированной области. Криптоприложение остается уязвимым для атаки, когда злоумышленник покупает лицензионную копию и запускает ее, удаляет из памяти дамп декодированной версии. Следовательно, сразу после выполнения декодированной области приложения требуется закодировать ее снова, либо вернуться к предварительно сохраненной зашифрованной части. Взломщик будет иметь единственную возможность поймать момент, когда в памяти выполняется декодированная часть, сохранить рабочий код приложения и продолжать действовать таким образом, в конечном итоге собирая приложение в целое по частям, но это ручная тяжелая работа, особенно если вы предоставляете большое количество небольших областей кода, с его последовательным декодированием. Борьба с этим видом атаки заключается в максимально возможном количестве закодированных секций, заменяющих их в каждой новой версии системы [31].

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

* неэффективный код;

* отложенный нерабочий код (от нескольких секунд до нескольких часов или дней);

* неправильное поведение кода;

* преднамеренно неправильное поведение кода;

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

2. Обеспечение целостности кода и данных

Существует несколько решений для обеспечения безопасности ПК.

Во-первых, используйте исполняемые упаковщики, такие как UPX [3]. Однако он останавливает только неопытного взломщика. Распаковка подписи, прикрепленной в начале файла, легко распознается как вручную, так и автоматически, следовательно, обратный процесс приведения кода в исходную свободную форму легко выполняется.

Во-вторых, часто используются специальные средства, такие как, AS Protect-система программной защиты приложений от несанкционированного копирования, предназначенная для быстрого выполнения функций защиты приложений, особенно ориентированных на разработчиков программного обеспечения [31]. Такая защита часто пишется разработчиком вручную, и как следствие, ее уровень еще хуже, потому что написание защиты требует как минимум минимальной квалификации в области написания защиты программного обеспечения. Основные схемы таких инструментов можно увидеть на рис. 1.1.

Рис.1.1 - Схематическое изображение инструментов защиты кода (а - защита вне программы, б - защита внутри программы, в - защита распределена внутри программы)

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

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

Виртуальная машина (en virtual machine)-это программная или аппаратная среда, выполняющая какой-либо код (например, байт-код с распараллеленным выполнением кода, p-код или машинный код реального процессора) или спецификацию такой системы [31].

Основная суть идеи-концепция виртуальной машины, выполняющей потоковый код, в сочетании с ее динамическим шифрованием / дешифрованием на лету (OTFE) (Рис.1.2).

Рис.1.2 - Блок-схема виртуальной машины с динамическим шифрованием на лету

Основная идея программы с использованием многопоточности - массив вызовы подпрограмм (рис. 1.2). Реализация потокового кода, способ хранения этих вызовов могут быть разными. Этот код может быть обработан интерпретатором (что было подтверждено в названии адреса интерпретатора), или может представлять собой простую последовательность машинных инструкций вызова подпрограммы. Некоторый набор базовых подпрограмм виртуальной машины с использованием многопоточного кода реализованы в виде подпрограмм, написанных на обычном нативном языке [6].

Таким образом, сохраняется скорость выполнения программного кода и одновременно повышается его безопасность. Теоретически, выполнение расшифровки только одной инструкции в "момент времени" помогает защитить код с вероятностью p = 100% . Другими словами, в памяти компьютера в данный момент времени ti будет одна инструкция ki. Это сделает обратное проектирование кода невозможным.

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

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

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

1.3 Обзор средств защиты от копирования с лицензионного носителя

Защита от копирования, также известная как защита контента, предотвращение копирования и ограничение копирования, - это любые усилия, направленные на предотвращение воспроизведения программного обеспечения, фильмов, музыки и других носителей, как правило, по причинам авторского права.[1] были разработаны различные методы предотвращения размножения, чтобы компании получали выгоду от каждого человека, который получает авторизованную копию своего продукта. Несанкционированное копирование и распространение составило 2,4 миллиарда долларов в потерянных доходах только в Соединенных Штатах в 1990-х годах [2] и, как предполагается, оказывает влияние на доходы в музыкальной и игровой индустрии, что приводит к предложению более строгих законов об авторских правах, таких как PIPA. Некоторые методы защиты от копирования также вызвали критику, потому что это вызвало неудобства для честных потребителей, или он тайно установил дополнительное или нежелательное программное обеспечение для обнаружения копирования деятельности на компьютере потребителя. Обеспечение эффективной защиты от копирования при одновременной защите прав потребителей по-прежнему является одной из постоянных проблем, связанных с публикациями в средствах массовой информации.

С технической точки зрения, казалось бы, теоретически невозможно полностью запретить пользователям делать копии приобретаемых ими носителей, пока доступно записывающее устройство, которое может писать на пустые носители. Основной технический факт заключается в том, что для всех типов носителей требуется "плеер" -- CD-плеер, DVD-плеер, видеоплеер, компьютер или игровая приставка. Игрок должен уметь читать медиа, чтобы показать его человеку. В свою очередь, логически можно построить плеер, который сначала считывает носитель, а затем записывает точную копию того, что было прочитано, на тот же тип носителя.

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

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

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

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

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

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

Идентификатор устройства, в частности привязка копии программного обеспечения к компьютеру или мобильному устройству на основе уникального идентификатора, известного только этому устройству (например, IMEI смартфона).

Чтобы ограничить повторное использование ключей активации для установки программного обеспечения на нескольких машинах, была предпринята попытка привязать установленное программное обеспечение к определенной машине, используя некоторые уникальные функции машины. Серийный номер в ПЗУ не может быть использован, потому что некоторые машины не имеют их. Некоторые популярные суррогаты для серийного номера машины были дата и время (до второго) инициализации жесткого диска или MAC-адрес карт Ethernet (хотя это программируется на современных картах). Однако с ростом виртуализации практика блокировки должна добавить к этим простым аппаратным параметрам еще такие, что предотвращают копирование.[14] Другим подходом к связыванию пользователя и/или машины с серийным номером является активация продукта через Интернет, где пользователи должны иметь доступ к Интернету, поэтому информация о том, какой серийный номер установлен на какой машине, отправляется на сервер для аутентификации. Неавторизованные пользователи не могут устанавливать или использовать программное обеспечение. Система Microsoft Windows Genuine Advantage является далеко идущим примером этого. С ростом облачных вычислений, требующих доступа в Интернет становится все более популярным для проверки программного обеспечения. Помимо онлайн-аутентификации, автономное программное обеспечение может быть интегрировано с облаком, так что ключевые данные или код хранятся в интернете. Это может значительно усилить защиту; например, программное обеспечение может хранить файл свойств или выполнять процесс, необходимый приложению в облаке, а не на компьютере пользователя.

1.4 Аппаратные средства защиты ПО от несанкционированного использования

1.4.1 Аппаратные брандмауэры

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

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

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

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

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

Приведем основные различия между программными и аппаратными брандмауэрами.

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

Аппаратный Брандмауэр:

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

Программное и аппаратное обеспечение хорошо протестированы для работы друг с другом.

ASIC (применение конкретных интегральных схем) может ускорить конкретные функции брандмауэра / IDS (система обнаружения вторжений) / IPS (система предотвращения вторжений). Это может быть очень выгодно для встроенного сетевого оборудования, поскольку это не приводит к увеличению времени простоя.

Низкое техническое обслуживание в первые годы.

Высокий уровень первоначальных вложений.

Программный брандмауэр:

Меньшая стоимость.

Возможность настроить аппаратное обеспечение в соответствии с требованием, или можно то же самое получить на виртуальной машине.

Если подобрать правильное программное обеспечение, можно получить большой список функций.

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

Низкие первоначальные вложения.

Высокие начальные цены изготовления на заказ / конфигурации.

1.4.2 Смарт-карты

Смарт-карта, чип-карта или карта интегральной схемы (ICC) - это физическое электронное устройство авторизации, используемое для управления доступом к ресурсу. Это, как правило, пластиковая кредитная карта размером карты со встроенной интегральной схемой.[1] Многие смарт-карты включают в себя шаблон металлических контактов для электрического подключения к внутренней микросхеме. Другие бесконтактны, а некоторые бывают обоих типов. Смарт-карты могут обеспечить личную идентификацию, аутентификацию, хранение данных и обработку приложений. Область применения включает в себя идентификацию, финансовые, мобильные телефоны (SIM), общественный транспорт, компьютерную безопасность, школы и здравоохранение. Смарт-карты могут обеспечить надежную проверку подлинности безопасности для единого входа (SSO) в организациях. Некоторые страны развернули систему смарт-карты для идентификации всего своего населения.[30]

Смарт-карта может иметь следующие общие характеристики:

Размеры похожи на размеры кредитной карты. ID-1 стандарта ISO / IEC 7810 определяет карты как номинально 85,60 на 53,98 миллиметра (3,37 дюйма Ч 2,13 дюйма). Другой популярный размер-ID-000, который номинально составляет 25 на 15 миллиметров (0,98 дюйма Ч 0,59 дюйма) (обычно используется в SIM-картах). Оба имеют толщину 0,76 миллиметра (0,030 дюйма).[30]

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

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

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

Смарт-карты, как правило, изготавливаются из пластика, как правило, поливинилхлорида, но иногда полиэтилен-терефталат на основе полиэфиров, акрилонитрилбутадиенстирола или поликарбоната.

С апреля 2009 года японская компания выпускает многоразовые финансовые смарт-карты, изготовленные из бумаги.[30]

Контактные смарт-карты

Контактные смарт-карты имеют площадь контакта приблизительно 1 квадратный сантиметр (0,16 кв. дюйма), состоящий из нескольких позолоченных контактных площадок. Эти колодки обеспечивают электрическую связь при вставке в считыватель, который используется в качестве средства связи между смарт-картой и хостом (например, компьютером, терминалом точки продажи) или мобильным телефоном. Карты не содержат батареек; питание подается от устройства чтения карт.

Серии стандартов ISO/IEC 7810 и ISO/IEC 7816 определяют:

- конструктивную форму и характеристики;

- положения и формы электрических соединителей;

- электрические характеристики,

- протоколы связи, включая команды, отправленные на карту, и ответы с нее;

- базовую функциональность.[30]

Поскольку чипы в финансовых картах такие же, как те, которые используются в модулях идентификации абонентов (SIM) в мобильных телефонах, запрограммированные по-разному и встроенных в другой кусок ПВХ, производители чипов создают более требовательные стандарты GSM/3G. Так, например, хотя стандарт EMV позволяет чип-карте извлекать 50 мА из своего терминала, в телефонной отрасли карты обычно значительно ниже предела 6 мА. Это позволяет использовать меньшие и более дешевые терминалы финансовых карт.

Протоколы связи для контактных смарт-карт включают T=0 (протокол передачи на уровне символов, определенный в ISO/IEC 7816-3) и T=1 (протокол передачи на уровне блоков, определенный в ISO/IEC 7816-3).

Бесконтактные смарт-карты

Бесконтактные смарт-карты связывают с и приведены в действие читателем через технологию индукции RF (на тарифах данных 106-848 kbit/s). Эти карты требуют только близости к антенне для связи. Как и смарт-карты с контактами, бесконтактные карты не имеют внутреннего источника питания. Вместо этого они используют индуктор, чтобы захватить часть падающего радиочастотного сигнала опроса, исправить его и использовать для питания электроники карты. Бесконтактные умные смарт-карты можно сделать из ПВХ, бумаги/картона и полиэстера для того чтобы соотвествовать различным представления, цены и стойкости.[30]

Передача APDU с помощью бесконтактного интерфейса, определена в ИСО/МЭК 14443-4.

Гибридизация

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

Гибридные карты реализуют бесконтактные и контактные интерфейсы на одной карте с выделенными модулями / хранения и обработки.

Сдвоенный интерфейс

Двухинтерфейсные карты реализуют бесконтактные и контактные интерфейсы на одной карте с некоторым общим хранилищем и обработкой. Примером может служить многофункциональная транспортная карта Porto, называемая Andante, которая использует чип с контактным и бесконтактным (ISO/IEC 14443 Type B) интерфейсами.

USB

CCID (Chip Card Interface Device) - это протокол USB, который позволяет подключать смарт-карту к компьютеру, используя стандартный интерфейс USB. Это позволяет использовать смарт-карту в качестве маркера безопасности для проверки подлинности и шифрования данных, таких как Bitlocker. Типичный CCID-это USB-ключ и может содержать SIM-карту.[30]

Смарт-карты можно использовать в качестве маркера безопасности.

Веб-браузер Firefox Mozilla может использовать смарт-карты для хранения сертификатов для использования для безопасного просмотра веб-страниц.[30]

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

GnuPG, известный набор шифрования, также поддерживает хранение ключей на смарт-карте.[30]

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

1.4.3 Биометрические устройства

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

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

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

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

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

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

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

Системы проверки личной подписи

Это одна из наиболее признанных [6] и приемлемых биометрических характеристик в корпоративной среде. Эта проверка была сделана еще на один шаг вперед путем захвата подписи, принимая во внимание многие параметры, сопровождающие процесс подписи, такие как давление, оказываемое при подписании, скорость движения руки и угол между поверхностью и ручкой, используемой для создания подписи. Эта система также имеет возможность учиться у пользователей, так как стили подписей для одного и того же пользователя различаются. Следовательно, взяв образец данных, эта система способна повысить собственную точность.

Система распознавания радужной оболочки

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

Проблемы с современными биометрическими устройствами:

1) Биометрический спуфинг

Использование тонкой пудры и кисти для выявления и копирования отпечатков пальцев

Биометрическая подделка - это метод обмана [7] системы управления биометрической идентификацией, в которой перед биометрическим сканером представлена поддельная форма. Эта поддельная форма имитирует уникальные биометрические характеристики человека, чтобы запутать систему между артефактом и реальной биологической целью и получить доступ к конфиденциальным данным / материалам.

Один из таких громких случаев подделки биометрических данных стал известен, когда выяснилось, что отпечаток пальца министра обороны Германии Урсулы фон дер Лейен был успешно воспроизведен [8] Chaos Computer Club. Группа использовала высококачественные объективы камер и снимала изображения с 6 футов. Они использовали профессиональное программное обеспечение для отпечатков пальцев и нанесли на карту контуры отпечатка пальца министров. Хотя был достигнут прогресс, чтобы остановить спуфинг. Используя принцип пульсовой оксиметрии [9] - для получения параметров организма испытуемого измеряется оксигенация крови и частота сердечных сокращений. Это уменьшает количество атак, подобных упомянутым выше, хотя эти методы коммерчески неприменимы, так как затраты на внедрение высоки. Это уменьшает их применение в реальном мире и, следовательно, делает небезопасной биометрию, пока эти методы не станут коммерчески жизнеспособными.

2) Точность является серьезной проблемой при биометрическом распознавании. Пароли по-прежнему чрезвычайно популярны, потому что пароль статичен по своей природе, в то время как биометрические данные могут подвергаться изменениям (таким как голос может становится тяжелее или несчастному случаю на лице, что может привести к неправильному чтению данных сканирования лица). При тестировании распознавания голоса в качестве замены для систем на основе PIN-кода Barclays сообщил [10], что их система распознавания голоса на 95 процентов точна. Эта статистика означает, что многие голоса клиентов могут быть не распознаны, даже если они верны. Эта неопределенность, вращающаяся вокруг системы, может привести к более медленному внедрению биометрических устройств, продолжая полагаться на традиционные методы, основанные на паролях.

Преимущества биометрических устройств перед традиционными методами аутентификации

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

Пароли могут быть забыты, и их восстановление может занять некоторое время, в то время как биометрические устройства полагаются на биометрические данные, которые, как правило, являются уникальными для человека, поэтому нет риска забыть данные аутентификации. Исследование, проведенное среди пользователей Yahoo! обнаружило, что, по крайней мере 1,5% [12] пользователей Yahoo каждый месяц забывают свои пароли, поэтому это делает доступ к услугам более длительным для потребителей, поскольку процесс восстановления паролей занимает много времени. Эти недостатки делают биометрические устройства более эффективными и сокращают усилия конечного пользователя.

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.