AFL++: от первого запуска до исправления
Подготовка WSL2 и Ubuntu, сборка C++ цели, запуск фаззинга, диагностика ASan и повторная проверка.
Практикумы по динамическому анализу с AFL++, libFuzzer и AddressSanitizer. Материалы для самостоятельной работы и занятий со студентами.
Для студентов, начинающих разработчиков C/C++ и специалистов по безопасной разработке. Нужны базовые знания C++, терминала Linux, сборки и работы с файлами.
Темп самостоятельный: подготовка → два практикума → отчёт. Продолжительность зависит от подготовки стенда и не измерялась при публикации.
В исходных методичках зафиксирована проверка на WSL2, Ubuntu 24.04.4 LTS, Clang 18.1.3, AFL++ 4.09c и g++ 13.3.0. Это сведения из подготовленного комплекта; на странице не заявляется новый прогон всех лабораторных команд.
Подготовка WSL2 и Ubuntu, сборка C++ цели, запуск фаззинга, диагностика ASan и повторная проверка.
Harness, корпус, инструментированная сборка, воспроизведение и минимизация crash, исправление и регрессия.
Почему проверки размера входа недостаточно, как возникает переполнение и что меняет проверка границ.
Исходники C++, seed-данные, образцы результатов и все три методички. Распакуйте архив в своей учебной среде; программы собираются из исходников по шагам методичек.
Критерий завершения: ошибка воспроизводится до исправления, причина объяснена, старый вход больше не вызывает прежний сбой после исправления; ограничения и параметры прогона явно записаны. Отсутствие находок за ограниченное время не доказывает отсутствие ошибок.
Учебный цикл соотнесён с пунктами 8.3.11–8.3.23 первой редакции проекта. Подробные задания и контрольные вопросы находятся в методичках.
ГОСТ Р «Защита информации. Разработка безопасного программного обеспечения. Технологии динамического анализа. Общие требования». Первая редакция, использованная в этом разборе. Не подлежит применению до утверждения.
Нормативный первоисточник и пояснительная записка; авторский конспект лекции скачивается отдельно.