EnglishРусский Map

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 для типизированных входных данных.