Реверс-инжиниринг программного обеспечения методом смарт-перебора: прототип и эксперимент

Обложка

Цитировать

Полный текст

Аннотация

Актуальность. Одним из подходов к поиску уязвимостей в программах является их преобразования из выполняемого машинного кода в человеко-ориентированный исходный, более пригодный для работы эксперта по информационной безопасности. Ранее авторами был получен соответствующий метод «умного» перебора вариантов исходного кода на предмет установления экземпляра, компилируемого в заданный машинный. Логичным продолжением исследования должна стать реализация программного прототипа для проверки работоспособности метода и экспериментального получения ряда характеристик.Цель исследования: реализовать программный прототип смарт-перебора вариантов исходного кода (согласно разработанному методу), экспериментально оценить его работоспособность и границы применимости.Методы: программная инженерия, эксперимент, аппроксимация значений.Результаты: создан программный прототип подбора экземпляра исходного кода по заданному машинному, реализующий соответствующий метод, полученный в предыдущих авторских исследованиях. Осуществлено применение прототипа для получения исходного кода математического выражения по его машинному коду с использованием части формального синтаксиса языка программирования (заданного в форме графа синтаксических правил). Проведена серия экспериментов для оценки характеристик прототипа путем определения следующих зависимостей: количество всех вариантов исходного кода от синтаксической разнородности синтаксиса и максимальной глубины обхода его графового представления, время поиска определенного исходного кода от данной глубины обхода. Тестирование прототипа показало его базовую работоспособность и гипотетический потенциал, что обосновывает и саму возможность осуществления реверс-инжиниринга противоположным к классическому способом – от исходного кода, а не машинного.Практическая значимость: текущая версия прототипа может непосредственно применяться для осуществления декомпиляции небольших частей машинного кода, при этом, без «привязки» к конкретному языку программирования и процессорной архитектуре (поскольку требуется лишь средство компиляции).Обсуждение: существенным усовершенствованием «умного» перебора может стать его качественная оптимизация путем применения искусственного интеллекта в части генетических алгоритмов.

Об авторах

К. Е. Израилов

Санкт-Петербургский университет государственной противопожарной службы МЧС России

Email: konstantin.izrailov@mail.ru
ORCID iD: 0000-0002-9412-5693
SPIN-код: 5109-3499

М. В. Буйневич

МИРЭА – Российский технологический университет

Email: bmv1958@yandex.ru
ORCID iD: 0000-0001-8146-0022
SPIN-код: 9339-3750

Список литературы

  1. Комаров В.В., Мезинова Н.А., Евдокимова Е.А. Анализ условий реализации угроз безопасности информации через эксплуатацию уязвимостей информационных активов // Научно-аналитический журнал «Вестник Санкт-Петербургского университета Государственной противопожарной службы МЧС России». 2024. № 2. С. 126–135. doi: 10.61260/2218-130X-2024-2-126-135. EDN:NRXXGV
  2. Ле Ч.Д., Фам М.Х., Динь Ч.З., До Х.Ф. Применение алгоритмов машинного обучения для обнаружения вредоносных программ в операционной системе Windows с помощью PE-заголовка // Информационно-управляющие системы. 2022. № 4(119). C. 44–57. doi: 10.31799/1684-8853-2022-4-44-57. EDN:YFIBQJ
  3. Израилов К.Е., Буйневич М.В. Реверс-инжиниринг программного обеспечения методом смарт-перебора: пошаговая схема // Труды учебных заведений связи. 2025. Т. 11. № 4. С. 129–142. doi: 10.31854/1813-324X-2025-11-4-129-142. EDN:UOKLHB
  4. Putro H.P., Yuhana U.L., Yuniarno E.M., Purnomo M.H. Source Code Statement Classification Using ANTLR and Ran-dom Forest // Proceedings of the International Seminar on Intelligent Technology and Its Applications (ISITIA, Surabaya, Indonesia, 26–27 July 2023). IEEE, 2023. PP. 60–65. doi: 10.1109/ISITIA59021.2023.10220999
  5. Fu J., Zhang K., Zheng J., Li W., Zhu Y. Research and Application of Grey Box Detection Technology Based on Reverse Engineering and Dynamic Pollution Diffusion // Proceedings of the 7th Information Technology and Mechatronics Engineering Conference (ITOEC, Chongqing, China, 15–17 September 2023). IEEE, 2023. PP. 2380–2384. doi: 10.1109/ITOEC57671.2023. 10291380
  6. Devine T.R., Campbell M., Anderson M., Dzielski D. SREP+SAST: A Comparison of Tools for Reverse Engineering Machine Code to Detect Cybersecurity Vulnerabilities in Binary Executables // Proceedings of the International Conference on Computational Science and Computational Intelligence (CSCI, Las Vegas, USA, 14–16 December 2022). IEEE, 2022. PP. 862–869. doi: 10.1109/CSCI58124.2022.00156
  7. Hu Y., Wang H., Zhang Y., Li B., Gu D. A Semantics-Based Hybrid Approach on Binary Code Similarity Comparison // Transactions on Software Engineering. 2021. Vol. 47. Iss. 6. PP. 1241–1258. doi: 10.1109/TSE.2019.2918326. EDN:ILNITT
  8. Adamchuk N., Schlüter W. Automatic Acceptor Generation Based on EBNF Grammar Definition // Proceedings of the 11th International Conference on Advanced Computer Information Technologies (ACIT, Deggendorf, Germany, 15–17 September 2021). IEEE, 2021. PP. 618–622. doi: 10.1109/ACIT52158.2021.9548492
  9. Савченко А.А., Минеева Т.А. Язык программирования ассемблер. Разница низкоуровневых и высокоуровневых языков // Тенденции развития науки и образования. 2022. № 92-10. С. 131–135. doi: 10.18411/trnio-12-2022-502. EDN:QMZFNE
  10. Нечесов А.В. Некоторые вопросы полиномиально вычислимых представлений для порождающих грамматик и форм Бэкуса-Наура // Математические труды. 2022. Т. 25. № 1. С. 134–151. doi: 10.33048/mattrudy.2022.25.106. EDN:SFDFPB
  11. Рязанов Ю.Д., Назин С.В. Построение синтаксических анализаторов на основе синтаксических диаграмм с многовходовыми компонентами // Прикладная дискретная математика. 2022. № 55. С. 102–119. doi: 10.17223/20710410/55/8. EDN:XHAFEV
  12. Третьяк А.В., Третьяк Е.В., Верещагина Е.А. Разработка когнитивно-эргономического синтаксиса для нового аппаратно-ориентированного языка программирования // Современная наука: актуальные проблемы теории и практики. Серия: Естественные и технические науки. 2020. № 7. С. 145–153. doi: 10.37882/2223-2966.2020.07.33. EDN:GVAAGG
  13. Костенко М.С., Цицарева В.В. Применение эффективных методов обхода графа (поиск в глубину, поиск в ширину) при решении задач второго этапа республиканской олимпиады по учебному предмету «Информатика» // Современное образование Витебщины. 2024. № 2(44). С. 24–26. EDN:WRZIGQ
  14. Загинайло М.В., Фатхи В.А. Генетический алгоритм как эффективный инструмент эволюционных алгоритмов // Инновации. Наука. Образование. 2020. № 22. С. 513–518. EDN:UTMAEL
  15. Израилов К.Е. Концепция генетической деэволюции представлений программы. Часть 1 // Вопросы кибербезопасности. 2024. № 1(59). С. 61–66. doi: 10.21681/2311-3456-2024-1-61-66. EDN:CBCKRF
  16. Израилов К.Е. Концепция генетической деэволюции представлений программы. Часть 2 // Вопросы кибербезопасности. 2024. № 2(60). С. 81–86. doi: 10.21681/2311-3456-2024-2-81-86. EDN:JUBPML
  17. He H., Lin L., Yu T., Zhong X. CloneBAS: A Code Clone Detection Method Based on Abstract Syntax Tree and Simhash // Proceedings of the 3rd International Conference on Data Science and Computer Application (ICDSCA, Dalian, China, 27–29 October 2023). IEEE, 2023. PP. 1539–1544. doi: 10.1109/ICDSCA59871.2023.10392292
  18. Izrailov K. GREMC: Genetic Reverse-Engineering of Machine Code to Search Vulnerabilities in Software for Industry 4.0. Predicting the Size of the Decompiling Source Code // Proceedings of the International Russian Smart Industry Conference (SmartIndustryCon, Sochi, Russian Federation, 25–29 March 2024. IEEE, 2024. PP. 622–628. doi: 10.1109/SmartIndustryCon61328.2024.10515515
  19. Миронов С.В., Батраева И.А., Дунаев П.Д. Библиотека для разработки компиляторов // Труды Института системного программирования РАН. 2022. Т. 34. № 5. С. 77–88. doi: 10.15514/ISPRAS-2022-34(5)-5. EDN:JPGPIY
  20. Qu Z., Hu Y., Zeng J., Cai B., Yang S. Method Name Generation Based on Code Structure Guidance // Proceedings of the International Conference on Software Analysis, Evolution and Reengineering (SANER, Honolulu, USA, 15–18 March 2022). IEEE, 2022. PP. 1101–1110. doi: 10.1109/SANER53432.2022.00127
  21. Petukhov M., Gudauskayte E., Kaliyev A., Oskin M., Ivanov D., Wang Q. Method Name Prediction for Automatically Generated Unit Tests // Proceedings of the International Conference on Code Quality (ICCQ, Innopolis, Russian Federation, 23 April 2022). IEEE, 2022. PP. 29–38. doi: 10.1109/ICCQ53703.2022.9763112. EDN:TOCMXI
  22. Бородин А.В., Юдина М.А., Васильева М.А. О задаче классификации на окрестности корня графа потока управления программы в контексте процесса размножения файловых компьютерных вирусов // Современные наукоемкие технологии. 2019. № 1. С. 31–35. EDN:VUCEWK
  23. Куделя В.Н. Методы перечисления путей в графе // Наукоемкие технологии в космических исследованиях Земли. 2023. Т. 15. № 5. С. 28–38. doi: 10.36724/2409-5419-2023-15-5-28-38. EDN:HQEASN
  24. Кусаинов А.Р., Глазырина Н.С. Обзор инструментов статического анализа программного кода // Colloquium-Journal. 2020. № 32-1(84). С. 48–52. EDN:JXSKQX
  25. 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. EDN:CFRQLO
  26. Пичугова Л.Н. Перспективные технологии реверс-инжиниринга и быстрого прототипирования // Фундаментальные основы механики. 2023. № 11. С. 43–48. doi: 10.26160/2542-0127-2023-11-43-48. EDN:CYVEES
  27. Аралбаев Р.А., Тарасов А.А. Задачи оптимизации и применение алгоритмов генетический алгоритм на практике // Инновации. Наука. Образование. 2021. № 48. С. 1645–1653. EDN:VGUBIH

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML


Creative Commons License
Эта статья доступна по лицензии Creative Commons Attribution 4.0 International License.

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

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

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».