アップデート一覧に戻る
New releaseJul 24, 2026

node9-proxy v1.64.0

エージェンティック時代の実行セキュリティ層。自律型AIエージェントに対して、決定論的な "Sudo" ガバナンスと監査ログを提供します。

共有

🛡️ Node9

あなたのAIエージェントは実際に何をしていたのか?それを明らかにします。

npm version monthly downloads License: Apache 2.0 Documentation Try on HF Spaces

Node9は、AIエージェントとそれが使用できるツールの間に位置します — 発見(エージェントがすでに何をしていたか)、保護(危険なアクションをリアルタイムでブロック)、レビュー(任意の期間に何が起こったかを確認)を行います。

Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · あらゆるMCPサーバーと連携します。

Node9の機能

  • 🔍 発見 — 過去のAIセッション全てをスキャンし、資格情報漏洩、エージェントループ、ブロックされた操作、そしてエージェントが現在ディスク上でアクセス可能な全てのシークレットを検出します
  • 🛡 保護 — 危険なコマンド(rm -rfgit push --forceDROP TABLE、資格情報読み取り、curl | bash、AWS/GitHub/Stripeキーの漏洩など)が実行される前にレビューまたはブロックします
  • 📊 レビュー — 期間指定レポート(今日/週/月/90日)を表示:エージェントごとのコスト、トップツール、発動したシールド、被害範囲を確認

遡及スキャン

これは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

リポジトリのスキャン — エージェントCIセキュリティ

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

チェック内容:

チェックフラグ
CI-1広範なツールを事前承認したりリモートフックを実行するエージェント設定がコミットされている
CI-2インジェクション可能なエージェントワークフロー — 外部者がエージェントをトリガーして乗っ取れる
CI-3ピン留めされていない / @latest のMCPサーバーまたはインライン資格情報(サプライチェーン)
CI-4インジェクションされたエージェントが流出させられるシークレット
CI-6CLAUDE.md / AGENTS.md / スキル内の悪意あるまたは危険な指示

すべての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+ が必要です。

シールド — 厳選されたルールパック

各シールドは、特定のサービスやドメイン向けに厳選されたルールセットです。必要なものだけを有効にしてください。

シールドキャッチする内容有効化方法
project-jail~/.ssh~/.aws.env、BashおよびReadツールを介した資格情報の読み取りをブロックnode9 shield enable project-jail
bash-safecurl | bashrm -rf /、ディスク上書き、リモートのevalnode9 shield enable bash-safe
postgresDROP TABLETRUNCATEDROP COLUMNWHEREのないDELETEnode9 shield enable postgres
mongodbdropDatabasedrop()deleteMany({})、インデックス削除node9 shield enable mongodb
redis稼働中のサーバーでのFLUSHALLFLUSHDBCONFIG SETnode9 shield enable redis
awsS3削除、EC2終了、IAM変更、RDS破壊node9 shield enable aws
k8s名前空間削除、helm uninstall、クラスターロールワイプnode9 shield enable k8s
dockersystem prunevolume prune、コンテナのrm -fnode9 shield enable docker
githubgh repo delete、リモートブランチ削除、設定変更node9 shield enable github
filesystemchmod 777/etc//boot//usr/下への書き込みnode9 shield enable filesystem
mcp-tool-gating承認されていないMCPツールが新しい機能を静かに有効化するのを防ぐnode9 shield enable mcp-tool-gating
node9 shield list    # show all shields + status

常時オン — 設定不要

  • Gitgit push --forcegit reset --hardgit clean -fd をキャッチ
  • SQLWHEREのないDELETE/UPDATEDROP TABLETRUNCATE をキャッチ
  • Shellcurl | bash、不正なsudo をキャッチ
  • DLP — 任意のツール引数、ファイル内容、シェル設定(~/.zshrc~/.bashrc)内のAWSキー、GitHubトークン、Stripeキー、PEM秘密鍵をフラグ
  • 応答DLP — バックグラウンドスキャナーがClaudeの会話履歴を読み取り、Claudeが応答テキスト内に 秘密を書き込んだ 場合に警告を発します
  • 自動元に戻す — AIファイル編集の前にgitスナップショットを作成 → node9 undo で元に戻せます
  • スキルピン留め — インストールされたClaudeスキル/プラグインをセッション間でSHA-256検証します

レビュープロンプト — エージェント内でインライン承認

Node9がアクションを レビュー 用にフラグした場合(例:git push --forceDROP TABLE)、承認/拒否プロンプトは エージェント会話内にインライン で表示されます — セッションがフリーズしたり、別のターミナルが必要になったり、フックのタイムアウト競合が発生することはありません。Node9が完全な評価を実行し決定を行いますが、プロンプトの 表示面 だけがエージェントに移動します。

  • Claude CodeGitHub Copilot CLI では デフォルトでオン — これらのエージェントのフック契約はネイティブな ask をサポートしています。それ以外のエージェント(Codex、Gemini、Antigravity、Hermes、Cursor、OpenCode、Pi)は、Node9独自の承認者を使用します。
  • 制御方法~/.node9/config.jsonreviewChannel で設定(またはフックに --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
  • 使い捨て — コンテナは終了時に破棄されます。プロジェクトの編集は実際のディスクに保存され、それ以外は何も残りません。
  • 同じポリシー — 既存のシールド/Egressルール/承認はボックス内でも適用され、同じ監査ログとダッシュボードにストリーミングされます。
  • 姿勢ループのクローズ — これを実行すると、隔離/Egressの発見事項がグリーンに変わります。

正直な範囲(フェーズ1):シングルコンテナ、Claude優先(Codexは次回);エージェントはボックス内で 自身の 資格情報を保持します(Egress壁により許可されたホストに制限されます)— 「エージェントが秘密を決して保持しない」というのはロードマップ上の資格情報ブローカーフェーズです。Dockerが必要です。

MCPゲートウェイ

任意のMCPサーバーを透過的にラップします。エージェントは同じサーバーを見ます — Node9が全てのツール呼び出しをインターセプトします。

{
  "mcpServers": {
    "postgres": {
      "command": "node9",
      "args": ["mcp", "--upstream", "npx -y @modelcontextprotocol/server-postgres postgresql://..."]
    }
  }
}

または単に node9 init を実行してください — 既存のMCPサーバーを自動的にラップします。

🔐 MCPツールピン留め — ラグプル対策

MCPサーバーはセッション間でツール定義を変更できます。侵害された、または悪意のあるサーバーは、最初に信頼した後に静かにツールを追加、削除、変更する可能性があります — これは ラグプル攻撃 です。

Node9は初回使用時にツール定義をピン留めします:

  1. 初回接続 — ゲートウェイが各ツールの名前、説明、スキーマのSHA-256ハッシュを記録
  2. 以降の接続 — ハッシュを比較;ツールが変更されていた場合、セッションは 隔離 され、人がレビューして変更を承認するまで全てのツール呼び出しがブロックされます
  3. ピン状態の破損 — フェイルクローズ(ブロック)、決して静かに再信頼しません
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)に加えて:

コマンド表示内容使用時機
node9 blastAIエージェントが現在アクセス可能なもの — ファイル、認証情報、環境変数任意のマシンで最初に実行すべき
node9 tail全てのツール呼び出しのライブストリーム(テキストのみ、TUIなし)他のツールへのパイプ、CI、ログ
node9 sessionsセッション履歴(プロンプト、ツールトレース、コスト、スナップショット)引き継ぎや過去の作業のレビュー
node9 dlpClaude応答テキスト内の資格情報漏洩の発見事項DLPデスクトップアラートが発報したとき
node9 maskローカルセッション履歴ファイルから平文の秘密情報を削除DLP発見後、ローカルディスクをクリーンアップ

さらに、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がシグナルを表示します。知っておくべきパターンは以下の通りです:

シグナル考えられる意味
週に 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セッションがアクセス可能

単発のシグナルは正常ですが、持続的なパターンは対応すべきものです。

Python SDK — あらゆるPythonエージェントを統制

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呼び出しなし、完全オフライン
  • ランタイム は、事前実行フック(Claude Code、Codex、Antigravity、GitHub Copilot CLI、Gemini CLI、Opencode、Pi)またはMCPゲートウェイ(Cursor、Windsurf、VSCode、Claude Desktop)を介してツール呼び出しをインターセプトします。すべての決定は ~/.node9/audit.log にアトミックに書き込まれます。
  • MCPゲートウェイ はstdioプロキシです。tools/list + tools/call JSON-RPCをインターセプトし、その他は転送します
  • ポリシーエンジンmvdan-sh を使用してbash AST分析を行います — バックスラッシュエスケープ、変数展開、リモートダウンロードのevalによる難読化を無効化します
  • 自動元に戻す用シャドウリポジトリ~/.node9/snapshots/<hash16>/ にあります — あなたの .git には一切影響しません
  • サンドボックス は、ipset/iptables でデフォルト拒否のEgress壁を封印し、ルート以外のエージェントとしてNode9のデーモンとフックを内部で実行するDockerfile + エントリポイントを生成します。エージェントの資格情報ファイルのみがマウントされ、~/.claude 全体はマウントされません

完全なドキュメント

設定リファレンス、スマートルール、ステートフルルール、信頼できるホスト、承認モード、CLIリファレンス — node9.ai/docs をご覧ください。

関連プロジェクト

エンタープライズ

Node9 Pro は、ガバナンスロック、SAML/SSO、中央監査エクスポート、VPCデプロイメントを追加します。node9.ai をご覧ください。

ライセンス

Apache-2.0

☕ と健全なパラノイアで作られています。

カテゴリ