Cloudflare Security Audit Skill — многоэтапная проверка кода

Security Audit Skill от Cloudflare помогает проверять код поэтапно: распределяет поиск уязвимостей, независимо перепроверяет находки и формирует отчёт с данными для проверки.

Cloudflare Security Audit Skill — открытый набор инструкций для ИИ-агентов, который организует многоэтапный аудит кодовой базы. Он помогает исследовать архитектуру проекта, распределить поиск по областям, перепроверить каждую возможную уязвимость и подготовить отчёт с машинно-читаемыми данными.

Это не отдельный сканер и не облачный сервис: навык управляет работой совместимого ИИ-агента для разработки и вспомогательных проверяющих агентов. Он задаёт порядок исследования и требования к доказательствам, но не гарантирует, что проверка найдёт все проблемы.

Как устроена проверка

Сначала карта проекта и план покрытия

На первом этапе агент изучает архитектуру приложения, границы доверия, места приёма данных и уже имеющиеся свидетельства. Результат фиксируется в карте архитектуры и журнале покрытия — перечне областей и сценариев, которые предстоит проверить. По этому журналу поиск разбивается на отдельные задачи, а дополнительные проверяющие ищут пропуски в охвате.

Каждую возможную уязвимость пытаются опровергнуть

Кандидат передают новому агенту, который не участвовал в его обнаружении и должен проверить, действительно ли проблема нарушает границу безопасности. Такой этап помогает отделить подтверждённую уязвимость от подозрительного фрагмента кода или теоретического риска. Если данных недостаточно, находку оставляют со статусом «нужна проверка», а не объявляют подтверждённой.

Отчёт собирается из проверяемых записей

Навык сохраняет результаты в findings.json и проверяет их по схеме. После этого отдельный агент перепроверяет выводы по исходному коду, а итоговые документы формируются из проверенных записей и журнала покрытия: сводный отчёт, подробный список находок и отдельный перечень вопросов, требующих дополнительной проверки. Повторные запуски дополняют предыдущие и позволяют вернуться к изменившемуся коду.

Какие области безопасности охватывает навык

Выбор проверок зависит от типа проекта

В репозитории собраны сценарии для работы с памятью и нативным кодом, веб-протоколами и авторизацией, клиентской частью, цепочкой поставки и выпуском обновлений. Есть отдельные направления для систем с ИИ и обработкой запросов, облачной инфраструктуры и контейнеров, обмена сообщениями, изоляции данных, мобильных и настольных приложений, а также рисков отказа в обслуживании.

Это не означает, что каждый аудит автоматически выполняет все возможные проверки. Состав поиска строится по архитектуре и журналу покрытия конкретной кодовой базы.

Что требуется для запуска

ИИ-агент, Node.js и поддержка параллельных задач

Нужен ИИ-агент для разработки, способный пользоваться инструментами и запускать параллельных субагентов. Среди примеров таких сред — Claude Code и Codex; перед установкой проверьте совместимость выбранной среды со Skills CLI. Для встроенных валидаторов отчётов и журнала покрытия нужен Node.js.

Навык устанавливается командой npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit. После установки агенту можно поручить аудит проекта или отдельного каталога с исходниками.

Запуск проверяемого кода требует изоляции

Cloudflare требует запускать сборки, тесты, браузеры, эмуляторы и другие процессы из проверяемого проекта только внутри системно изолированной песочницы. Она должна отключать внешнюю сеть, использовать очищенное окружение, ограничивать ресурсы и разрешать запись только в назначенные временные каталоги.

Если такой изоляции нет, навык не должен исполнять код проекта: заблокированную проверку он оставляет со статусом «нужна проверка». Для полного аудита без явно заданного пути материалы по умолчанию сохраняются отдельно, в каталоге вида ~/security-audit-skill/<имя-репозитория>/run-<номер>.

Как читать результаты

Подтверждённое, спорное и опровергнутое разделяются

Статус confirmed означает, что для вывода есть прослеживаемое подтверждение в исходниках и ограниченный наблюдаемый результат. needs_validation указывает на конкретный нерешённый вопрос и не получает уровень серьёзности. rejected фиксирует кандидата, который не выдержал проверку. Само по себе отсутствие дополнительного защитного слоя не считается уязвимостью, если другой механизм уже блокирует атаку.

Такой формат делает отчёт удобнее для повторной проверки и помогает не смешивать реальные дефекты с предположениями. При этом результат зависит от охвата проекта, доступных инструментов и качества проверки агентами; он не заменяет ответственную оценку специалиста по безопасности.

Лицензия и происхождение

Открытый проект Cloudflare

Репозиторий распространяется по лицензии MIT. В README Cloudflare описывает этот навык как отправную точку для собственного многоэтапного процесса поиска уязвимостей: это рабочая методика для одной кодовой базы, а не гарантия безопасности приложения после одного запуска.