АРХИТЕКТУРА MORPHEUS-X: МНОГОУРОВНЕВАЯ АППАРАТНО-ПРОГРАММНАЯ ЗАЩИТА ОТ ROP- И JOP-АТАК НА ОСНОВЕ ДИНАМИЧЕСКОГО ПЕРЕСТРОЕНИЯ СОСТОЯНИЯ

Михаил П. Григорьев

Аннотация


Рассматривается задача повышения устойчивости программных модулей к атакам повторного использования кода (code-reuse attacks), прежде всего к возвратно-ориентированному программированию (ROP) и переходно-ориентированному программированию (JOP). В отличие от классической инъекции кода, при таких атаках вредоносная последовательность действий формируется из фрагментов уже присутствующего машинного кода. Благодаря этому они остаются осуществимыми даже при запрете исполнения данных и частичной рандомизации адресного пространства. Предлагается архитектура Morpheus-X, развивающая подход динамически перестраиваемой защиты (moving target defense, MTD) за счёт периодического обновления состояния системы. Архитектура включает следующие компоненты: (1) многоверсионность кода и менеджер версий (CVM); (2) контекстно-зависимое шифрование кодовых указателей и метаданных; (3) исполнение кода из зашифрованной памяти в режиме исполнения без чтения (execute-only); (4) механизм контекстной привязки потока управления, при котором корректность расшифровки определяется предыдущей точкой перехода; (5) детектор паттернов ROP и JOP, используемый для ускоренного обновления состояния. Показано, что такое сочетание механизмов сокращает период, в течение которого ранее выявленные гаджеты и адреса сохраняют пригодность для атаки, и тем самым затрудняет построение длинных цепочек ROP и JOP. В работе также представлены модель угроз, ограничения предлагаемого подхода и методика оценки его накладных расходов и совместимости.

Ключевые слова


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

Полный текст:

PDF

Литература


1. Shacham H. The Geometry of Innocent Flesh on the Bone: Return-into-libc without Function Calls (on the x86). Proceedings of the 14th ACM Conference on Computer and Communications Security (CCS ’07). 2007. DOI: https://doi.org/10.1145/1315245.1315313.
2. Roemer R., Buchanan E., Shacham H., Savage S. Return-Oriented Programming: Systems, Languages, and Applications. ACM Transactions on Information and System Security. 2012, v. 15, no. 1. DOI: https://doi.org/10.1145/2133375.2133377.
3. Checkoway S., Davi L., Dmitrienko A., Sadeghi A.-R., Shacham H., Winandy M. Return-Oriented Programming without Returns. Proceedings of the 17th ACM Conference on Computer and Communications Security (CCS ’10). 2010. DOI: https://doi.org/10.1145/1866307.1866370.
4. Bletsch T., Jiang X., Freeh V. W., Liang Z. Jump-Oriented Programming: A New Class of Code-Reuse Attack. Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security (ASIACCS ’11). 2011. DOI: https://doi.org/10.1145/1966913.1966919.
5. Abadi M., Budiu M., Erlingsson Ú., Ligatti J. Control-Flow Integrity. Proceedings of the 12th ACM Conference on Computer and Communications Security (CCS ’05). 2005. DOI: https://doi.org/10.1145/1102120.1102165.
6. Carlini N., et al. Control-Flow Bending: On the Effectiveness of Control-Flow Integrity. Proceedings of the 24th USENIX Security Symposium. 2015. DOI: https://dl.acm.org/doi/10.5555/2831143.2831154.
7. Schuster F., Tendyck T., Liebchen C., Davi L., Sadeghi A.-R., Holz T. Counterfeit Object-Oriented Programming: On the Difficulty of Preventing Code Reuse Attacks in C++ Applications. IEEE Symposium on Security and Privacy. 2015. DOI: https://doi.org/10.1109/SP.2015.51.
8. Crane S., et al. Readactor: Practical Code Randomization Resilient to Memory Disclosure. IEEE Symposium on Security and Privacy. 2015. DOI: https://doi.org/10.1109/SP.2015.52.
9. Werner M., et al. No-Execute-After-Read: Preventing Code Disclosure in Commodity Software. Proceedings of the 11th ACM Symposium on Information, Computer and Communications Security (ASIACCS ’16). 2016. DOI: https://doi.org/10.1145/2897845.2897891.
10. Sullivan G., et al. Protecting COTS Binaries from Disclosure-Guided Code Reuse Attacks. Proceedings of the 2017 ACM Conference on Computer and Communications Security (CCS ’17). 2017. DOI: https://doi.org/10.1145/3134600.3134634.
11. Barrantes E. G., Ackley D. H., Forrest S., Palmer T. S., Stefanovic D., Zovi D. D. Randomized Instruction Set Emulation to Disrupt Binary Code Injection Attacks. Proceedings of the 10th ACM Conference on Computer and Communications Security (CCS ’03). 2003. DOI: https://doi.org/10.1145/948109.948147.
12. Lei C., Ma D., Zhang H. Moving Target Defense Techniques: A Survey. Security and Communication Networks. 2018. Article ID 3759626. DOI: https://doi.org/10.1155/2018/3759626.
13. Zheng J., Namin A. S. A Survey on the Moving Target Defense Strategies: An Architectural Perspective. Journal of Computer Science and Technology. 2019, v. 34, no. 1, p. 207-233. DOI: https://doi.org/10.1007/s11390-019-1906-z.
14. Gallagher M., et al. Morpheus: A Vulnerability-Tolerant Secure Architecture Based on Ensembles of Moving Target Defenses with Churn. Proceedings of the 24th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 2019. DOI: https://doi.org/10.1145/3297858.3304037.
15. Harris A., et al. Morpheus II: A RISC-V Security Extension for Protecting Vulnerable Software and Hardware. IEEE International Symposium on Hardware Oriented Security and Trust (HOST). 2021. DOI: https://doi.org/10.1109/HOST49136.2021.9702275.
16. Beaulieu R., et al. The SIMON and SPECK Families of Lightweight Block Ciphers. Proceedings of the 52nd ACM/EDAC/IEEE Design Automation Conference (DAC ’15). 2015. DOI: https://doi.org/10.1145/2744769.2747946.
17. Schink M., Obermaier J. Taking a Look into Execute-Only Memory. 13th USENIX Workshop on Offensive Technologies (WOOT ’19). 2019. URL: https://www.usenix.org/conference/woot19/presentation/schink (accessed: 27.02.2026).
18. Göktaş E., Razavi K., Portokalidis G., Bos H., Giuffrida C. Speculative Probing: Hacking Blind in the Spectre Era. Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security (CCS ’20). 2020. DOI: https://doi.org/10.1145/3372297.3417289.
19. Maisuradze G., Backes M., Rossow C. What Cannot Be Read, Cannot Be Leveraged? Revisiting Assumptions of JIT-ROP Defenses. 25th USENIX Security Symposium (USENIX Security ’16). 2016. URL: https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/maisuradze (accessed: 27.02.2026).
20. Shanbhogue V., Gupta D., Sahita R. Security Analysis of Processor Instruction Set Architecture for Enforcing Control-Flow Integrity. Proceedings of the 8th International Workshop on Hardware and Architectural Support for Security and Privacy (HASP ’19). 2019. DOI: https://doi.org/10.1145/3337167.3337175.
21. Xie M., Wu C., Zhang Y., Xu J., Lai Y., Kang Y., Wang W., Wang Z. CETIS: Retrofitting Intel CET for Generic and Efficient Intra-process Memory Isolation. Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security (CCS ’22). 2022. DOI: https://doi.org/10.1145/3548606.3559344.
22. Gaidis A.J., Moreira J., Sun K., Milburn A., Atlidakis V., Kemerlis V.P. FineIBT: Fine-grain Control-flow Enforcement with Indirect Branch Tracking. Proceedings of the 26th International Symposium on Research in Attacks, Intrusions and Defenses (RAID ’23). 2023. DOI: https://doi.org/10.1145/3607199.3607219.
23. Вишняков А.В. Классификация ROP гаджетов. Труды Института системного программирования РАН. 2016;28(6):27-36. DOI: https://doi.org/10.15514/ISPRAS-2016-28(6)-2.
Vishnyakov A.V. Classification of ROP gadgets. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2016;28(6):27-36. DOI: https://doi.org/10.15514/ISPRAS-2016-28(6)-2 (in Russian).
24. Вишняков А.В., Нурмухаметов А.Р., Курмангалеев Ш.Ф., Гайсарян С.С. Метод анализа атак повторного использования кода. Труды Института системного программирования РАН. 2018;30(5):31-54. DOI: https://doi.org/10.15514/ISPRAS-2018-30(5)-2.
Vishnyakov A.V., Nurmukhametov A.R., Kurmangaleev Sh.F., Gaisaryan S.S. Method for analysis of code-reuse attacks. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2018;30(5):31-54. DOI: https://doi.org/10.15514/ISPRAS-2018-30(5)-2 (in Russian).
25. Лубкин И.А., Золотарев В.В. Комплексная система защиты от уязвимостей, основанных на возвратно-ориентированном программировании. Информатика и автоматизация. 2022, т. 21, № 2, с. 275-310. DOI: https://doi.org/10.15622/ia.21.2.3.
Lubkin I.A., Zolotarev V.V. Comprehensive defense system against vulnerabilities based on return-oriented programming. Informatics and Automation. 2022;21(2):275–310. DOI: https://doi.org/10.15622/ia.21.2.3 (in Russian).
26. Дураковский, А., Пономарев, С. (2015). Модель системы противодействия программным средствам изучения кода. Безопасность информационных технологий, 22(1). URL: https://bit.spels.ru/index.php/bit/article/view/125 (дата обращения: 27.02.2026).
Durakovskiy, A., Ponomarev, S. (2015). The Model of System to Counter to Software Tools Learning Code. IT Security (Russia), 22(1). URL: https://bit.spels.ru/index.php/bit/article/view/125 (accessed: 27.02.2026) (in Russian).
27. Зегжда, Д., Жуков, И. (2021). Особенности обеспечения информационной безопасности вычислительных систем. Безопасность информационных технологий, 28(1), 42-61. DOI: http://dx.doi.org/10.26583/bit.2021.1.04. EDN: ETQPVN.
Zegzhda, D., Zhukov, I. (2021). Features of information security of computer systems. IT Security (Russia), 28(1), 42-61. DOI: https://doi.org/10.26583/bit.2021.1.04. EDN: ETQPVN (in Russian).




DOI: http://dx.doi.org/10.26583/bit.2026.3.02

Ссылки

  • На текущий момент ссылки отсутствуют.


Лицензия Creative Commons
Это произведение доступно по лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная.