Целью работы является защита бинарных исполняемых файлов в ОС Windows с использованием самомодифицирующегося кода. Предметом исследования являются современные методы защиты от эксплуатации бинарных исполняемых файлов в ОС Windows. Задачи, решаемые в ходе исследования:
1. Проведение анализа бинарных уязвимостей ПО и способов их эксплуатации в ОС Windows.
2. Исследование существующих подходов к защите от эксплуатации бинарных уязвимостей и способов их обхода.
3. Разработка метода защиты от попыток эксплуатации уязвимостей на основе самомодифицирующегося кода.
4. Реализация прототипа программного средства, реализующего предложенный метод и оценка его эффективности.
В ходе работы были исследованы архитектура и реализация защитных механизмов защиты от бинарной эксплуатации в ОС Windows. Были проанализированы современные исследования в области обеспечения безопасности бинарных исполняемых файлов в ОС Windows.
В результате работы было разработано средство защиты программных дефектов в бинарных исполняемых файлах ОС Windows на основе самомодифицирующегося кода, была продемонстрирована эффективность средства.
Полученные результаты могут быть использованы в качестве основы для проектирования средств защиты бинарных исполняемых файлов на основе самомодифицирующегося кода.
СОДЕРЖАНИЕ
Введение............................................................................................................ 7
1 Проблема безопасности в бинарных исполняемых файлах………. 10
1.1 Анализ принципов разработки ПО на низкоуровневых языках
программирования........................................ .......................................10
1.2 Перечень уязвимостей в бинарных исполняемых файлах………… 11
1.3 Выводы ................................................................................................. 15
2 Современные методы защиты от эксплуатации уязвимостей в
бинарном исполняемом файле............................................................16
2.1 Методы защиты от эксплуатации в ОС Windows………………….. 16
2.1.1 Встроенные механизмы защиты ОС Windows……………………... 16
2.1.2 Встроенные механизмы защиты от бинарной эксплуатации в
языках программирования…………………………………………...19
2.2 Недостатки современных методов защиты от эксплуатации
уязвимостей в бинарных исполняемых файлах ОС Windows……..20
2.3 Методы усложнения процесса выявления уязвимостей и их
эксплуатации…………………………………………………………23
2.3.1 Обфускация кода…………………………………………………….. 23
2.3.2 Виртуализация кода…………………………………………………. 25
2.3.3 Обфускация строк…………………………………………………… 26
2.3.4 Воздействие на поток управления………………………………….. 26
2.4 Выводы……………………………………………………………….. 27
3 Разработка метода защиты от эксплуатации уязвимостей в
бинарном исполняемых файлах ОС Windows на основе
самомодифицирующегося кода……………………………………...28
3.1 Самомодифицирующийся код и полиморфизм……………………. 28
3.1.1 Классификация методов модификации кода………………………. 28
3.1.2 Использование самомодифицирующегося кода в защите и
кибербезопасности……………………………………………………29
3.1.3 Полиморфизм исполняемых файлов………………………………... 30
3.2 Разработка метода защиты от эксплуатации уязвимостей в
бинарных исполняемых файлах на основе SMC…………………...31
3.2.1 Оказание воздействия на граф потока управления………………... 31
3.2.2 Добавление мусорных переменных в стек функции………………. 35
3.2.3 Внедрение Stack Canary……………………………………………... 37
3.2.4 Защита адреса возврата функции…………………………………… 39
3.3 Выводы……………………………………………………………….. 42
4 Реализация разработанного метода защиты от эксплуатации в
бинарных исполняемых файлах на основе SMC…………………...43
4.1 Программная реализация прототипа……………………………….. 43
4.1.1 Реализация добавления мусорных переменных в стек……………. 43
4.1.2 Реализация внедрения stack canary…………………………………. 45
4.1.3 Реализация оказания воздействия на граф потока управления…… 46
4.1.4 Реализация защиты адреса возврата функции……………………... 48
4.2 Оценка эффективности и сравнение методов……………………… 49
4.3 Выводы……………………………………………………………….. 52
Заключение....................................................................................................... 53
Список использованных источников............................................................. 55
Приложение 1. SecRetAddr.cpp....................................................................... 58
Приложение 2. SelfHackingApp.cpp................................................................ 61
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Nicula ., Zota R. D. Exploiting stack-based buffer overflow using modern day techniques //Procedia Computer Science. – 2019. – Т. 160. – С. 9-14.
2. Вахрушев И. А. и др. Метод поиска уязвимости форматной строки //Труды Института системного программирования РАН. – 2015. – Т. 27. – №. 4. – С. 23-38.
3. Touili T., Ye X. Reachability Analysis of Self Modifying Code //International Journal of Foundations of Computer Science. – 2023. – Т. 34. – №. 05. – С. 507-536.
4. Botacin M., Zanata M., Grеgio A. The self modifying code (smc)-aware processor (sap): a security look on architectural impact and support //Journal of Computer Virology and Hacking Techniques. – 2020. – Т. 16. – С. 185- 196.
5. Sayeed S. et al. Control-flow integrity: Attacks and protections //Applied Sciences. – 2019. – Т. 9. – №. 20. – С. 4229.
всего 21 источник