НовостиМакроAnthropic выпустила бета-версию плагина Claude Security для Claude Code: мультиагентный сканер уязвимостей, работающий в терминале

Anthropic выпустила бета-версию плагина Claude Security для Claude Code: мультиагентный сканер уязвимостей, работающий в терминале

Автор: MarkTechPost·

Ключевые выводы

  • Плагин Claude Security выполняет мультиагентное сканирование уязвимостей внутри сессий Claude Code по четырем категориям безопасности: injection-and-input, auth-and-access, memory-and-unsafe и crypto-and-secrets.
  • Каждая потенциальная находка должна пройти панель из трех верификаторов, оценивающих reachability, impact и defenses; для включения в итоговый отчет требуется кворум минимум 2 из 3.
  • Patch-файлы создаются только тогда, когда независимый верификатор подтверждает, что исправление устраняет находку, не вносит новую уязвимость и сохраняет существующее поведение программы.
  • Для плагина требуется платный план Claude с Claude Code v2.1.154 или новее, Python 3.9.6 или новее и Git; все сканирования учитываются в лимитах токенов плана.
  • Anthropic позиционирует плагин как дополнение к традиционным SAST-инструментам, отмечая, что сканирования недетерминированы и не заменяют статический анализ, сканирование зависимостей или code review.
Anthropic выпустила бета-версию плагина Claude Security для Claude Code: мультиагентный сканер уязвимостей, работающий в терминале

Anthropic представила бета-версию плагина Claude Security для Claude Code. Claude Code — это терминальный агентный помощник Anthropic для программирования, а плагин расширяет его в область анализа безопасности, которую традиционно занимают специализированные инструменты статического тестирования безопасности приложений (SAST). Плагин выполняет мультиагентное сканирование уязвимостей репозитория непосредственно в существующей сессии Claude Code и преобразует выбранные находки в patch-файлы, которые пользователь просматривает и применяет вручную. При запуске Anthropic подчеркнула гибкость инструмента, отметив, что он может выполнять как комплексное сканирование всей кодовой базы, так и проверку изменений из терминала непосредственно перед коммитом.

Что добавляет плагин

Плагин вводит одну команду, /claude-security, которая открывает меню из трех задач, согласно официальной документации:

  • Scan codebase — весь репозиторий или его ограниченное подмножество
  • Scan changes — diff ветки, diff pull request или отдельный коммит
  • Suggest patches — преобразование находок из отчета в файлы .patch

Для установки требуются две команды из официального маркетплейса Anthropic. Если маркетплейс не найден, сначала выполните /plugin marketplace add anthropics/claude-plugins-official. Исходный код плагина публично доступен в репозитории claude-plugins-official, текущая версия — 0.10.0.

Как устроен конвейер сканирования

Сканирование реализовано как динамический workflow — JavaScript-скрипт оркестрации, распределяющий работу между субагентами. Скрипт определяет шесть фаз:

  1. Inventory: разбиение репозитория на компоненты. Каждый каталог верхнего уровня должен быть либо просканирован, либо явно пропущен с указанием причины.
  2. Threat model: по одному моделировщику на компонент, который формирует точки входа, sinks, границы доверия и файлы, которые исследователь должен прочитать полностью.
  3. Research: по одному исследователю на ячейку компонент × категория.
  4. Sweep: заполнение пробелов в областях, не покрытых матрицей.
  5. Panel: состязательная проверка по трем направлениям, по одному голосующему на каждое направление.
  6. Adversarial (только при max effort): повторная панельная проверка пограничных сохраненных находок, затем red-team-проверка каждого оставшегося кандидата.

Исследование проводится по четырем фиксированным категориям: injection-and-input, auth-and-access, memory-and-unsafe и crypto-and-secrets. Направление memory-and-unsafe исключается для компонентов, полностью написанных на memory-safe языках, поэтому компонент только на Python или TypeScript получает три направления вместо четырех.

Операционный масштаб запуска определяется четырьмя отдельными уровнями усилий: low, medium, high и max. В зависимости от выбранного уровня применяются конкретные пороги: максимальное число компонентов ограничено 12 для уровней low и medium и увеличивается до 24 для high и max; ячейкам матрицы назначается 1 исследователь на более низких уровнях, а на уровнях high и max это число увеличивается до 2; число gap-fill sweep растет с 0 на low до 1 на medium и до 2 на high и max. При работе с ограниченной областью или небольшим diff процесс сжимается до конфигурации с одним исследователем вместо развертывания полной матрицы. Это обеспечивает строгую соразмерность оценки цели при сохранении того же стандарта проверки.

Система использует агентов разных модельных уровней: оркестратор работает на Opus, а картограф репозитория и read-only исследователь кода — на Sonnet. Модель сессии наследуется исследователями и верификаторами, а агенты сканирования ограничены исключительно read-only инструментами.

Как находка попадает в отчет

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

Каждый кандидат оценивается тремя независимыми верификаторами, по одному на каждое направление: REACHABILITY, IMPACT и DEFENSES. Каждый возвращает структурированный вердикт TRUE_POSITIVE или FALSE_POSITIVE с одной-двумя строками, указывающими решающий file:line. Кворум для сохранения составляет 2 из 3. Если возвращается меньше трех голосов, кандидат вообще не может быть сохранен.

Результат панели также ограничивает заявленную уверенность находки. Единогласная панель 3/3 допускает потолок уверенности high; кворум 2/3 ограничивает ее уровнем medium. Находка не может заявлять уверенность выше той, которую заслужила ее проверка.

Важно, что подсчет выполняется на Python рендерером отчета, а не утверждается моделью, которая создала находки. Поле verification.status в ревизионной отметке устанавливается в verified только тогда, когда запись голосования доказывает, что панель была запущена для каждой находки в отчете; в противном случае оно помечается как unverified с указанием причины. Это делает заявленную строгость отчета тем, что можно проверить, а не тем, что приходится принимать на доверие.

Что сканирование записывает на диск

Каждое сканирование создает внутри репозитория каталог с временной меткой CLAUDE-SECURITY-<timestamp>/, содержащий три артефакта:

  • CLAUDE-SECURITY-RESULTS.md — человекочитаемый отчет. Каждая находка содержит ID, например F1, а также серьезность (HIGH/MEDIUM/LOW), уверенность, CWE ID, точную строку sink, воздействие, сценарий эксплуатации, предварительные условия и рекомендацию. Использование идентификаторов CWE (Common Weakness Enumeration) согласует находки с широко применяемым стандартом классификации MITRE, делая результаты совместимыми с существующими процессами отслеживания и устранения уязвимостей.
  • CLAUDE-SECURITY-RESULTS.jsonl — те же находки, по одному JSON-объекту в строке.
  • CLAUDE-SECURITY-REVISION-.json — ревизионная отметка: какой коммит сканировался, с каким уровнем усилий, количество находок по серьезности и насколько тщательно был проверен запуск. Имя файла включает -dirty, если в сканируемое дерево входили незакоммиченные изменения.

Этот каталог — единственное изменение, которое сканирование вносит в checkout, и он поставляется со своим собственным .gitignore, чтобы случайный git add не добавил отчет в коммит. Удаление этого .gitignore позволяет закоммитить отчет для аудиторского следа.

Патчи и три утверждения, которые должен подтвердить каждый из них

Задача исправления разрабатывает каждый патч в scratch-клоне репозитория, поэтому рабочее дерево и индекс никогда не затрагиваются. Затем агент, независимый от того, который написал патч, проверяет staged diff и запускает собственный набор тестов проекта для этого изменения.

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

Патчи помещаются в папку patches/ отчета как F<n>.patch. Ничего не применяется автоматически. Заметка к патчу явно указывает, если ни один тест репозитория не покрывает измененный код, поясняя, что проверка опирается на code review, а не на выполнение тестов. Anthropic рекомендует применять каждый патч через отдельный pull request.

Требования, стоимость и модель доверия

Для плагина требуется платный план с Claude Code v2.1.154 или новее, а также включенные динамические workflow в /config. Также необходим Python 3.9.6 или новее в системном PATH как python3 (используется только стандартная библиотека) и Git для сканирования изменений и создания патчей. Поддерживаются Linux, macOS и Windows, а сканирования учитываются в лимитах токенов плана.

Поскольку сканирование запускается в пользовательской сессии с правами пользователя, оно не добавляет собственной изоляции: это означает, что закоммиченные настройки .claude/, hooks и CLAUDE.md по-прежнему применяются. Хотя содержимое репозитория рассматривается как данные, а не как инструкции, это не является защитой от враждебных репозиториев; Anthropic советует использовать sandbox-runtime для изоляции незнакомых кодовых баз.

Кроме того, сканирования недетерминированы и не заменяют традиционный статический анализ, сканирование зависимостей или проверки кода. Плагин выходит на рынок, где уже присутствуют такие инструменты, как Semgrep, Snyk и SonarQube, но отличается мультиагентным конвейером, выполняющим семантический анализ путей кода, а не полагающимся преимущественно на правила сопоставления шаблонов. Как бета-продукт версии 0.10.0, его охват, точность и набор функций могут изменяться.

Источники: документация плагина Claude Security, страница продукта Claude Security, исходный код плагина, claude-plugins-official, анонс @claudeai и блог о публичной бета-версии Claude Security