Guardana CLI

CLI проверки безопасности ИИ: сканирует модели и код, пробует живые эндпоинты и MCP-серверы, разбирает записи работы агентов

  • 212 ★ репозитория
  • Последний коммит
  • Apache-2.0
CLI

Широкий доступ

Почему такой уровень

  • Активные проверки отправляют настоящие атакующие запросы на выбранный эндпоинт и могут стоить денег или вызвать защиту провайдера
  • Читает модели, код и записи работы агентов, в которых бывают секреты и персональные данные
  • С опцией `--reporter server://` отправляет результаты на выбранный сборщик
Все причины и проверки

guardana/guardana

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/guardana

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Активные проверки отправляют настоящие атакующие запросы на выбранный эндпоинт и могут стоить денег или вызвать защиту провайдера
  • Читает модели, код и записи работы агентов, в которых бывают секреты и персональные данные
  • С опцией `--reporter server://` отправляет результаты на выбранный сборщик

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Guardana — консольный инструмент для инженеров по безопасности и платформенных команд. Он работает вне пути запроса: это не встроенный фильтр, не общий сканер кода и не сертификация соответствия. В результате отдельно показаны найденное, непроверенное и то, что проверить не удалось, поэтому отсутствие находок не выдается за чистый результат. Команда `guardana scan` статически проверяет модели и код без сети и без модели: опасную сериализацию `pickle`, вызов `torch.load` без `weights_only=True`, конфигурации с удаленным кодом, зависимости и секреты. Команда `guardana probe` отправляет проверочные запросы на живой эндпоинт, MCP-сервер или агент по протоколу A2A. `guardana analyze-trace` разбирает записанный ход работы агента, `guardana diff` сравнивает два сохраненных прогона, а `guardana import-observations` принимает результаты сторонних сканеров garak и promptfoo с пометкой «непроверено». Встроено 58 правил: 19 для артефактов и 39 для работы системы. Они сопоставлены с OWASP LLM Top 10, OWASP для агентных приложений и MCP, MITRE ATLAS и NIST AI 100-2e2025. Отчеты выходят в SARIF, JSON, JUnit и текстом, код выхода можно использовать в CI.

Для кого. Для команд, которые выпускают модели, агентов или MCP-серверы и хотят проверять их до релиза с воспроизводимыми доказательствами, в том числе в CI.

Подходит, если

  • В репозитории лежат файлы моделей, и нужно поймать опасные вызовы при загрузке `pickle` до того, как их откроют
  • Перед релизом MCP-сервера надо проверить аутентификацию, аудиторию токена, сессии и записи реестра: за это отвечают правила `guardana.mcp.*`
  • Агент ведет журнал вызовов, и в нем ищутся утечки учетных данных, обход согласия и действия без одобрения
  • Результаты прогонов нужно сравнивать между версиями и блокировать релиз, если стало хуже: для этого есть `guardana diff`
  • Отчет должен появиться на вкладке сканирования кода в GitHub: сканер выдает SARIF 2.1.0 и поставляется как GitHub Action

Не подходит, если

  • Нужен фильтр в потоке запросов: Guardana проверяет снаружи и защитой на лету не служит
  • Нужен общий SAST или поиск CVE по всему коду: инструмент заявляет, что не заменяет их
  • Нужна сертификация соответствия: результат дает доказательства для решения, но не заключение аудитора
  • Целевой сервис платный или чужой: активные проверки отправляют настоящие запросы и могут стоить денег или вызвать защиту от злоупотреблений
  • Нужно доказать безопасность системы одним успешным запуском: непроверенные области и выбранный набор правил ограничивают вывод

Пример запроса к агенту

Просканируй папку `models` через Guardana, покажи находки по критичности и объясни, какие из них блокируют релиз

Ограничения

Проект выпускается как стабильная версия 1.0.2. Документированы проверки на Python 3.11–3.13, для 3.14 автор отмечает сбои тестов. Статический анализ после установки не требует модели или сети, если не включен внешний сборщик отчетов.

У активных проверок по умолчанию нет потолка запросов. Ограничьте их флагами `--max-requests` и `--max-duration`, при необходимости добавьте лимиты токенов и частоты. Эти лимиты не заменяют денежную квоту у поставщика.

Допущенные сторонние плагины исполняют Python-код. Журналы и отчеты могут содержать чувствительные данные, а автоматическая маскировка не заменяет просмотр перед передачей. Лицензия Apache-2.0.

Как отключить. Удалите пакет командой `pip uninstall guardana-cli` или `uv remove guardana-cli`, а при запуске через `uvx` ничего ставить не нужно. Из CI уберите шаг с действием `guardana/guardana` и файл `guardana.yaml`.

Частые вопросы

Как запустить Guardana без установки?

Выполните `uvx --from guardana-cli guardana scan .` при установленном `uv`. Команда называется `guardana`, а пакет в PyPI — `guardana-cli`. Статические проверки не требуют сети, ключа или модели после того, как пакет скачан.

Что проверяет `guardana scan`?

Модели и код: опасную сериализацию `pickle`, загрузку через `torch.load` без `weights_only=True`, конфигурации, которые подтягивают чужой код, проблемы зависимостей, секреты и происхождение пакетов. В примере уязвимой модели он находит также импорт несуществующего пакета, похожего на slopsquatting.

Как проверить MCP-сервер через Guardana?

Командой `guardana probe` с адресом сервера: правила `guardana.mcp.*` проверяют аутентификацию, обнаружение, аудиторию токена, сессии, область доступа, кэширование и записи реестра. Сначала составьте план командой `guardana plan probe`, а бюджет задайте в профиле.

Как подключить Guardana к GitHub Actions?

Добавьте шаг `uses: guardana/guardana@v1.0` и права `contents: read` и `security-events: write`, чтобы загрузить SARIF. Метка `v1.0` подвижная, при строгих требованиях закрепите хеш коммита.

Что означает пустой результат?

Пустой результат не означает, что выполнены все проверки. Смотрите пропуски покрытия, ошибки и непроверенные наблюдения. Код выхода зависит от команды и причины завершения: исчерпание бюджета дает 6, а невозможное сравнение — 2. Для CI сверяйте его с таблицей проекта.

Обсуждение

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

Статический сканер уязвимостей в коде ИИ-агентов и конфигурациях MCP с 66 правилами по OWASP Agentic Top 10

CLIРасширенный доступ245Звезды репозитория

Сканер безопасности для агентов: проверяет код, MCP-серверы, промпты и пакеты, выдуманные моделью, и ставит оценку от A до F.

MCP-серверРасширенный доступ123Звезды репозитория
Официальный

HOL Guard проверяет команды ИИ-агента, чтение секретов, вызовы MCP и установку пакетов перед выполнением и ждет вашего решения по опасным действиям

CLIШирокий доступ1,1 тыс.Звезды репозитория

CLI проверяет на вашей машине скиллы и конфиги MCP, ищет отравленные описания инструментов и прогоняет системный промпт через 225 атак

CLIРасширенный доступ383Звезды репозитория

Сканер безопасности для MCP-серверов: ищет зашитые ключи, отравление инструментов и инъекции в коде репозитория.

CLIМинимальный доступ139Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
Guardana (эта карточка)нет212
MCP Scannerда1 107сканер Cisco для MCP-серверов с тремя движками, Guardana шире: модели, эндпоинты, записи агентов
Promptfooнет26 875тестирование и ред-тиминг LLM-приложений с сравнением моделей, Guardana делает упор на воспроизводимые доказательства и проверку артефактов
OPFORнет584эмуляция атак на агентов и MCP по каталогам OWASP, Guardana еще проверяет файлы моделей и записанные трассы

Коротко о README

Кроме разового запуска, доступны сравнение сохраненных результатов, разбор журналов агента и повторные проверки по расписанию. Импортированные наблюдения других сканеров сохраняют свое происхождение и не выдаются за собственную проверку Guardana.

Бейдж для README

Сообщить о проблеме

Foxx AIGuardana
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.