Технология дизассемблирования программного обеспечения




СОДЕРЖАНИЕ

Введение. 2

1 Исследование уязвимостей операционных систем и сред. 3

1.1 Технология дизассемблирования программного обеспечения. 5

1.2 Хэш-сумма как единица целостности. 7

2 Практическая часть. 8

2.1 Сбор информации о жертве. 9

2.2 Поиск уязвимости. 11

2.3 Взлом программного обеспечения. 16

2.4 Основные ошибки допущенные разработчиками. 25

Заключение. 26

 


Введение

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

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

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

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


Исследование уязвимостей операционных систем и сред

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

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

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

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

 

Отладчиком называют специальное программное обеспечение, посредством которого разработчик может провести поэтапную диагностику работы. В качестве примера можно привести отладчик «OllyDBG» (Рисунок 1).

Рисунок 1 – Интерфейс программы «OllyDBG»


Технология дизассемблирования программного обеспечения

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

Рисунок 2 – Шестнадцатеричное представление бинарного файла

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

Рисунок 3 – Интерфейс дизассемблера IDA PRO

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




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: