ПРИМЕНЕНИЕ МАШИННОГО ОБУЧЕНИЯ В ЗАДАЧЕ ОБНАРУЖЕНИЯ ПРОГРАММНЫХ КЛОНОВ

Никита А. Грибков, Денис В. Иванов

Аннотация


Статья посвящена анализу методов определения схожести фрагментов программного кода, в частности, на уровне бинарных представлений прошивок программно-аппаратных комплексов. Наибольшей эффективности позволяют достичь гибридные методы, сочетающие анализ на нескольких уровнях абстракции. Все подходы классифицируются на основе используемых признаков: синтаксических и семантических. К синтаксическим признакам относятся низкоуровневые элементы, такие как последовательности байт, ассемблерные инструкции, статистические величины и графы потока управления (CFG). Их анализ близок к уровню байт и эффективен для поиска синтаксических клонов. Семантические же признаки, напротив, описывают взаимосвязи в коде и часто представляют собой векторные или графовые модели, построенные с применением алгоритмов машинного обучения, включая NLP-методы. Ключевая проблема – выбор и комбинирование оптимальных источников признаков. Использование только низкоуровневых данных ведет к «недостатку семантики», а опора исключительно на высокоуровневые представления увеличивает число ложных срабатываний. Комбинирование же подходов часто снижает общую эффективность, повышая частоту ошибок обоих типов. В качестве решения предлагается последовательное извлечение и совместное использование низкоуровневых признаков бинарного кода и высокоуровневых семантических признаков, извлекаемых на основе абстрактных синтаксических деревьев (AAST), для оптимизации поиска семантических клонов.

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


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

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

PDF

Литература


1. Martial Bourquin, Andy King, and Edward Robbins. 2013. BinSlayer: accurate comparison of binary executables. In Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop (PPREW '13). Association for Computing Machinery, New York, NY, USA, Article 4, 1-10. DOI: https://doi.org/10.1145/2430553.2430557.

2. He Huang, Amr M. Youssef, and Mourad Debbabi. 2017. BinSequence: Fast, Accurate and Scalable Binary Code Reuse Detection. In Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security (ASIA CCS '17). Association for Computing Machinery, New York, NY, USA, 155-166. DOI: https://doi.org/10.1145/3052973.3052974.

3. Binbin Zhao, Shouling Ji, Jiacheng Xu, Yuan Tian, Qiuyang Wei, Qinying Wang, Chenyang Lyu, Xuhong Zhang, Changting Lin, Jingzheng Wu, and Raheem Beyah. 2022. A large-scale empirical analysis of the vulnerabilities introduced by third-party components in IoT firmware. In Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2022). Association for Computing Machinery, New York, NY, USA, 442-454. DOI: https://doi.org/10.1145/3533767.3534366.

4. Xiaojun Xu, Chang Liu, Qian Feng, Heng Yin, Le Song, and Dawn Song. 2017. Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security (CCS '17). Association for Computing Machinery, New York, NY, USA, 363-376. DOI: https://doi.org/10.1145/3133956.3134018.

5. Roundy, K.A., Miller, B.P. (2010). Hybrid Analysis and Control of Malware. In: Jha, S., Sommer, R., Kreibich, C. (eds) Recent Advances in Intrusion Detection. RAID 2010. Lecture Notes in Computer Science, v. 6307. Springer, Berlin, Heidelberg. DOI: https://doi.org/10.1007/978-3-642-15512-3_17.

6. S. Wang and D. Wu. In-memory fuzzing for binary code similarity analysis. 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), Urbana, IL, USA, 2017, pp. 319-330. DOI: 10.1109/ASE.2017.8115645.

7. Li, B., Zhang, Y., Peng, H., Fan, Q., He, S., Zhang, Y., Shi, S., Zhang, Y., & Ma, A. (2023). Multi-semantic feature fusion attention network for binary code similarity detection. Scientific reports, 13(1), 4096. DOI: https://doi.org/10.1038/s41598-023-31280-w. EDN: CKIEEH.

8. I.U. Haq, J. Caballero A Survey of Binary Code Similarity. arXiv:1909.11424 [cs]. – arXiv, 2019. DOI: https://doi.org/10.48550/arXiv.1909.11424.

9. Грибков, Н.А. Анализ восстановленного программного кода с использованием абстрактных синтаксических деревьев. Н.А. Грибков, Т.Д. Овасапян, Д.А. Москвин. Проблемы информационной безопасности. Компьютерные системы. 2023, № 2(54). DOI: https://doi.org/10.48612/jisp/ruar-u6he-kmd4.
Gribkov N.A., Ovasapyan T.D., Moskvin D A. Analysis of decompiled program code using abstract syntax trees. Information Security Problems. Computer Systems. 2023, no. 2(54). DOI: https://doi.org/10.48612/jisp/ruar-u6he-kmd4. EDN: BGKMKA (in Russian).

10. Marcelli A. et al. How machine learning is solving the binary function similarity problem.31st
USENIX Security Symposium (USENIX Security 22). 2022. pp. 2099-2116. URL: https://www.usenix.org/conference/usenixsecurity22/presentation/marcelli (aссessed: 1.11.2025).

11. F. Ye, S. Zhou, A. Venkat, et al. MISIM: A Neural Code Semantics Similarity System Using the Context-Aware Semantics Structure. MISIM. arXiv:2006.05265 [cs, stat]. – arXiv, 2021. DOI: https://doi.org/10.48550/arXiv.2006.05265.

12. Zhu, X., Wang, J., Fang, Z., Yin, X., & Liu, S. (2023). BBDetector: A Precise and Scalable Third-Party Library Detection in Binary Executables with Fine-Grained Function-Level Features. Applied Sciences, 13(1), 413. DOI: https://doi.org/10.3390/app13010413. EDN: MMFCZM.

13. xorpd | FCatalog. URL: https://www.xorpd.net/pages/fcatalog.html (accessed: 11.11.2025).

14. Bingchang Liu, Wei Huo, Chao Zhang, Wenchao Li, Feng Li, Aihua Piao, and Wei Zou. 2018. ΑDiff: cross-version binary code similarity detection with DNN. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE '18). Association for Computing Machinery, New York, NY, USA, 667-678. DOI: https://doi.org/10.1145/3238147.3238199.

15. Yaniv David, Nimrod Partush, and Eran Yahav. 2016. Statistical similarity of binaries. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '16). Association for Computing Machinery, New York, NY, USA, 266-280. DOI: https://doi.org/10.1145/2908080.2908126.

16. J. Pewny, B. Garmany, R. Gawlik, C. Rossow and T. Holz. Cross-Architecture Bug Search in Binary Executables. 2015 IEEE Symposium on Security and Privacy, San Jose, CA, USA, 2015, pp. 709-724. DOI: https://doi.org/10.1109/SP.2015.49.

17. H. Wang, Z. Gao, C. Zhang, et al. CLAP: Learning Transferable Binary Code Representations with Natural Language Supervision. CLAP. arXiv:2402.16928 [cs]. – arXiv, 2024. DOI: https://doi.org/10.48550/arXiv.2402.16928.

18. H. Wang, Z. Gao, C. Zhang, et a.l CEBin: A Cost-Effective Framework for Large-Scale Binary Code Similarity Detection. CEBin. arXiv:2402.18818 [cs]. – arXiv, 2024. DOI: https://doi.org/10.48550/arXiv.2402.18818.

19. Kalinin, M., Zavadskii, E., & Busygin, A. (2023). A Graph-Based Technique for Securing the Distributed Cyber-Physical System Infrastructure. Sensors, 23(21), 8724. DOI: https://doi.org/10.3390/s23218724. EDN: MIBSKV.




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

Ссылки

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


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