Открытый репозиторий для валидации агентных ИИ-приложений: redteam, поведение, цепочка поставок, статический анализ
NuGuard — это открытый инструментарий для обеспечения безопасности AI-приложений. Его цель — обеспечить максимально широкое redteaming- и поведенческое тестирование агентных AI-приложений.
С NuGuard разработчики AI могут сосредоточиться на создании своих приложений, в то время как NuGuard непрерывно тестирует и проверяет их на соответствие широкому спектру рисков безопасности, включая атаки на цепочку поставок, prompt injection, злоупотребление инструментами MCP, атаки на API, утечку данных и многое другое. NuGuard позволяет разработчикам ускорить рабочие процессы безопасности и быстрее и увереннее выходить в production.
Коммерческая версия NuGuard доступна как SaaS-продукт с дополнительными функциями и поддержкой; ознакомьтесь с ней на http://nuguard.ai.
Реализовано и доступно сегодня:
nuguard sbomnuguard analyzenuguard scannuguard policynuguard behaviornuguard redteamuv для рекомендуемого локального рабочего процессаPython CLI:
pip install nuguard
Приведённые ниже шаги описывают настройку локальной среды разработки. Это рекомендуется, если вы хотите запустить последнюю версию кода, внести вклад в проект или запустить CLI с функциями при поддержке LLM, которые требуют настройки локальных переменных окружения.
uv sync --dev
Запустите CLI с помощью:
uv run nuguard --help
Или из виртуального окружения:
. .venv/bin/activate
nuguard --help
Следуйте инструкциям в docs/plugin-guide.md, чтобы настроить плагин NuGuard для Claude и использовать его для запуска таких команд, как /nuguard-sbom, /nuguard-analyze и /nuguard-redteam, непосредственно из ваших бесед с Claude.
nuguard sbom generate --source . --output app.sbom.json
Вы также можете просканировать удалённый репозиторий:
nuguard sbom generate \
--from-repo https://github.com/org/repo \
--ref main \
--output app.sbom.json
nuguard analyze --sbom app.sbom.json --format markdown
Типичные варианты вывода:
markdown для проверки человекомjson для автоматизацииsarif для конвейеров сканирования кодаnuguard behavior \
--sbom app.sbom.json \
--target http://localhost:3000 \
--format markdown
nuguard redteam \
--config nuguard.yaml \
--output reports/redteam.md \
--format markdown
Для более полного покрытия red-team сценариев вы также можете указать:
--policy--canary--confignuguard scan \
--source . \
--output-dir nuguard-reports
По умолчанию этот запуск выполняет генерацию SBOM вместе со статическим анализом за один проход. Чтобы включить проверки политик и red-team, явно включите эти шаги и предоставьте необходимые входные данные:
nuguard scan \
--source . \
--steps sbom,analyze,policy,redteam \
--policy cognitive_policy.md \
--target http://localhost:3000 \
--output-dir nuguard-reports
NuGuard поддерживает конфигурацию проекта через nuguard.yaml. Готовый к редактированию пример находится в nuguard.yaml.example.
Ключевые разделы в примере конфигурации:
sbom: путь к существующему SBOMsource: каталог исходного кода для генерацииpolicy: путь к когнитивной политикеllm: настройки модели для функций с поддержкой LLMbehavior: целевой URL, эндпоинт и настройки профиля тестирования для поведенческого тестированияredteam: целевой URL, эндпоинт, файл canary, профили, фильтры сценариев, настройки управляемого диалога и управление триггерами находок (finding_triggers.*)analyze: минимальный порог серьёзностиdatabase: настройки хранилища на базе SQLite или Postgresoutput: формат вывода и порог сбояФлаги CLI имеют приоритет над nuguard.yaml, который имеет приоритет над переменными окружения и встроенными значениями по умолчанию.
NuGuard может отслеживать заранее внедрённые значения canary во время динамического тестирования, чтобы формировать находки эксфильтрации с высокой степенью достоверности. Начните с canary.example.json, создайте локальный canary.json, внедрите эти значения в целевую систему, затем укажите nuguard redteam на этот файл с помощью --canary.
Подробнее см. в docs/redteam-engine.md.
Установите зависимости для разработки:
make dev
Запустите тесты:
make test
Запустите линтинг и проверку типов:
make lint
Отформатируйте кодовую базу:
make fmt
Этот репозиторий включает рабочие процессы GitHub Actions для доверенной публикации (Trusted Publishing) в TestPyPI и PyPI:
Прежде чем рабочие процессы смогут выполнять публикацию, настройте доверенных издателей (Trusted Publishers) в TestPyPI и PyPI для проекта nuguard со следующими параметрами:
NuGuardAInuguardpublish-testpypi.yml или publish-pypi.ymltestpypi или pypiРекомендуемый порядок выпуска:
Перед публикацией в TestPyPI или PyPI запустите быструю проверку работоспособности для нескольких приложений.
Запуск одной командой:
bash tests/apps/prepublish-sanity.sh
Этот runner выполняет:
nuguard --help плюс критически важные локальные тесты)intent_happy_pathprofile: ciФайлы конфигурации prepublish, используемые runner:
tests/apps/openai-cs-agents-demo/nuguard.prepublish.yamltests/apps/Gemini-Auto-app/nuguard.prepublish.yamltests/apps/pinnacle-bank-app/nuguard-azure.prepublish.yaml