Опубликовано
Превращаем агента в аудитора безопасности: настраиваем харнесс Cloudflare
Автор: Гусев Николай [портфолио]
Обновлено
Темы: cloudflare, security, agents, tutorial
В сентябре Cloudflare открыла security-audit-skill - скилл, из которого вырос их внутренний vulnerability harness по проекту Glasswing. Шесть фаз, изолированные агенты-охотники, независимая верификация находок. Разбираем установку и выпуск токена, которым агент будет ходить в API.
Почему скилл, а не промпт
Обычный агент держит одну гипотезу за раз и съедает контекст на десятке файлов. Аудиту нужны сотни независимых проверок, которые переживают перезапуск, дедуплицируются и переиспользуются между запусками. Скилл решает это структурой: родительский агент ведёт реестр покрытия (coverage ledger), из него выдаются изолированные задания охотникам, каждый кандидат попадает к свежему верификатору, который пытается его опровергнуть. Вердикты жёсткие: confirmed - полная трассировка до исходников, needs_validation - точная формулировка что не сошлось и никакой severity, rejected - опровергнуто. Повторный запуск по тому же репозиторию не начинает с нуля - читает прошлые реестры.
Установка скилла
Скилл - это каталог с SKILL.md и скриптами-валидаторами. Клонируем в проект:
git clone https://github.com/cloudflare/security-audit-skill .agents/security-audit
Проверьте, что в SKILL.md описаны шесть фаз и два валидатора (validate-coverage-ledger.cjs и validate-findings.cjs) - они запускаются после каждого обновления реестров и ловят битые записи до того, как финальный отчёт соберёт ложь.
Если агент поддерживает сторонние скиллы (Claude Code, Cursor, Hermes), каталог кладётся в каталог скиллов проекта - .claude/skills, .cursor/skills или аналог. У Hermes - junction из общего хранилища, чтобы один скилл жил во всех профилях и не мутировал копиями.
Первый прогон
Запустите аудит на маленьком репозитории - не на монолите. Скилл фазами пройдёт рекогносцировку (карта архитектуры и границы доверия в architecture.md), coverage-led hunting (охотники получают задания из реестра, критики ищут дыры в покрытии), валидацию кандидатов и соберёт REPORT.md, FINDINGS-DETAIL.md и NEEDS-VALIDATION.md.
Первый прогон почти наверняка найдёт "находки", которые вам известны. Это нормально: скилл калибруется на вашем коде со второго-третьего запуска, когда накапливаются rejected-записи.
Выпуск API-токена для агента
Агенту нужен доступ к API (например, Cloudflare), и выдавать ему свой админский токен - худшая из идей. Делаем персональный.
Заведите отдельного участника в аккаунте с минимальной ролью (для аудита - только чтение). Под его именем создайте токен: в Cloudflare это My Profile - API Tokens - Create Token, с шаблоном Custom, где перечислены нужные зоны и права. Не давайте All zones - перечислите конкретные. Срок жизни - короткий, 30 дней, с ротацией.
Токен не кладём в репозиторий и не пишем в команды с историей. На машине агента - в переменную окружения или секрет-хранилище; для Hermes это .env вне репозитория с правами 600. Проверьте токен до запуска:
curl -s -H "Authorization: Bearer $CF_TOKEN" \
https://api.cloudflare.com/client/v4/user/tokens/verify
В ответе status: active - и никакой больше информации о вас, это нормально. Если работаете через корпоративный шлюз (one-api, PII Guard), выпустите токен шлюза и маппьте его на облачный внутри - агент не должен знать облачный ключ вообще.
Отдельный совет из практики: ведите в токене пометку назначения (audit-agent-ro), чтобы при ротации не резать живой. И ревьюйте логи использования раз в неделю - токен, по которому не было запросов месяц, выключается.
Что по правде
Это не "нажми кнопку - получи безопасность". Скилл - каркас, качество находок зависит от моделей на фазах (Cloudflare сами меняют модели между охотой и верификацией, чтобы разные логики перепроверяли друг друга) и от вашего покрытия: если реестр говорит, что модуль проверен, а он не проверен - отчёт врёт с уверенным лицом. Начинайте с малого, читайте NEEDS-VALIDATION.md до CONFIRMED, и помните: needs_validation без проверки - это не находка, это гипотеза.
Подписывайся: @hermesagentru
Ссылки
security-audit-skill: https://github.com/cloudflare/security-audit-skill Как устроен harness у Cloudflare: https://blog.cloudflare.com/build-your-own-vulnerability-harness/ Project Glasswing: https://blog.cloudflare.com/cyber-frontier-models/
