Методология реверс-инжиниринга машинного кода. Часть 2. Статическое исследование
https://doi.org/10.31854/1813-324X-2023-9-6-68-82
Аннотация
Изложены результаты создания единой методологии проведения реверс-инжиниринга машинного кода устройств. Данная, вторая часть цикла статей посвящена статическому исследованию кода с целью восстановления его метаинформации (исходного кода, алгоритмов, архитектуры, концептуальной модели), а также поиска в нем уязвимостей. Проводится обзор научных публикаций на тему существующих методов и средств статического анализа машинного кода. Дается детальное описание и формализация шагов этапа, а также примеры их применения на практике. Частичная схема предлагаемой методологии приводится в графическом виде с указанием получаемых основных и промежуточных результатов.
Об авторе
К. Е. ИзраиловРоссия
кандидат технических наук, доцент, старший научный сотрудник лаборатории проблем компьютерной безопасности Санкт-Петербургского Федерального исследовательского центра Российской академии наук
Список литературы
1. Израилов К.Е. Методология проведения реверс-инжиниринга машинного кода. Часть 1. Подготовка объекта исследования // Труды учебных заведений связи. 2023. Т. 9. № 5. С. 79‒90. DOI:10.31854/1813-324X-2023-9-5-79-90
2. Падарян В.А., Гетьман А.И., Соловьев М.А., Бакулин М.Г., Борзилов А.И., Каушан В.В. Методы и программные средства, поддерживающие комбинированный анализ бинарного кода // Труды Института системного программирования РАН. 2014. Т. 26. № 1. С. 251–276.
3. Бугеря А.Б., Ефимов В.Ю., Кулагин И.И., Падарян В.А., Соловьев М.А., Тихонов А.Ю. Программный комплекс для выявления недекларированных возможностей в условиях отсутствия исходного кода // Труды Института системного программирования РАН. 2019. Т. 31. № 6. С. 33–64. DOI:10.15514/ISPRAS-2019-31(6)-3
4. Долгова К.Н., Чернов А.В., Деревенец Е.О. Методы и алгоритмы восстановления программ на языке ассемблера в программы на языке высокого уровня // Проблемы информационной безопасности. Компьютерные системы. 2008. № 3. С. 54–68.
5. Новиков В.А., Ломако А.Г., Еремеев М.А., Петренко А.С. Выявление и нейтрализация недекларированных возможностей программ // Proceedings of the 2017 Symposium on Cybersecurity of the Digital Economy (CDE'17, Иннополис, Россия, 19–20 сентября 2017). Санкт-Петербург: Издательский Дом «Афина», 2017. С. 284–287.
6. Ревнивых А.В., Велижанин А.С. Методика автоматизированного формирования структуры дизассемблированного листинга // Кибернетика и программирование. 2019. № 2. С. 1–16. DOI:10.25136/2306-4196.2019.2.28272
7. Bhardwaj V., Kukreja V., Sharma C., Kansal I., Popali R. Reverse Engineering-A Method for Analyzing Malicious Code Behavior // Proceedings of the International Conference on Advances in Computing, Communication, and Control (ICAC3, Mumbai, India, 03–04 December 2021). IEEE, 2022. PP. 1–5. DOI:10.1109/ICAC353642.2021.9697150
8. Черчесов А.Э. Фазы загрузки UEFI и способы контроля исполняемых образов // Вопросы защиты информации. 2018. № 2(121). С. 51–53.
9. Zhang D., Zhang Z., Jiang B., Tse T.H. The Impact of Lightweight Disassembler on Malware Detection: An Empirical Study // Proceedings of the 42nd Annual Computer Software and Applications Conference (Tokyo, Japan, 23–27 July 2018). IEEE, 2018. PP. 620–629. DOI:10.1109/COMPSAC.2018.00094
10. David A.P. Ghidra Software Reverse Engineering for Beginners: Analyze, identify, and avoid malicious code and potential threats in your networks and systems. UK: Packt Publishing Ltd, 2021. 322 p.
11. Буйневич М.В., Израилов К.Е. Автоматизированное средство алгоритмизации машинного кода телекоммуникационных устройств // Телекоммуникации. 2013. № 6. С. 2–9.
12. Буйневич М.В., Израилов К.Е. Метод алгоритмизации машинного кода телекоммуникационных устройств // Телекоммуникации. 2012. № 12. C. 2–6.
13. Селиверстова И.А. Разработка программного обеспечения построения XML описания кода // Современные научные исследования и инновации. 2016. № 2(58). С. 102–104.
14. Митькин С.Б. Автоматное программирование на языке Дракон // Программная инженерия. 2019. Т. 10. № 1. С. 3–13. DOI:10.17587/prin.10.3-13
15. Вохмин А.А., Евдокимова О.А., Малявко А.А. Визуально-графическая система программирования на основе разработки блок-схем алгоритмов. Конвертирование текстов программ на различных языках программирования в блок-схемы и обратно // Южно-Сибирский научный вестник. 2021. № 3(37). С. 49–57. DOI:10.25699/SSSB.2021.37.3.013
16. Pakonen A. Obfuscation of function block diagrams // Proceedings of the 28th International Conference on Emerging Technologies and Factory Automation (ETFA, Sinaia, Romania, 12–15 September 2023). IEEE, 2023. PP. 1–7. DOI:10.1109/ETFA54631.2023.10275363
17. Ипатов П.С. Технологии межпрограммных интерфейсов // Science Time. 2016. № 9(33). С. 115–118.
18. Буйневич М.В., Ганов Г.А., Израилов К.Е. Интеллектуальный метод визуализации взаимодействий программ в интересах аудита информационной безопасности операционной системы // Информатизация и связь. 2020. № 4. С. 67–74.
19. Yang J., Cheng C., Shen S., Yang S. Comparison of complex network analysis software: Citespace, SCI2 and Gephi // Proceedings of the 2nd International Conference on Big Data Analysis (Beijing, China, 10–12 March 2017). IEEE, 2017. PP. 169–172. DOI:10.1109/ICBDA.2017.8078800
20. Gardazi S.U., Shahid A.A. Survey of software architecture description and usage in software industry of Pakistan // Proceedings of the International Conference on Emerging Technologies (Islamabad, Pakistan, 19–20 October 2009). IEEE, 2009. PP. 395–402. DOI:10.1109/ICET.2009.5353137
21. Sharma K., Dubey S.K., Gaurav P., Prachi. Functionality Assessment of Software System using Fuzzy Approach // Proceedings of the 8th International Conference on Reliability, Infocom Technologies and Optimization (Trends and Future Directions) (ICRITO, Noida, India, 04–05 June 2020). IEEE, 2020. PP. 1206–1209. DOI:10.1109/ICRITO48877.2020.9197795
22. Kotenko I., Izrailov K., Buinevich M., Saenko I., Shorey R. Modeling the Development of Energy Network Software, Taking into Account the Detection and Elimination of Vulnerabilities // Energies. 2023. Vol. 16. Iss. 13. P. 5111. DOI:10.3390/en16135111
23. Израилов К.Е., Покусов В.В. Создание программной объектно-ориентированной платформы для разработки UEFI модулей // X международная научно-техническая и научно-методическая конференция «Актуальные проблемы инфотелекоммуникаций в науке и образовании» (АПИНО 2021, Санкт-Петербург, Россия, 24–25 февраля 2021). Санкт-Петербург: СПбГУТ. 2021. Т. 2. С. 246–250.
24. Yu S.-Y., Achamyeleh Y.G., Wang C., Kocheturov A., Eisen P., Al Faruque M.A. CFG2VEC: Hierarchical Graph Neural Network for Cross-Architectural Software Reverse Engineering // Proceedings of the 45th International Conference on Software Engineering: Software Engineering in Practice (Melbourne, Australia, 14–20 May 2023). IEEE, 2023. PP. 281–291. DOI:10.1109/ICSE-SEIP58684.2023.00031
25. Израилов К.Е. Концепция генетической декомпиляции машинного кода телекоммуникационных устройств // Труды учебных заведений связи. 2021. Т. 7. № 4. С. 95‒109. DOI:10.31854/1813-324X-2021-7-4-95-109
26. Израилов К.Е., Умаралиев И.В. Гипотетический метод восстановления модулей архитектуры машинного кода с целью выявления высокоуровневых уязвимостей // XII международная научно-техническая и научно-методическая конференция Актуальные проблемы инфотелекоммуникаций в науке и образовании (АПИНО 2023, Санкт-Петербург, Россия, 28 февраля – 01 марта 2023). Санкт-Петербург: СПбГУТ, 2023. Т. 1. С. 577‒581.
27. Wang R., Shi Y. Research on application of article recommendation algorithm based on Word2Vec and Tfidf // The Proceedings of International Conference on Electrical Engineering, Big Data and Algorithms (Changchun, China, 25–27 February 2022). IEEE, 2022. PP. 454–457. DOI:10.1109/EEBDA53927.2022.97448244
Рецензия
Для цитирования:
Израилов К.Е. Методология реверс-инжиниринга машинного кода. Часть 2. Статическое исследование. Труды учебных заведений связи. 2023;9(6):68-82. https://doi.org/10.31854/1813-324X-2023-9-6-68-82
For citation:
Izrailov K. Methodology for Machine Code Reverse Engineering. Part 2. Static Investigation. Proceedings of Telecommunication Universities. 2023;9(6):68-82. (In Russ.) https://doi.org/10.31854/1813-324X-2023-9-6-68-82