
Безопасность перед установкой для AI-агентов, npm-пакетов и MCP-серверов. Локальный статический анализ без внешних зависимостей; обычные сканирования никогда не выполняют код пакетов.
Проверяйте npm-пакет или MCP-сервер до того, как установите или подключитесь к нему, и
получайте детерминированный вердикт SAFE, REVIEW или BLOCK, подкреплённый доказательствами.
Локальный статический анализ без зависимостей — обычные сканирования никогда не выполняют код пакета.
Сайт · Документация · Калибровка · Сообщить об ошибке
Реальные запуски: guard пропускает [email protected], затем блокирует образец, смоделированный по компрометации @solana/web3.js в 2024 году.
1. Быстрый старт · 2. Что сканирует и обнаруживает · 3. Вердикты · 4. Использование · 5. Интеграции · 6. Сравнение с аналогами · 7. Документация
ИИ-ассистенты программирования устанавливают пакеты и подключаются к MCP-серверам на машинной
скорости, часто без чтения кода человеком. Sonatype выявила более
454 600 новых вредоносных пакетов с открытым исходным кодом в отслеживаемых экосистемах в
2025 году, более 99% из них — в npm
(Sonatype).
npm audit спрашивает есть ли у этого известная CVE?; pkgxray также спрашивает что
код реально делает — до того, как что-либо будет установлено.
1. Сканируйте заведомо безопасный пакет (устанавливать pkgxray не нужно):
npx --yes [email protected] guard npm:[email protected]
Он помещает tarball в карантин и выполняет статические проверки и проверки цепочки поставок
— без npm install, без скриптов жизненного цикла, без выполнения кода пакета.
Decision: SAFE Grade: A+ (99/100)
No high- or medium-risk indicators were found in the provided evidence.
Notes:
- INFO npm-vs-github-clean — npm tarball matches the linked GitHub repo at the
published version. (15/16 files match GitHub @4.21.0)
2. Прочитайте вердикт:
| Вердикт | Код выхода | Значение |
|---|---|---|
SAFE | 0 | Нет индикаторов высокого или среднего риска; политика по умолчанию разрешает продвижение. |
REVIEW | 3 | Доказательства неполны, или привилегированная возможность требует проверки человеком. |
BLOCK | 2 | Приведены доказательства высокой серьёзности — отклонить или расследовать. |
SAFE — это не доказательство безвредности пакета; статический анализ не видит
полезную нагрузку, загружаемую только во время выполнения. См. модель угроз.
3. Посмотрите BLOCK на прилагаемом инертном образце:
npx --yes [email protected] --file examples/onboarding-malicious.json --format markdown
Образец — это инертный исходный текст, моделирующий чтение SSH-ключа через split-фрагменты и
его эксфильтрацию — он никогда не выполняется. Он возвращает BLOCK (код выхода 2) с
указанием файла и доказательств.
4. Добавьте его в свой рабочий процесс — повторные проверки и CI, MCP, установочный шлюз Hookshot.
Две модели выполнения. Сканирования
guardиauditпо умолчанию — статические — код пакета никогда не выполняется. Перечисление возможностей MCP-сервера может запустить его, иmcp-proxyвыполняет его за шлюзом; опциональныйcanary— единственное намеренное исключение, которое выполняет пакет в песочнице для подтверждения поведения: он может подтвердить вредоносность, но никогда не докажет безопасность пакета. Полные границы: SECURITY.md.
Сканирует — pkgxray guard npm:name@version, github:owner/repo, локальную директорию, целые lock-файлы (npm, yarn, pnpm), MCP-серверы и расширения ИИ-агентов.
Обнаруживает — кражу учётных данных (включая пути с split-фрагментами), сбор метаданных облачных инстансов и хранилищ секретов, prompt-инъекции, Unicode-контрабанду, base64-нагрузки и загрузчики второй стадии, эксфильтрацию, персистентность (профиль оболочки, планировщик ОС и внедрённые CI/CD-конвейеры), самоудаляющиеся дропперы, репликацию registry-червей (npm publish во время установки), обфусцированное выполнение вычисляемых аргументов, известные CVE (через OSV, до загрузки), расхождение артефактов npm↔GitHub, троянизированные обновления (recheck) и злоупотребление поверхностью возможностей MCP.
Полная матрица покрытия — и известное слепое пятно «загрузка позже» — в модели угроз; таблица сравнения — на сайте.
| Вердикт | Что делать |
|---|---|
SAFE | Устанавливайте. По умолчанию из карантина продвигается только safe. |
REVIEW | Изучите карантинную копию перед продвижением. |
BLOCK | Не устанавливайте. Каждая находка указывает файл и доказательства. |
Коды выхода стабильны и удобны для CI: 0 безопасно/разрешено · 2 блокировка · 3 проверка.