Cloudflare опубликовали продолжение своего Project Glasswing — теперь они показали, как построили масштабируемую систему для поиска уязвимостей с помощью ИИ. Исходный посыл простой: полагаться на одну модель — тупик. Рынок меняется, модели приходят и уходят, а архитектура должна быть model-agnostic.
Всё начиналось с ~450 строк скилла security-audit, который прогонял семифазный аудит в одной сессии: три параллельных агента писали architecture.md, Hunter пытался ломать код, валидаторы опровергали находки, выжившие шли в отчёт. Но одиночный прогон находил только половину багов, причём самые простые. Уперелись в три стены: переполнение контекста (модель забывала баги через час), отсутствие персистентности и ручная дедупликация.
Решение — вынесли состояние во внешнюю базу, превратив LLM в stateless вычислитель. Каждую фазу скилла подняли в отдельного агента, за которым стоит SQLite (ключ — run_id, repo, stage) и оркестратор. Весь пайплайн — непрерывный цикл producer-consumer из восьми стадий: Recon, Hunt, Validate, Gapfill, Dedup, Trace, Feedback, Report. Контекст каждого агента держат ниже 25% окна, чтобы избежать галлюцинаций.
Два ключевых механизма, дающих агентам автономию: Sibling Forking (если Hunter находит интересный путь вне текущего скоупа, он форкает брата с точным семантическим указателем) и Wishlist (когда агенту не хватает тула — скажем, FreeBSD VM для подтверждения PoC — он пишет в центральный список, который с начала работы системы использовали 25 472 раза на 128 репозиториях).
Сканирование всего флота требует кросс-репо трейсинга. Trace агент проверяет, может ли атакующий передать вредоносный ввод извне в уязвимый компонент, и если да — автоматически порождает новые задачи в репозитории-потребителе. Это ловит глубокие системные баги, которые не видны при однопапочном сканировании.
Система двухуровневая. Vulnerability Discovery Harness (VDH) — движок поиска. Vulnerability Validation System (VVS) — движок валидации, который работает на другой модели. Модель A находит, модель B проверяет. Итог: из 20 799 сырых кандидатов от VDH после валидации выжило 12 057. После дедупликации и фильтрации в VVS до инженеров дошло 7 245 actionable находок. Initial validation rejection rate упал с 40% до 11%, доля high-integrity findings выросла с 35% до 58%.
На стандартном репозитории (~30k строк кода) полный цикл занимает около 14 часов: 3-4 часа на поиск 100 находок, ещё 3 часа на дедупликацию и контекстную judgement, и ещё ~6 часов на автоматическую генерацию патчей (5 минут на баг). Критические дыры (в среднем 10 из 80) патчат за 5 дней через ускоренный ревью, остальное раскатывают за 15-20 дней.
Cloudflare выпустили исходный скилл на GitHub: github.com/cloudflare/security-audit-skill. Сам харнесс обещают опубликовать позже.