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
zerobox — Sandboxing leggero e multipiattaforma basato sul runtime di OpenAI Codex. Metti in sandbox qualsiasi comando con controlli su file, rete e credenziali. | Kitploit
Strumenti/GitHubGitHub/afshinm/zerobox
Sicurezza dei ContenitoriAnalisi Dinamica (Sandboxing)DevSecOpsSicurezza dell'IA
GitHubafshinm/zerobox

zerobox

Sandboxing leggero e multipiattaforma basato sul runtime di OpenAI Codex. Metti in sandbox qualsiasi comando con controlli su file, rete e credenziali.

Vedi Repository
699403 mesi faRevisionato da Kitploit

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 →
Condividi

SDK Python di Zerobox

Zerobox PyPI version Zerobox license

SDK Python per zerobox. Esegui in sandbox qualsiasi comando con controlli su file, rete e credenziali.

root@kitploit:~
pip install zerobox

L'installazione del wheel inserisce la CLI zerobox nella directory bin/ del tuo ambiente ed espone un SDK Python.

Per l'uso da CLI, i concetti dei segreti, il riferimento completo alle flag, i numeri di performance e il supporto alle piattaforme, consulta il README principale.

Avvio rapido

root@kitploit:~
from zerobox import Sandbox

sandbox = Sandbox.create({"allow_write": ["/tmp"]})
print(sandbox.sh("echo hello").text())

Comandi

Tre modi per eseguire un comando. Ognuno restituisce un ShellCommand che termina con .text(), .json() o .output().

Shell

root@kitploit:~
name = "world"
sandbox.sh(f"echo hello {name}").text()

Python inline

root@kitploit:~
data = sandbox.py("import json; print(json.dumps({'sum': 1 + 2}))").json()

Comando esplicito + argomenti

root@kitploit:~
sandbox.exec("python3", ["-c", "print('hi')"]).text()

Risultati

root@kitploit:~
data = sandbox.sh("cat data.json").json()
result = sandbox.sh("exit 42").output()
# CommandOutput(code=42, stdout='', stderr='')

API asincrona

Usa AsyncSandbox in applicazioni asincrone in modo che l'attesa del sottoprocesso in sandbox non blocchi il loop degli eventi. La forma dei comandi è la stessa di Sandbox, ma la creazione e i terminatori sono in attesa (await).

root@kitploit:~
from zerobox import AsyncSandbox

sandbox = await AsyncSandbox.create({"allow_write": ["/tmp"]})

text = await sandbox.sh("echo hello").text()
data = await sandbox.sh("printf '{\"ok\": true}'").json()
result = await sandbox.exec("python3", ["-c", "print('hi')"]).output()

I comandi asincroni accettano la stessa opzione timeout:

root@kitploit:~
import subprocess

try:
    await sandbox.sh("sleep 60").text(timeout=1.0)
except subprocess.TimeoutExpired:
    print("cancelled")

Gestione degli errori

Un'uscita non-zero solleva SandboxCommandError:

root@kitploit:~
from zerobox import Sandbox, SandboxCommandError

sandbox = Sandbox.create()
try:
    sandbox.sh("exit 1").text()
except SandboxCommandError as e:
    print(e.code, e.stderr)

Segreti

Passa chiavi API che il processo in sandbox non vede mai. Il proxy sostituisce il valore reale solo per host approvati.

root@kitploit:~
import os
from zerobox import Sandbox

sandbox = Sandbox.create({
    "secrets": {
        "OPENAI_API_KEY": {
            "value": os.environ["OPENAI_API_KEY"],
            "hosts": ["api.openai.com"],
        },
        "GITHUB_TOKEN": {
            "value": os.environ["GITHUB_TOKEN"],
            "hosts": ["api.github.com"],
        },
    },
})

sandbox.sh('curl -H "Authorization: Bearer $OPENAI_API_KEY" https://api.openai.com/v1/models').text()

Vedi il README principale per come funziona la sostituzione dei placeholder.

Snapshots

Registra le modifiche al filesystem e annullale automaticamente:

root@kitploit:~
sandbox = Sandbox.create({
    "allow_write": ["."],
    "restore": True,
})
sandbox.sh("npm install").text()

Registra senza annullare:

root@kitploit:~
sandbox = Sandbox.create({
    "allow_write": ["."],
    "snapshot": True,
    "snapshot_exclude": ["node_modules"],
})
sandbox.sh("npm install").text()

Cancellazione

Passa un timeout (secondi) a qualsiasi terminatore:

root@kitploit:~
import subprocess
try:
    sandbox.sh("sleep 60").text(timeout=1.0)
except subprocess.TimeoutExpired:
    print("cancelled")

Variabili d'ambiente

root@kitploit:~
sandbox = Sandbox.create({
    "env": {"NODE_ENV": "production"},
    "allow_env": ["PATH", "HOME"],
    "deny_env": ["AWS_SECRET_ACCESS_KEY"],
})

Vedi il README principale per cosa viene ereditato di default e gli equivalenti CLI.

Opzioni

Sandbox.create(options) accetta un dataclass SandboxOptions o un dict semplice. Tutti i campi sono opzionali.

Chiavi di dict sconosciute (ad esempio allowWrite invece di allow_write) sollevano TypeError al momento della costruzione.

Avvertenze

Sandbox.py(code) esegue il python3 presente nel PATH all'interno della sandbox. Se il tuo interprete attivo si trova al di fuori delle radici leggibili della sandbox (ad esempio Python gestiti da uv in ~/.local/share/uv/), usa invece:

root@kitploit:~
import sys
sandbox = Sandbox.create({"allow_read": [sys.prefix]})
sandbox.exec(sys.executable, ["-c", "print('hi')"]).text()

Altri SDK

  • TypeScript SDK (npm: zerobox)
  • Rust SDK (crates.io: zerobox)

Licenza

Apache-2.0

Scarica lo strumento
MetodoIn caso di successoIn caso di uscita non-zero
.text()Restituisce stdout come stringaSolleva SandboxCommandError
.json()Analizza stdout come JSONSolleva SandboxCommandError
.output()Restituisce CommandOutput(code, stdout, stderr)Restituisce la stessa forma, non solleva mai
CampoTipoDescrizione
profilestr | list[str]Profili nominati. Una lista li unisce da sinistra a destra. Default "workspace".
allow_read / deny_readlist[str]Percorsi leggibili / bloccati.
allow_write / deny_writelist[str]Percorsi scrivibili / bloccati.
allow_netbool | list[str]True permette tutto. Una lista li limita a quei domini.
deny_netlist[str]Domini bloccati.
allow_allboolAccesso completo a filesystem e rete.
no_sandboxboolDisabilita completamente la sandbox.
strict_sandboxboolFallisce invece di ripiegare su un isolamento più debole.
cwdstrDirectory di lavoro.
envdict[str, str]Variabili d'ambiente esplicite.
allow_envbool | list[str]Eredita le variabili d'ambiente del genitore.
deny_envlist[str]Variabili d'ambiente bloccate.
snapshotboolRegistra le modifiche al filesystem.
restoreboolRegistra e annulla dopo l'uscita. Implica snapshot.
snapshot_paths / snapshot_excludelist[str]Percorsi tracciati / pattern esclusi.
secretsdict[str, SecretConfig]Segreti con ambiti per host.
debugboolStampa la configurazione della sandbox su stderr.