ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ ФАЗЗИНГА С ПОМОЩЬЮ АВТОМАТИЧЕСКОЙ ГЕНЕРАЦИИ ФАЗЗИНГ-ОБЕРТОК
- Авторы: Чан Т.Т.1
-
Учреждения:
- Университет управления и технологий г. Хошимин
- Выпуск: № 5 (2025)
- Страницы: 35-42
- Раздел: ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ
- URL: https://medbiosci.ru/0132-3474/article/view/378354
- DOI: https://doi.org/10.7868/S3034584725050041
- ID: 378354
Цитировать
Аннотация
Фаззинг остается наиболее эффективным методом выявления уязвимостей в программном обеспечении. В контексте тестирования методом фаззинга фаззер передает различные входные данные фаззинг-оберткам, которые предназначены для всестороннего тестирования критических участков клиентского кода. Различные исследования были посвящены оптимизации и разработке продвинутых фаззеров, таких как AFL++, libFuzzer, Honggfuzz, syzkaller, ISP-Fuzzer, что значительно повысило эффективность обнаружения уязвимостей в широко используемых программах и библиотеках. Тем не менее достижение более высокого покрытия требует улучшения как качества, так и количества фаззинг-оберток. В крупных программных проектах и библиотеках, содержащих множество пользовательских функций и типов данных, ручное создание фаззинг-оберток требует значительных временных и трудовых затрат. Эта проблема подчеркивает необходимость автоматизированных методов не только для генерации фаззинг-оберток, но и для упрощения их исполнения и анализа результатов. В данной статье мы представляем подход к улучшению фаззинга за счет автоматизации генерации фаззинг-оберток на основе статического анализа исходного кода библиотек. Предложенный метод включает несколько этапов: анализ структур исходного кода для корректной генерации вызовов функций и фаззинг-оберток, сопоставление входных данных фаззера с соответствующими параметрами функций, обработка результатов компиляции для фаззинг-оберток, а также автоматический сбор и анализ результатов исполнения. Полученные результаты в экспериментах с библиотеками на C/C++ превосходят ряд аналогичных методов, используемых в данной области.
Ключевые слова
Об авторах
Тхнеи Ти Чан
Университет управления и технологий г. Хошимин
Email: tranchithien@tdtu.edu.vn
ORCID iD: 0000-0003-3591-872X
г. Хошимин, Вьетнам
Список литературы
- Bohme M., Cadar C., Roychoudhury A. Fuzzing: Challenges and reflections // IEEE Software. 2020. 13 apr. V. 38(3). P. 79-86.
- Zalewski M. AFL: American fuzzy lop. 2021. https://github.com/mirrorer/afl
- Serebryany K. Continuous fuzzing with libfuzzer and addresssanitizer // In: 2016 IEEE Cybersecurity Development (SecDev). 2016. Nov. 3. P. 157.
- Google // Syzkaller. https://github.com/google/syzkaller
- Google // Honggfuzz. https://github.com/google/honggfuzz
- Tran C.T., Kurmangaleev S. Futag: Automated fuzz target generator for testing software libraries // Ivannikov Memorial Workshop (IVMEM). 2021. P. 80-85. doi: 10.1109/IVMEM53963.2021.00021.
- Tran C.T., Ponomarev D., Kuznhesoy A. Research on automatic generation of fuzz-target for software library functions // Ivannikov Ispras Open Conference (ISPRAS). 2022. P. 95-99. doi: 10.1109/ISPRAS57371.2022.10076871.
- Vishnyakov A., Kuts D., Logunova V., Parygina D., Kobrin E., Savidov G., Fedotov A. Sydr-Fuzz: Continuous Hybrid Fuzzing and Dynamic Analysis for Security Development Lifecycle // Ivannikov Ispras Open Conference (ISPRAS). 2022. P. 111-123. doi: 10.1109/ISPRAS57371.2022.10076861.
- Babic D., Bucur S., Chen Y., Ivancic F., King T., Kusano M., Lemieux C., Szekeres L., Wang W. Fudge: fuzz driver generation at scale // Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 2019, Aug. 12. P. 975-985.
- Sargsyan S., Hakobyan J., Mehrabyan M., Mishechkin M., Akozin V., Kurmangaleev S. ISP-Fuzzer: Extensible fuzzing framework // Ivannikov Memorial Workshop (IVMEM). Mockba, Poccina, 2019, Sep. 13. P. 68-71.
- Ispoglou K., Austin D., Mohan V., Payer M. {FuzzGen}: Automatic fuzzer generation // USENIX Security Symposium (USENIX Security). 2020. P. 2271-2287.
- Gao W., Pham V.-T., Liu D., Chang O., Murray T., Rubinstein B.I.P. Beyond the Coverage Plateau: A Comprehensive Study of Fuzz Blockers (Registered Report) // B cborhniec: Proceedings of the 2nd International Fuzzing Workshop (FUZZING). 2023. P. 47-55. doi: 10.1145/3605157.3605177.
- Google // AI-Powered Fuzzing: Breaking the Bug Hunting Barrier. https://security.googleblog.com/2023/08/ai-powered-fuzzing-breaking-bug-hunting.html
- Serebryany K. {OSS-Fuzz}-Google's continuous fuzzing service for open source software, 2017.
- Futag. https://github.com/ispras/Futag/
- Allen F.E. Control Flow Analysis // Proceedings of a Symposium on Compiler Optimization — Urbana-Champaign. Illinois: ACM, 1970. P. 1-19. doi: 10.1145/800028.808479.
- Kennedy K. A survey of data flow analysis techniques // IBM Thomas J. Watson Research Division. 1979.
- Allen F.E., Cocke J. A program data flow analysis procedure // Communications of the ACM. 1976. Mar. V. 19(3). P. 137.
- Futag-test. Futag-tests/json-c-contexts/succeeded/json_object_put/json_object_put-1
- Weiser M. Program slicing // IEEE Transactions on Software Engineering. 2009, May. № 4. P. 352-357.
- Jeon S., Ryu M., Kim D., Kim H.K. Automatically Seed Corpus and Fuzzing Executables Generation Using Test Framework // IEEE Access. 2022. V. 10. P. 90408-90428. doi: 10.1109/ACCESS.2022.3202005.
- LLVM // Data Flow Analysis Intro. https://clang.llvm.org/docs/DataFlowAnalysisIntro.html
Дополнительные файлы


