
エージェンティック時代の実行セキュリティ層。自律型AIエージェントに対して、決定論的な "Sudo" ガバナンスと監査ログを提供します。
あなたのAIエージェントは実際に何をしていたのか?それを明らかにします。
Node9は、AIエージェントとそれが使用できるツールの間に位置します — 発見(エージェントがすでに何をしていたか)、保護(危険なアクションをリアルタイムでブロック)、レビュー(任意の期間に何が起こったかを確認)を行います。
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キーの漏洩など)が実行される前にレビューまたはブロックしますこれはNode9を構築中に自分のマシンで行った90日間の結果です。スコア25/100、AIエージェントが現在アクセス可能な資格情報ファイルが5つありました。
npx node9-ai scan # インストール前、約10秒で完了、何もアップロードしません
node9 scan # インストール後、同じ出力
Node9 scan scorecard
node9 posture は、このマシンが侵害されたエージェントに対してどの程度露出しているかを評価します — 隔離、Egress、ディスク上のシークレット、サプライチェーン、権限 — そして各発見事項に対する修正コマンドを提示します。
node9 posture # 各発見事項に対する最も重要なリスクと修正を含むスコアカード
node9 posture --ship # 匿名化スナップショットをNode9ダッシュボード(フリートビュー)に送信
発見事項は 誰が修正できるか でグループ化されています:🔒 Node9が低減するもの(コマンドを実行するだけ)と 🧱 あなただけが修正できるもの。各項目には平易な言語で「何が」「なぜ」「誰が」と実際の修復手順が含まれています。例えば、「エージェントがホスト上でサンドボックス化されずに実行されている」という発見事項は、すぐに node9 sandbox run(下記)を指し示します。
🛡️ Node9 Posture — agent on this host Score: 100/100 (Good)
2 advisories below don't affect the score — OS-level exposure, yours to weigh.
🟢 node9 is already protecting you
✅ Secrets node9 DLP is blocking this
✅ Egress node9 egress is approval-gating this
✅ Approval gate node9 is blocking this
✅ Privilege node9 is approval-gating this
🔒 node9 reduces these — run the command, the rest is yours
⚠️ Isolation Running directly on the host — no container
The agent runs loose on your whole machine, not in a sandbox.
→ node9 sandbox run <agent> — jail it: kernel egress + scoped mounts + node9 inside
→ node9 shield enable project-jail — or shrink the blast radius, keep host access
⚠️ Network exposure 4 services on 0.0.0.0 (node :3000/:4000, PostgreSQL :5432, Redis :6379)
Reachable from your whole network, not just this laptop.
→ node9 shield enable postgres|redis — node9 blocks DROP TABLE / FLUSHALL
→ bind to 127.0.0.1 / firewall the port (your part)
✅ Supply chain no issues found
✅ Coverage no issues found
Track this across your fleet & keep it green → node9.ai
node9 scan-repo は、任意のリポジトリ(またはローカルフォルダ)をチェックし、GitHub Actionsに組み込まれたAIエージェントが 外部の攻撃者に乗っ取られる 可能性がある方法を検出します — インジェクション可能なワークフロー、エージェントがアクセス可能なシークレット、ピン留めされていないMCPサーバー、過度に広範なエージェント設定、悪意のある指示ファイルなど。静的かつパースのみ:コミットされた設定のみを読み取り、リポジトリのコードを実行することはありません。公開リポジトリではインストールやトークンは不要です。
npx node9-ai scan-repo <owner/repo> # any public repo, no install
node9 scan-repo . # a local checkout — no network
node9 scan-repo <owner/repo> --json # machine-readable
🛡️ node9 scan-repo · node9-ai/agent-security-demo · ⚠️ agent-security risk found
inspected 2 config file(s), 2 finding(s)
🔴 CRITICAL Injectable agent workflow — untrusted input reaches a tool-using agent with secrets
.github/workflows/vulnerable-example.yml · CI-2
• runs with base-repo secrets (pull_request_target)
• checks out the untrusted PR head into the workspace root
• allowed_non_write_users: "*" — any user can trigger the agent
• no effective actor gate
🔴 CRITICAL Exfiltratable secrets reachable by an injectable agent
.github/workflows/vulnerable-example.yml · CI-4
• agent has arbitrary shell (bare Bash) → can read env and exfiltrate
チェック内容:
すべてのPRをゲート — 同じエンジンがGitHub Actionとして動作するため、乗っ取られやすい設定がマージされるのを防ぎます:
# .github/workflows/agent-security.yml
- uses: node9-ai/agent-security-action@v1
with:
fail-on: high # or 'never' to just comment
マーケットプレイス: node9 Agent Security Check
Node9 monitor dashboard
node9 monitor は、2つのビューを持つ対話型ターミナルダッシュボードを開きます:
[1] リアルタイム — ライブアクティビティ、承認、セキュリティアラート、現在のリスクスコア[2] レポート — 期間指定サマリー:コスト、トップツール、発動したシールド、被害範囲モニターで [2] を押すと、期間指定サマリーが表示されます。ウィンドウは [T]oday(今日) · [W]eek(週) · [M]onth(月) · [N]inety(90日)で切り替えられます — 上記のスキャンと同じパネルで、インストール後の監査ログに基づいて動作します。
Node9 monitor [2] Report
node9 monitor # press [2] for Report view
node9 report --period 7d # CLI form, no TUI
# macOS / Linux
brew tap node9-ai/node9 && brew install node9
# or via npm (any platform)
npm install -g node9-ai
node9 init # auto-wires all detected agents + MCP servers
node9 doctor # verify everything is wired correctly
Node.js 18+ が必要です。
各シールドは、特定のサービスやドメイン向けに厳選されたルールセットです。必要なものだけを有効にしてください。
node9 shield list # show all shields + status
git push --force、git reset --hard、git clean -fd をキャッチWHEREのないDELETE/UPDATE、DROP TABLE、TRUNCATE をキャッチcurl | bash、不正なsudo をキャッチ~/.zshrc、~/.bashrc)内のAWSキー、GitHubトークン、Stripeキー、PEM秘密鍵をフラグnode9 undo で元に戻せますNode9がアクションを レビュー 用にフラグした場合(例:git push --force、DROP TABLE)、承認/拒否プロンプトは エージェント会話内にインライン で表示されます — セッションがフリーズしたり、別のターミナルが必要になったり、フックのタイムアウト競合が発生することはありません。Node9が完全な評価を実行し決定を行いますが、プロンプトの 表示面 だけがエージェントに移動します。
ask をサポートしています。それ以外のエージェント(Codex、Gemini、Antigravity、Hermes、Cursor、OpenCode、Pi)は、Node9独自の承認者を使用します。~/.node9/config.json の reviewChannel で設定(またはフックに --no-ask を指定):{
"settings": {
"reviewChannel": "ask", // "ask" = インラインエージェントプロンプト(デフォルト)| "approver" = Node9独自の承認者
},
}
approvers.cloud: true)、レビューはその承認者にルーティングされます — Node9はインライン自己承認によってルーティング済み/第二者承認がバイパスされるのを防ぎます。監視だけでは不十分な場合、node9 sandbox はエージェントを カーネル強制のEgress許可リスト と スコープ付きマウント を持つ使い捨てコンテナ内で実行します — 同時にNode9のフックが ボックス内 の全てのツール呼び出しを監査および制御します。保護のハードバージョン:エージェントはマウントしたフォルダと許可したホストにしかアクセスできず、それ以外はカーネルレベルでドロップされます。
cd ~/my-project
node9 sandbox new # write node9.sandbox.yaml — what to mount + which hosts to allow
node9 sandbox run # build + boot the jailed agent (your project at /workspace)
node9 sandbox tail # watch the agent's actions live, from the host
正直な範囲(フェーズ1):シングルコンテナ、Claude優先(Codexは次回);エージェントはボックス内で 自身の 資格情報を保持します(Egress壁により許可されたホストに制限されます)— 「エージェントが秘密を決して保持しない」というのはロードマップ上の資格情報ブローカーフェーズです。Dockerが必要です。
任意のMCPサーバーを透過的にラップします。エージェントは同じサーバーを見ます — Node9が全てのツール呼び出しをインターセプトします。
{
"mcpServers": {
"postgres": {
"command": "node9",
"args": ["mcp", "--upstream", "npx -y @modelcontextprotocol/server-postgres postgresql://..."]
}
}
}
または単に node9 init を実行してください — 既存のMCPサーバーを自動的にラップします。
MCPサーバーはセッション間でツール定義を変更できます。侵害された、または悪意のあるサーバーは、最初に信頼した後に静かにツールを追加、削除、変更する可能性があります — これは ラグプル攻撃 です。
Node9は初回使用時にツール定義をピン留めします:
node9 mcp pin list # show all pinned servers and hashes
node9 mcp pin update <serverKey> # remove pin, re-pin on next connection
node9 mcp pin reset # clear all pins
上記の3つの主要フローコマンド(scan / monitor / report)に加えて:
さらに、Claude Codeのステータスラインに ライブHUD が表示されます:
🛡 node9 | standard | [bash-safe] | ✅ 12 allowed 🛑 2 blocked 🚨 0 dlp | ~$0.43
📊 claude-opus-4-7 | ctx [████████░░░] 54% | 5h [██░░░░░░░░] 12% | 7d [█░░░░░░░] 7%
🗂 2 CLAUDE.md | 8 rules | 3 MCPs | 4 hooks
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 JSON-RPCをインターセプトし、その他は転送します~/.node9/snapshots/<hash16>/ にあります — あなたの .git には一切影響しませんipset/ でデフォルト拒否のEgress壁を封印し、ルート以外のエージェントとしてNode9のデーモンとフックを内部で実行するDockerfile + エントリポイントを生成します。エージェントの資格情報ファイルのみがマウントされ、 全体はマウントされません設定リファレンス、スマートルール、ステートフルルール、信頼できるホスト、承認モード、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、WHEREのないDELETE | 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 | 名前空間削除、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 blast | AIエージェントが現在アクセス可能なもの — ファイル、認証情報、環境変数 | 任意のマシンで最初に実行すべき |
node9 tail | 全てのツール呼び出しのライブストリーム(テキストのみ、TUIなし) | 他のツールへのパイプ、CI、ログ |
node9 sessions | セッション履歴(プロンプト、ツールトレース、コスト、スナップショット) | 引き継ぎや過去の作業のレビュー |
node9 dlp | Claude応答テキスト内の資格情報漏洩の発見事項 | DLPデスクトップアラートが発報したとき |
node9 mask | ローカルセッション履歴ファイルから平文の秘密情報を削除 | DLP発見後、ローカルディスクをクリーンアップ |
| シグナル | 考えられる意味 |
|---|
週に Would have blocked ≥ 5 回 | エージェントが影響の大きい操作を試行している;シールドの見直しを検討すべき |
単一の review-git-push ルールが発見事項の >50% | 自分のルールが意図通りに発動している — リスクではなく単なる監視 |
user-prompt ツールでのDLP発見事項 | 自身のプロンプトに秘密情報を貼り付けた — キーをローテーション |
| 同じファイルでのエージェントループ ×50+ | エージェントが編集/テスト/修正サイクルに陥っている — コンテキストを確認するか速度を落とす |
| MCPツールピン不一致 | サーバーがツールを変更した — 再信頼する前にレビュー |
| 大規模MCP応答警告 | そのサーバーが以降のターンごとにコンテキストウィンドウを膨らませている |
Response DLP アラート | Claudeが応答テキスト内に秘密情報を書き込んだ — ブロックされず、すぐにローテーション |
tool-result でのDLP発見事項 | Claudeが秘密情報を含むファイル(.env、資格情報)を読み取った — キーをローテーションし node9 mask を実行 |
[Shell] でのDLP発見事項 | ~/.zshrc や ~/.bashrc 内の平文秘密情報 — 全てのAIセッションがアクセス可能 |
iptables~/.claude