Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
AgentGuard — Sandbox a fiducia zero per agenti AI con jail del filesystem a livello kernel, proxy di rete trasparente e motore di policy basato su YAML per intercettare e controllare comandi shell, operazioni su file e richieste di rete. | Kitploit
Strumenti/GitHubGitHub/thodoristsampouris/agentguard
Strumenti DifensiviSicurezza dei ContenitoriVirtualizzazione per la SicurezzaSicurezza di ReteSicurezza dell'IA
GitHubthodoristsampouris/agentguard

AgentGuard

Sandbox a fiducia zero per agenti AI con jail del filesystem a livello kernel, proxy di rete trasparente e motore di policy basato su YAML per intercettare e controllare comandi shell, operazioni su file e richieste di rete.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
8105 mesi faNon ancora revisionato
Condividi

AgentGuard

Sandbox a fiducia zero per agenti AI autonomi.

AgentGuard avvolge qualsiasi agente AI (LangChain, CrewAI, AutoGen, script personalizzati) con binari di sicurezza. Con un solo cambiamento di comando:

root@kitploit:~
# Before (dangerous — agent has full system access)
python my_agent.py

# After (sandboxed)
agentguard run -- python my_agent.py

AgentGuard intercetta ogni comando shell, modifica di file e richiesta di rete che l'agente effettua. Le azioni sicure vengono automaticamente consentite, quelle pericolose bloccate, e tutto il resto richiede l'approvazione umana.

Come Funziona

AgentGuard ha quattro livelli di difesa che lavorano insieme:

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│ Layer 0: Jail del Filesystem (sandbox-exec su macOS)          │
│   Applicazione a livello kernel. Limita le scritture su file │
│   e la rete a livello di syscall. L'agente non può bypassare │
│   dallo userspace. Blocca open() di Python, requests.post()  │
│   ecc.                                                       │
├─────────────────────────────────────────────────────────────┤
│ Layer 1: Proxy di Rete                                       │
│   Proxy HTTP/HTTPS trasparente. Ogni chiamata di rete        │
│   dell'agente viene verificata rispetto alla policy. Consenti│
│   /Nega per destinazione con piena visibilità nella TUI.     │
├─────────────────────────────────────────────────────────────┤
│ Layer 2: Shim di PATH                                        │
│   Shim di script shell che intercettano comandi come git,    │
│   pip, curl, rm. Ogni shim chiede al demone l'autorizzazione │
│   prima di eseguire il vero binario.                         │
├─────────────────────────────────────────────────────────────┤
│ Layer 3: Motore di Policy + Demone di Approvazione            │
│   Regole basate su YAML valutano ogni azione intercettata.   │
│   Consenti automaticamente comandi sicuri, blocca            │
│   automaticamente quelli pericolosi, chiedi all'umano per    │
│   tutto il resto.                                            │
└─────────────────────────────────────────────────────────────┘

Nessun singolo layer è il confine di sicurezza. Lavorano insieme — difesa in profondità.

Avvio Rapido

Compilazione

root@kitploit:~
go build -o agentguard ./cmd/agentguard/
go build -o agentguard-check ./cmd/agentguard-check/

Entrambi i binari devono essere nella stessa directory.

Creare una Policy

root@kitploit:~
agentguard init

Questo crea .agentguard/policy.yaml nella directory corrente. Modificalo per adattarlo alle tue esigenze.

Eseguire un Agente (TUI Interattiva)

root@kitploit:~
agentguard run -- python my_agent.py

La TUI prende il controllo del terminale e mostra:

  • Flusso di attività in tempo reale (ogni azione intercettata)
  • Richieste di approvazione per comandi ambigui (premi Y/N/A/B)
  • Eventi di rete consentiti/negati dal proxy
  • Eventi di violazione della sandbox
  • stdout/stderr dell'agente (attiva/disattiva con Tab)

Eseguire un Agente (Headless)

Per strumenti interattivi come Claude Code che necessitano del terminale:

root@kitploit:~
agentguard run --headless -- claude

L'agente ottiene il terminale direttamente. AgentGuard viene eseguito silenziosamente in background. Tutti gli eventi vengono registrati in ~/.agentguard/logs/headless.log. Monitora in un altro terminale:

root@kitploit:~
tail -f ~/.agentguard/logs/headless.log

Riferimenti CLI

root@kitploit:~
agentguard run [flags] -- <command> [args...]
    --policy <path>     Use a specific policy file
    --headless          No TUI — agent gets the terminal
    --default-allow     Auto-allow PROMPT decisions in headless mode (default: auto-deny)
    --no-sandbox        Disable sandbox-exec (shims and proxy still active)

agentguard init         Create a default policy file
agentguard version      Print version

File di Policy

Le policy sono file YAML che definiscono cosa l'agente può e non può fare. AgentGuard controlla tre posizioni (in ordine):

  1. ./.agentguard/policy.yaml (progetto locale)
  2. ~/.agentguard/policy.yaml (utente globale)
  3. Predefiniti interni

Esempio di Policy

root@kitploit:~
version: 1

deny:
  # Block dangerous commands
  - command: "rm"
    args: "-rf *"
    reason: "Recursive forced deletion is too dangerous"
  - command: "sudo"
    args: "*"
    reason: "Privilege escalation is not allowed"
  - command: "chmod"
    args: "777 *"
    reason: "World-writable permissions are dangerous"

  # Block reading sensitive files (enforced by sandbox-exec)
  - file:
      path: "*.env"
      action: "read"
      reason: "Don't let agent read .env files"
  - file:
      path: "*.pem"
      action: "read"
      reason: "Don't let agent read private keys"

allow:
  # Safe read-only commands
  - command: "ls"
  - command: "cat"
  - command: "pwd"
  - command: "echo"
  - command: "grep"
  - command: "head"
  - command: "tail"
  - command: "wc"

  # Read-only git
  - command: "git"
    args: "status"
  - command: "git"
    args: "log *"
  - command: "git"
    args: "diff *"

  # Allow writes to workspace
  - file:
      path: "/tmp/workspace/**"
      action: "write"

  # Allow specific API endpoints
  - network:
      destination: "api.anthropic.com:443"
  - network:
      destination: "api.github.com:443"

Ordine di Valutazione delle Regole

  1. Regole di negazione specifiche — controllate per prime. Se corrispondono, l'azione viene bloccata immediatamente.
  2. Regole di consenso — controllate per seconde. Se corrispondono, l'azione è permessa.
  3. Regole di negazione generiche (es. deny network *) — controllate per terze. Agisce come una negazione predefinita.
  4. Nessuna corrispondenza — l'umano viene avvisato (TUI) o negato automaticamente (headless).

Tipi di Regole

Regole di comando — corrispondono a comandi shell per nome e pattern degli argomenti:

root@kitploit:~
- command: "git"
  args: "push *"
  reason: "Pushing requires approval"

Regole di file — corrispondono a operazioni su file (applicate da sandbox-exec):

root@kitploit:~
- file:
    path: "*.env"
    action: "read"     # "read" or "write"
    reason: "Protect secrets"

Regole di rete — corrispondono a destinazioni di rete (applicate da proxy + sandbox-exec):

root@kitploit:~
- network:
    destination: "api.anthropic.com:443"

Usa * come carattere jolly in argomenti comandi, percorsi file e destinazioni di rete.

Controlli TUI

TastoAzioneQuando
YConsenti la richiesta in sospesoRichiesta di approvazione visibile
NNega la richiesta in sospesoRichiesta di approvazione visibile
AConsenti + ricordi per questa sessione ("Consenti Sempre")Richiesta di approvazione visibile
BNega + ricordi per questa sessione ("Blocca per Sempre")Richiesta di approvazione visibile
TabAttiva/disattiva pannello stdout/stderr dell'agenteSempre
Su/GiùScorri il flusso di attivitàSempre
QEsci (termina l'agente)Sempre

Cosa Cattura Ogni Layer

Azione dell'agenteShimProxysandbox-exec
subprocess.run(["rm", "-rf", "/"])Yes--
subprocess.run(["git", "push"])Yes--
requests.post("https://evil.com")-YesYes
urllib.request.urlopen("https://api.com")-YesYes
open(".env", "r")--Yes
open("/etc/shadow", "w")--Yes
/usr/bin/curl https://evil.com (percorso assoluto)-YesYes

Architettura

root@kitploit:~
agentguard/
├── cmd/
│   ├── agentguard/              # Main CLI binary
│   └── agentguard-check/        # Shim helper binary
├── internal/
│   ├── policy/                  # Policy engine (YAML parsing, rule evaluation)
│   ├── events/                  # Event system (JSONL audit log, pub/sub)
│   ├── daemon/                  # Central daemon (Unix socket, approval queue)
│   │   └── client/              # Client library for shims
│   ├── shim/                    # Shim generator (PATH-based interception)
│   ├── proxy/                   # Transparent network proxy
│   ├── spawner/                 # Orchestration + macOS sandbox integration
│   └── ui/tui/                  # Terminal UI (Bubble Tea)
├── configs/
│   └── default_policy.yaml      # Reference policy file
├── .gitignore
├── go.mod
├── LICENSE
└── README.md

Panoramica dei Componenti

ComponentePacchettoScopo
Motore di Policyinternal/policyAnalizza regole YAML, valuta richieste → CONSENTI / NEGA / RICHIEDI
Sistema di Eventiinternal/eventsLog di audit JSONL in sola aggiunta + pub/sub in tempo reale per TUI
Demoneinternal/daemonServer socket Unix, coda di approvazione con timeout, gestione sessione
TUIinternal/ui/tuiInterfaccia terminale Bubble Tea con flusso di attività e modale di approvazione
Generatore di Shiminternal/shimGenera shim di script shell, risolve percorsi binari reali
Proxy di Reteinternal/proxyProxy HTTP/HTTPS trasparente che applica policy per destinazione
Spawnerinternal/spawnerOrchestra tutto: policy → demone → shim → proxy → sandbox → agente → TUI
Sandbox macOSinternal/spawner/jail_darwin.gosandbox-exec con profili Seatbelt per l'applicazione a livello kernel

Log di Audit

Ogni azione intercettata viene registrata in ~/.agentguard/logs/YYYY-MM-DD.jsonl:

root@kitploit:~
{"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"}

Interroga con strumenti standard:

root@kitploit:~
# All denied actions today
cat ~/.agentguard/logs/2026-03-22.jsonl | jq 'select(.decision == "deny")'

# All network requests
cat ~/.agentguard/logs/2026-03-22.jsonl | jq 'select(.source == "proxy")'

# Commands that required human approval
cat ~/.agentguard/logs/2026-03-22.jsonl | jq 'select(.decided_by == "human")'

Supporto Piattaforma

PiattaformaShimProxysandbox-execNegazione lettura file
macOS (Apple Silicon)YesYesYesYes
macOS (Intel)YesYesYesYes
LinuxYesYesNo (futuro: namespaces + seccomp)No
WindowsYesYesNo (futuro: Job Objects)No

Modello di Sicurezza

Modello di minaccia: L'agente non è attendibile. Potrebbe provare a:

  • Eseguire comandi pericolosi (rm -rf /, sudo)
  • Esfiltrare dati tramite chiamate di rete
  • Leggere file sensibili (.env, chiavi private)
  • Bypassare la sandbox tramite percorsi assoluti, API native del linguaggio o manipolazione delle variabili d'ambiente

Cosa previene AgentGuard:

  • I comandi shell vengono intercettati dagli shim e valutati dalla policy
  • Le chiamate di rete vengono instradate attraverso il proxy e filtrate per destinazione
  • Le scritture su file sono limitate da sandbox-exec alle directory consentite
  • Le letture di file possono essere negate per pattern specifici (.env, .pem, ecc.)
  • La manipolazione della sessione tramite il socket del demone è bloccata
  • L'iniezione di shell negli script shim è prevenuta dalla validazione dell'input
  • L'iniezione ANSI nella visualizzazione TUI viene rimossa
  • Il path traversal nelle regole file è prevenuto da filepath.Clean

Cosa NON previene AgentGuard (limitazioni note):

  • Syscall raw tramite ctypes/cffi (anche sandbox-exec le blocca su macOS)
  • Exploit del kernel (richiede root, stesso confine di fiducia di qualsiasi app)
  • Esfiltrazione di dati tramite destinazioni di rete consentite (se permetti api.anthropic.com, l'agente può inviare dati lì)
  • Lettura di file non nell'elenco di negazione (permettiamo tutte le letture tranne i pattern esplicitamente negati)

Sviluppo

Eseguire i Test

root@kitploit:~
go test ./... -race

Copertura dei Test

Il progetto ha oltre 140 test che coprono:

  • Valutazione delle policy (corrispondenza glob, fusione regole, prevenzione path traversal)
  • Registrazione eventi (formato JSONL, rotazione giornaliera, scritture concorrenti, pub/sub)
  • Demone (comunicazione socket, coda approvazione, gestione sessione, timeout)
  • TUI (gestione tastiera, visualizzazione eventi, sanificazione ANSI)
  • Generazione shim (prevenzione iniezione shell, validazione percorsi)
  • Proxy di rete (consenti/nega, registrazione eventi)
  • Test di integrazione (flusso end-to-end completo)
  • Sandbox macOS (generazione profilo, esecuzione reale sandbox-exec)

Tag di Build

  • jail_darwin.go — macOS sandbox-exec (compilato solo su macOS)
  • jail_noop.go — modalità di fallback solo shim (compilata su Linux/Windows)
  • sandbox_monitor_darwin.go — tailing del log di sistema macOS per violazioni della sandbox
  • sandbox_monitor_noop.go — no-op su piattaforme non macOS

Licenza

Vedi LICENSE.

Scarica lo strumento