
Уровень безопасности выполнения для эры агентов. Обеспечивает детерминированное управление «Sudo» и журналы аудита для автономных ИИ-агентов.
Что на самом деле делал ваш ИИ-агент? Узнайте.
Node9 располагается между вашим ИИ-агентом и инструментами, которые он может использовать — обнаружьте, что он уже делал, защитите от рискованных действий в реальном времени и просмотрите, что произошло за любой промежуток времени.
Работает с Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · любым MCP-сервером.
rm -rf, git push --force, DROP TABLE, чтение учётных данных, curl | bash, утечки ключей AWS/GitHub/StripeЭто моя собственная машина — 90 дней во время создания Node9. Оценка 25/100, 5 файлов с учётными данными, до которых ИИ-агент может добраться прямо сейчас.
npx node9-ai scan # до установки, выполняется ~10 секунд, ничего не загружает
node9 scan # после установки, тот же вывод
Node9 scan scorecard
node9 posture оценивает, насколько эта машина уязвима для скомпрометированного агента — изоляция, исходящий трафик, секреты на диске, цепочка поставок, привилегии — и выводит точную команду для исправления каждой проблемы.
node9 posture # оценка с указанием главного риска и исправления для каждой проблемы
node9 posture --ship # отправляет обезличенный снимок в панель управления node9 (обзор парка машин)
Проблемы сгруппированы по тому, кто может их исправить: 🔒 те, что уменьшает node9 (просто выполните команду), и 🧱 те, которые можете исправить только вы. Каждая содержит пояснение на простом языке: что / почему / кто и реальное исправление — например, проблема «агент работает без песочницы на хосте» указывает прямо на node9 sandbox run (ниже).
🛡️ Node9 Posture — агент на этом хосте Оценка: 100/100 (Хорошо)
2 предупреждения ниже не влияют на оценку — уровень ОС, решать вам.
🟢 node9 уже защищает вас
✅ Секреты node9 DLP блокирует это
✅ Исходящий node9 egress требует одобрения
✅ Шлюз одобрения node9 блокирует это
✅ Привилегии node9 требует одобрения
🔒 node9 уменьшает эти риски — выполните команду, остальное за вами
⚠️ Изоляция Работа напрямую на хосте — без контейнера
Агент работает на всей машине, а не в песочнице.
→ node9 sandbox run <agent> — изолируйте: egress на уровне ядра + ограниченные точки монтирования + node9 внутри
→ node9 shield enable project-jail — или уменьшите радиус поражения, оставив доступ к хосту
⚠️ Сетевая доступность 4 сервиса на 0.0.0.0 (node :3000/:4000, PostgreSQL :5432, Redis :6379)
Доступны из всей сети, а не только с этого ноутбука.
→ node9 shield enable postgres|redis — node9 блокирует DROP TABLE / FLUSHALL
→ привяжите к 127.0.0.1 / настройте брандмауэр (ваша часть)
✅ Цепочка поставок проблем не найдено
✅ Покрытие проблем не найдено
Отслеживайте это по всему парку и поддерживайте зелёным → node9.ai
node9 scan-repo проверяет любой репозиторий (или локальную папку) на предмет того, как ИИ-агент, подключённый к GitHub Actions, может быть взломан посторонним — внедряемые рабочие процессы, доступные агенту секреты, незафиксированные MCP-серверы, слишком широкая конфигурация агента и отравленные файлы инструкций. Статический анализ, только парсинг: читает только зафиксированные конфиги, никогда не выполняет код репозитория. Не требует установки или токена для публичных репозиториев.
npx node9-ai scan-repo <owner/repo> # любой публичный репозиторий, без установки
node9 scan-repo . # локальная копия — без сети
node9 scan-repo <owner/repo> --json # машинно-читаемый формат
🛡️ node9 scan-repo · node9-ai/agent-security-demo · ⚠️ обнаружен риск безопасности агента
проверено 2 конфигурационных файла, 2 проблемы
🔴 КРИТИЧЕСКИЙ Внедряемый рабочий процесс агента — непроверенный ввод достигает агента, использующего инструменты, с секретами
.github/workflows/vulnerable-example.yml · CI-2
• выполняется с секретами базового репозитория (pull_request_target)
• извлекает непроверенный PR head в корень рабочей области
• allowed_non_write_users: "*" — любой пользователь может запустить агента
• отсутствует эффективная проверка автора
🔴 КРИТИЧЕСКИЙ Секреты, доступные для эксфильтрации внедряемым агентом
.github/workflows/vulnerable-example.yml · CI-4
• агент имеет произвольный shell (чистый Bash) → может читать переменные окружения и эксфильтровать
Что проверяется:
Блокируйте каждый PR — тот же движок, что и GitHub Action, так что уязвимая конфигурация не сможет быть слита:
# .github/workflows/agent-security.yml
- uses: node9-ai/agent-security-action@v1
with:
fail-on: high # или 'never' — только комментарий
Маркетплейс: node9 Agent Security Check
Node9 monitor dashboard
node9 monitor открывает интерактивную терминальную панель с двумя режимами:
[1] В реальном времени — активность, одобрения, оповещения безопасности, текущий уровень риска[2] Отчёт — сводка за период: стоимость, главные инструменты, срабатывания щитов, радиус пораженияНажмите [2] в режиме монитора для сводки за период. Переключайте период с помощью [T]oday · [W]eek · [M]onth · [N]inety — те же панели, что в сканировании выше, но на основе вашего журнала аудита после установки.
Node9 monitor [2] Report
node9 monitor # нажмите [2] для просмотра отчёта
node9 report --period 7d # CLI-форма, без TUI
# macOS / Linux
brew tap node9-ai/node9 && brew install node9
# или через npm (любая платформа)
npm install -g node9-ai
node9 init # автоматически подключает все обнаруженные агенты и MCP-серверы
node9 doctor # проверяет корректность всех подключений
Требуется Node.js 18+.
Каждый щит — это готовый набор правил для определённого сервиса или домена. Включайте только то, что нужно.
node9 shield list # показать все щиты и их статус
git push --force, git reset --hard, git clean -fdDELETE / UPDATE без WHERE, DROP TABLE, TRUNCATEcurl | bash, несанкционированный sudo~/.zshrc, ~/.bashrc)Когда node9 помечает действие для проверки (например, git push --force, DROP TABLE), запрос на одобрение/отклонение отображается прямо в диалоге агента — никакой заморозки сессии, отдельного терминала или гонки с тайм-аутом хука. node9 по-прежнему запускает полный анализатор и принимает решение; только поверхность запроса перемещается к агенту.
ask. Все остальные агенты (Codex, Gemini, Antigravity, Hermes, Cursor, OpenCode, Pi) используют собственный модератор node9.reviewChannel в ~/.node9/config.json (или --no-ask в хуке):{
"settings": {
"reviewChannel": "ask", // "ask" = встроенный запрос агенту (по умолчанию) | "approver" = собственный модератор node9
},
}
approvers.cloud: true), запросы направляются к нему — node9 не позволит встроенному самоодобрению обойти маршрутизированное/вторичное одобрение.Когда наблюдения недостаточно, node9 sandbox запускает агента внутри одноразового контейнера с белым списком исходящего трафика на уровне ядра и ограниченными точками монтирования — при этом хуки node9 управляют и аудируют каждый вызов инструмента внутри контейнера. Жёсткая версия защиты: агент может трогать только ту папку, которую вы смонтировали, и обращаться только к разрешённым хостам; всё остальное блокируется на уровне ядра.
cd ~/my-project
node9 sandbox new # создаёт node9.sandbox.yaml — что монтировать и какие хосты разрешить
node9 sandbox run # собирает и запускает изолированного агента (ваш проект в /workspace)
node9 sandbox tail # наблюдает за действиями агента в реальном времени с хоста
Честное описание (Фаза 1): один контейнер, сначала Claude (Codex следующим); агент всё ещё хранит свои собственные учётные данные внутри контейнера (стена egress ограничивает их разрешёнными хостами) — «агент никогда не хранит секрет» — это фаза брокера учётных данных в планах. Требуется Docker.
Прозрачная обёртка для любого MCP-сервера. Агент видит тот же сервер — Node9 перехватывает каждый вызов инструмента.
{
"mcpServers": {
"postgres": {
"command": "node9",
"args": ["mcp", "--upstream", "npx -y @modelcontextprotocol/server-postgres postgresql://..."]
}
}
}
Или просто выполните node9 init — он автоматически обернёт ваши существующие MCP-серверы.
MCP-серверы могут изменять свои определения инструментов между сессиями. Скомпрометированный или вредоносный сервер может незаметно добавлять, удалять или изменять инструменты после того, как вы ему доверились — это rug pull атака.
Node9 фиксирует определения инструментов при первом использовании:
node9 mcp pin list # показать все зафиксированные серверы и хеши
node9 mcp pin update <serverKey> # удалить фиксацию, перефиксировать при следующем подключении
node9 mcp pin reset # очистить все фиксации
Помимо трёх основных команд (scan / monitor / report):
Плюс HUD в реальном времени в строке состояния Claude Code:
🛡 node9 | standard | [bash-safe] | ✅ 12 разрешено 🛑 2 заблокировано 🚨 0 dlp | ~$0.43
📊 claude-opus-4-7 | ctx [████████░░░] 54% | 5h [██░░░░░░░░] 12% | 7d [█░░░░░░░] 7%
🗂 2 CLAUDE.md | 8 правил | 3 MCP | 4 хука
Node9 предоставляет сигналы. Вот паттерны, которые стоит знать:
Единичные сигналы нормальны; постоянные паттерны — это то, на что нужно реагировать.
from node9 import configure, protect
configure(agent_name="my-agent", policy="require_approval")
@protect("bash")
def run_command(cmd: str) -> str:
...
Python SDK → · Пример CI-агента для ревью кода →
~/.claude/projects/, ~/.gemini/tmp/, ~/.gemini/antigravity-*/brain/, ~/.copilot/session-state/, ~/.codex/sessions/ — без API-вызовов, полностью офлайн~/.node9/audit.log.tools/list + tools/call, остальное передаёт~/.node9/snapshots/<hash16>/ — никогда не касается вашего .gitСправочник по конфигурации, умные правила, правила с состоянием, доверенные хосты, режимы одобрения, справочник CLI — на node9.ai/docs.
Node9 Pro добавляет блокировку управления, SAML/SSO, централизованный экспорт аудита и развёртывание в VPC. См. node9.ai.
Apache-2.0
Сделано с ☕ и здоровой паранойей.
| Проверка | Что помечается |
|---|
| CI-1 | зафиксированная конфигурация агента, которая предварительно разрешает широкие инструменты или запускает удалённые хуки |
| CI-2 | внедряемые рабочие процессы агента — посторонний может запустить агента и взломать его |
| CI-3 | незафиксированные / @latest MCP-серверы или встроенные учётные данные (цепочка поставок) |
| CI-4 | секреты, которые внедрённый агент может эксфильтровать |
| CI-6 | отравленные или опасные инструкции в CLAUDE.md / AGENTS.md / навыках |
| Щит | Что перехватывает | Включение |
|---|
project-jail | Блокирует чтение ~/.ssh, ~/.aws, .env, учётных данных через Bash и Read | node9 shield enable project-jail |
bash-safe | curl | bash, rm -rf /, перезапись диска, eval удалённого | node9 shield enable bash-safe |
postgres | DROP TABLE, TRUNCATE, DROP COLUMN, DELETE без WHERE | node9 shield enable postgres |
mongodb | dropDatabase, drop(), deleteMany({}), удаление индексов | node9 shield enable mongodb |
redis | FLUSHALL, FLUSHDB, CONFIG SET на живом сервере | node9 shield enable redis |
aws | Удаление S3, завершение EC2, изменения IAM, уничтожение RDS | node9 shield enable aws |
k8s | Удаление namespace, helm uninstall, зачистка ролей кластера | node9 shield enable k8s |
docker | system prune, volume prune, rm -f контейнеров | node9 shield enable docker |
github | gh repo delete, удаление удалённых веток, изменения настроек | node9 shield enable github |
filesystem | chmod 777, запись в /etc/, /boot/, /usr/ | node9 shield enable filesystem |
mcp-tool-gating | Неодобренные MCP-инструменты, незаметно активирующие новые возможности | node9 shield enable mcp-tool-gating |
node9 undo| Команда | Что показывает | Когда использовать |
|---|
node9 blast | Что ИИ-агент может достичь прямо сейчас — файлы, учётные данные, окружение | Первое, что нужно запустить на любом компьютере |
node9 tail | Поток в реальном времени каждого вызова инструмента (только текст, без TUI) | Для передачи в другие инструменты, CI, логи |
node9 sessions | История сессий с запросом, трассировкой инструментов, стоимостью, снимком | Для проверки передачи дел или прошлой работы |
node9 dlp | Результаты утечки учётных данных в тексте ответов Claude | Всякий раз, когда срабатывает DLP-оповещение на рабочем столе |
node9 mask | Замена открытых секретов на локальные файлы истории сессий | После обнаружения DLP — очищает локальный диск |
| Сигнал | Вероятное значение |
|---|
Would have blocked ≥ 5 за неделю | Агент пытается выполнять операции с высоким воздействием; стоит просмотреть щиты |
Одно правило review-git-push >50% результатов | Ваше собственное правило срабатывает как задумано — не риск, а просто контроль |
DLP-срабатывание в инструменте user-prompt | Вы вставили секрет в свой собственный запрос — смените ключ |
| Цикл агента ×50+ на одном файле | Агент застрял в цикле редактирование/тест/исправление — проверьте контекст или замедлитесь |
| Несоответствие фиксации MCP-инструмента | Сервер изменил свои инструменты — проверьте перед повторным доверием |
| Предупреждение о большом MCP-ответе | Этот сервер раздувает ваш контекст для каждого последующего шага |
Оповещение Response DLP | Claude написал секрет в своём ответе — не заблокировано, немедленно смените ключ |
DLP-срабатывание в tool-result | Claude прочитал файл, содержащий секрет (.env, учётные данные) — смените ключ и выполните node9 mask |
DLP-срабатывание в [Shell] | Открытый секрет в ~/.zshrc или ~/.bashrc — каждая сессия ИИ может его увидеть |
ipset/iptables, затем переключаются на непривилегированного агента с демоном node9 и хуками внутри; монтируется только файл учётных данных агента, никогда весь ~/.claude