LibAFL
- title
- LibAFL
- type
- entity
- summary
- Rust-фреймворк для coverage-guided фаззинга: композируемые stage, mutator, observer и feedback вместо жёсткого цикла; развитие наработок AFL++
- tags
- rust, fuzzing, security
- created
- 2026-05-12
- updated
- 2026-05-12
- lang
- ru
- translation_of
- libafl
- source_updated
- 2026-05-12
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
LibAFL - это библиотека (и экосистема crate'ов) на Rust, предоставляющая компоненты фаззера, а не готовый фаззер. Stages, mutators, observers, feedbacks, schedulers и corpora - всё это трейты; вы собираете из них фаззер под конкретную цель. Проект вырос из команды AFL++ и исследовательских направлений AFLNet/CmpLog с целью упростить создание специализированных фаззеров без оглядки на архитектуру AFL.
Архитектурная ставка сделана на то, что на практике у целей фаззинга слишком много форм (ядро, гипервизор, сеть, структурированный ввод, грамматики, дифференциальное тестирование, несколько целей сразу), чтобы их можно было покрыть флагами командной строки одного бинарника. Поэтому правильная абстракция здесь - библиотека, а не утилита.
Где используется:
- gosentry как движок под форкнутым тулчейном Go
- AFL++ в качестве экспериментальной ветки переписывания
- Различные исследовательские фаззеры в академии и индустрии
Связь с грамматическим и structure-aware фаззингом
Сам по себе LibAFL не содержит грамматического движка; инструменты на его базе (gosentry и другие) обычно подключают Nautilus для режима работы с грамматиками и паттерн декодера из structure-aware-fuzzing для типизированных входных данных.