Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ИМ. А.Н. ТУПОЛЕВА

ФАКУЛЬТЕТ ТЕХНИЧЕСКОЙ КИБЕРНЕТИКИ И ИНФОРМАТИКИ

Кафедра Систем информационной безопасности

 

 

АНИКИН И.В.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

ПО ВЫПОЛНЕНИЮ КУРСОВОЙ РАБОТЫ

ПО ДИСЦИПЛИНЕ

" ПРОГРАММНО-АППАРАТНАЯ ЗАЩИТА ИНФОРМАЦИИ"

 

 

ТЕМА КУРСОВОЙ РАБОТЫ: «Исследование качества защиты программного продукта средствами статического и динамического исследования. Осуществление «мягкого» и «жесткого» взлома. Формирование рекомендаций по защите программного продукта»

 

 

Направление 090100 «Информационная безопасность»

 

Специальность 090103 «Организация и технология защиты информации»

 

Казань 2008

 


Постановка задачи на курсовую работу

«Исследование качества защиты программного продукта средствами статического и динамического исследования. Осуществление «мягкого» и «жесткого» взлома. Формирование рекомендаций по защите программного продукта»

ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ

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

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

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

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

Таблица 1. Угрозы и их реализация.

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

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

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

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

Анализ кода программы в значительной степени затрудняется тем, что производится анализ не исходного текста программы на языке высокого уровня, а анализ машинного кода, сформированного компилятором. На разборку и понимание такого кода уходит значительное время даже у специалистов высокого класса в данной области. Зачастую даже анализ исходных текстов программы, написанных другим человеком, является нетривиальной задачей. Анализ же машинного кода усложняет уже задачу в тысячи раз. Недостаточно провести анализ каждой машинной команды. Как правило, при анализе машинного кода приходится увязывать в единую последовательность действий как минимум 80-100 байт, чтобы понять, что действительно сокрыто за данной последовательностью кодов. Это очень усложняет анализ программы.

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

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

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

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

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

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

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

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

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

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

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

Рис. 1. Классификация средств обратного проектирования.

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

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

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

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

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

1. Проверка правильности введенной ключевой информации при регистрации программного продукта.

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

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.