Preview

Труды Института системного программирования РАН

Расширенный поиск

Обзор существующих методов анализа полносистемного покрытия кода

https://doi.org/10.15514/ISPRAS-2025-37(6)-58

Аннотация

С увеличением числа кибератак и несанкционированного доступа к данным растет популярность методологии безопасной разработки (SDL), направленной на интеграцию мер безопасности на всех этапах разработки ПО. Анализ покрытия кода – важный инструмент для изучения поведения программы в процессе выполнения, который помогает оценить эффективность методов выявления уязвимостей и непроверенного кода. Однако большинство существующих инструментов анализируют код в изоляции от реальной среды выполнения, что ограничивает точность анализа. Для его улучшения необходим комплексный подход, учитывающий динамические взаимодействия компонентов и особенности выполнения программы. В статье рассматриваются методы сбора покрытия кода в контексте их адаптации к полносистемной эмуляции, возможности корреляции с машинными инструкциями и связанные с этим затраты.

Об авторах

Аркадий Алексеевич ИВАНОВ
Институт системного программирования РАН им. В.П. Иванникова РАН
Россия

Разработчик программного обеспечения. Сфера научных интересов: отладка, интроспекция и инструментирование виртуальных машин, динамический анализ бинарного кода, эмуляторы.



Павел Михайлович ДОВГАЛЮК
Институт системного программирования РАН им. В.П. Иванникова РАН, Новгородский государственный университет им. Ярослава Мудрого
Россия

Кандидат технических наук, инженер. Сфера научных интересов: интроспекция и инструментирование виртуальных машин, динамический анализ кода, отладчики, эмуляторы.



Наталья Игоревна ФУРСОВА
Институт системного программирования РАН им. В.П. Иванникова РАН
Россия

Кандидат технических наук, инженер. Сфера научных интересов: интроспекция и инструментирование виртуальных машин, динамический анализ кода, эмуляторы.



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

1. Довгалюк П.М., Климушенкова М.А., Фурсова Н.И., Степанов В.М., Васильев И.А., Иванов А.А., Иванов А.В., Бакулин М.Г., Егоров Д.И. Natch: Определение поверхности атаки программ с помощью отслеживания помеченных данных и интроспекции виртуальных машин. Труды ИСП РАН, том 34, вып. 5, 2022 г, стр. 89-110. DOI: 10.15514/ISPRAS-2022-34(5)-6. / Dovgalyuk P. M., Klimushenkova M. A., Fursova N. I., Stepanov V. M., Vasiliev I. A., Ivanov A. A., Ivanov A. V., Bakulin M. G., Egorov D. I. Natch: using virtual machine introspection and taint analysis for detection attack surface of the software. Trudy ISP RAN/Proc. ISP RAS, 2022, vol. 34, issue 5, pp. 89-110 (in Russian). DOI: 10.15514/ISPRAS-2022-34(5)-6

2. Qemu. A generic and open source machine emulator and virtualizer. URL: https://www.qemu.org/.

3. Dovgalyuk P., Fursova N. et al. QEMU-based Framework for Non-Intrusive Virtual Machine Instrumentation and Introspection. In Proc. of the 11th Joint Meeting on Foundations of Software Engineering, 2017, pp. 944-948.

4. Степанов В. М., Довгалюк П. М., Фурсова Н. И. Декларативный подход к задаче интроспекции виртуальной машины. Труды ИСП РАН, том 36, вып. 3, 2024 г, стр. 123-138. / Stepanov V. M., Dovgalyuk P. M., Fursova N. I. Declarative approach to the problem of virtual machine introspection. Trudy ISP RAN/Proc. ISP RAS, 2024, vol. 36, issue 3, pp. 123-138 (in Russian). DOI: 10.15514/ISPRAS-2024-36(3)-9

5. Dovgalyuk P. Deterministic Replay of System's Execution with Multi-target QEMU Simulator for Dynamic Analysis and Reverse Debugging. In Proc. of the 2012 16th European Conference on Software Maintenance and Reengineering, 2012, pp. 553-556.

6. Available at: https://github.com/qemu/qemu/blob/master/contrib/plugins/drcov.c, accessed 21.10.2024.

7. DrCov File Format, Available at: https://www.ayrx.me/drcov-file-format/, accessed 21.10.2024.

8. Zeng, Y., Fu, Y., Lin, Z. "Pemu: A pin highly compatible out-of-vm dynamic binary instrumentation framework." Proceedings of the 11th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments. 2015. pp. 147-160.

9. Google AFL. Available at: https://github.com/google/AFL, accessed 02.12.2024.

10. Technical "whitepaper" for afl-fuzz, Available at: https://lcamtuf.coredump.cx/afl/technical_details.txt, accessed 21.10.2024.

11. AFL++. README.llvm.md: Source code coverage through instrumentation, Available at: https://github.com/AFLplusplus/AFLplusplus/blob/stable/instrumentation/README.llvm.md#8-source-code-coverage-through-instrumentation, accessed 21.10.2024.

12. Gan S., Zhang C., Qin X., Tu X., Li K., Pei Z., & Chen Z. Collafl: Path sensitive fuzzing. In 2018 IEEE Symposium on Security and Privacy (SP), 2018, pp. 679-696. IEEE.

13. Sarafov V., Markvica D., Berlakovich F., Bernad M., & Brunthaler S. Understanding and Improving Coverage Tracking with AFL++ (Registered Report). In Proceedings of the 3rd ACM International Fuzzing Workshop, 2024, pp. 80-89.

14. Fioraldi A., Maier D., Eißfeldt H., & Heuse M. {AFL++}: Combining incremental steps of fuzzing research. In 14th USENIX Workshop on Offensive Technologies (WOOT 20), 2020.

15. afl-cov - AFL Fuzzing Code Coverage, Available at: https://github.com/mrash/afl-cov, accessed 21.10.2024.

16. Lcov - a graphical GCOV front-end. Available at: https://man.archlinux.org/man/lcov.1.en, accessed 21.10.2024.

17. Bosbach N., Salama A., Jünger L., Burton M., Zurstraßen N., Pelke R., & Leupers R. NQC²: A Non-Intrusive QEMU Code Coverage Plugin. In Proceedings of the 16th Workshop on Rapid Simulation and Performance Evaluation for Design, 2024, pp. 16-21.

18. Xilinx. QEMU: an emulator supporting Xilinx architectures, Available at: https://github.com/Xilinx/qemu, accessed 21.10.2024.

19. QEMU. TCG Plugins API: documentation for developing plugins for QEMU, Available at: https://www.qemu.org/docs/master/devel/tcg-plugins.html#api, accessed 21.10.2024.

20. QEMU E-Trace: a tracing tool for QEMU, Available at: https://github.com/edgarigl/qemu-etrace, accessed 21.10.2024.

21. PANDA: a platform for dynamic analysis and tracing, Available at: https://github.com/panda-re/panda?tab=readme-ov-file, accessed 21.10.2024.

22. PANDA Coverage Plugins, Available at: https://github.com/panda-re/panda/tree/dev/panda/plugins/coverage, accessed 21.10.2024.

23. Wang, J., Duan, Y., Song, W., Yin, H., & Song, C. Be sensitive and collaborative: Analyzing impact of coverage metrics in greybox fuzzing. In Proc. of the 22nd International Symposium on Research in Attacks, Intrusions and Defenses (RAID 2019), 2019, pp. 1-15.

24. Peng, X., Jia, P., Fan, X., & Liu, J. ENZZ: Effective N-gram coverage assisted fuzzing with nearest neighboring branch estimation. In Information and Software Technology, 2024, Article 107582.


Рецензия

Для цитирования:


ИВАНОВ А.А., ДОВГАЛЮК П.М., ФУРСОВА Н.И. Обзор существующих методов анализа полносистемного покрытия кода. Труды Института системного программирования РАН. 2025;37(6):187-200. https://doi.org/10.15514/ISPRAS-2025-37(6)-58

For citation:


IVANOV A.A., DOVGALYUK P.M., FURSOVA N.I. Review of Existing Methods for Analyzing Full-System Code Coverage. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2025;37(6):187-200. (In Russ.) https://doi.org/10.15514/ISPRAS-2025-37(6)-58



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)