25 сентября 2026 г.
GitHub Security Lab представила ИИ-конвейер для фаззинга проектов на C и C++
Fuzzing Taskflow анализирует сборку проекта, создает тестовые обвязки, запускает AFL++, оценивает покрытие и готовит отчеты об обнаруженных ошибках.
GitHub Security Lab разработала Fuzzing Taskflow, агентный конвейер для автоматизированного тестирования проектов на C и C++. Пользователь указывает репозиторий, после чего система ищет подходящие точки входа, анализирует сборку, создает тестовые обвязки и запускает AFL++.
Инструмент также проверяет покрытие, изменяет обвязки и разбирает сбои. Для каждой уникальной ошибки он может подготовить отдельный отчет об уязвимости. Решения принимает языковая модель, а команды выполняются через специализированные инструменты Taskflow Agent.
Как устроен цикл тестирования
Для каждой обвязки система собирает два исполняемых файла. Версия с инструментированием AFL используется для фаззинга, а отдельная сборка с поддержкой покрытия воспроизводит накопленные входные данные и показывает покрытые строки и ветви.
| Этап | Действие Fuzzing Taskflow |
|---|---|
| Подготовка | Анализирует систему сборки и выбирает точки входа |
| Запуск | Создает обвязки и передает их AFL++ |
| Оценка | Воспроизводит очередь тестов и измеряет покрытие |
| Разбор | Группирует сбои и формирует отчеты об ошибках |
Продолжительность итераций постепенно увеличивается с 30 до 960 секунд. Если две последовательные итерации дают прирост покрытия менее одного процентного пункта, цикл останавливается и агент переходит к следующей цели.
Для JSON, XML, регулярных выражений, PNG и двоичных форматов с указанием длины предусмотрены словари и специализированные мутаторы. Для неизвестного формата система может извлекать строки и числовые константы непосредственно из исходного кода.
Запуск требует изолированной среды
Базовый сценарий запуска принимает идентификатор репозитория в формате `владелец/репозиторий`. GitHub Security Lab предлагает использовать Codespace, а для короткой проверки выбрать небольшой C или C++ проект.
При этом конвейер запускает компилятор, фаззер и выбранные моделью команды сборки непосредственно в рабочем окружении, без промежуточного контейнера. Разработчики предупреждают о риске внедрения инструкций через содержимое проекта.
Что проверить перед экспериментом
Для учебного исследования или лабораторной работы инструмент стоит запускать только в одноразовом Codespace либо временной виртуальной машине без повышенных привилегий и рабочих секретов. Перед тестом следует изучить сценарий запуска, конфигурацию модели и перечень доступных инструментов, а результаты фаззинга перепроверить вручную.
