← Лендинг Hermes Agent

Опубликовано

Превращаем агента в аудитора безопасности: настраиваем харнесс 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/