Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
zerobox — 軽量でクロスプラットフォームなプロセスサンドボックス。OpenAI Codexのランタイムを搭載。ファイル、ネットワーク、認証情報の制御を用いて任意のコマンドをサンドボックス化します。 | Kitploit
ツール/GitHubGitHub/afshinm/zerobox
コンテナセキュリティ動的分析 (サンドボックス)DevSecOpsAIセキュリティ
GitHubafshinm/zerobox

zerobox

軽量でクロスプラットフォームなプロセスサンドボックス。OpenAI Codexのランタイムを搭載。ファイル、ネットワーク、認証情報の制御を用いて任意のコマンドをサンドボックス化します。

リポジトリを見る
6994063ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Zerobox Python SDK

Zerobox PyPI version Zerobox license

Python SDK は zerobox のためのSDKです。ファイル、ネットワーク、認証情報の制御で任意のコマンドをサンドボックス化します。

root@kitploit:~
pip install zerobox

wheel をインストールすると、zerobox CLI が環境の bin/ に配置され、Python SDK が利用可能になります。

CLI の使い方、シークレットの概念、フルフラグリファレンス、パフォーマンス数値、プラットフォームサポートについては、メイン README を参照してください。

クイックスタート

root@kitploit:~
from zerobox import Sandbox

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

コマンド

コマンドを実行する3つの方法。それぞれが ShellCommand を返し、.text()、.json()、または .output() で終了します。

シェル

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

インライン Python

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

明示的なコマンド + 引数

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

結果

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

非同期 API

非同期アプリケーションでは AsyncSandbox を使用して、サンドボックス化されたサブプロセスの待機がイベントループをブロックしないようにします。コマンドの形は Sandbox と同じですが、作成と終了は 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()

非同期コマンドも同じ timeout オプションを受け付けます:

root@kitploit:~
import subprocess

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

エラーハンドリング

非ゼロ終了は 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)

シークレット

サンドボックス化されたプロセスが決して見ることのない API キーを渡します。プロキシは承認されたホストに対してのみ実際の値を置き換えます。

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()

プレースホルダーの置換の仕組みについては、メイン README を参照してください。

スナップショット

ファイルシステムの変更を記録し、自動的にロールバックします:

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

ロールバックせずに記録する:

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

キャンセル

任意の終了メソッドに timeout (秒) を渡します:

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

環境変数

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

デフォルトで継承されるものと CLI での同等の設定については、メイン README を参照してください。

オプション

Sandbox.create(options) は SandboxOptions データクラスまたはプレーンな dict を受け付けます。すべてのフィールドはオプションです。

未知の dict キー(例:allow_write の代わりに誤った allowWrite)は、構築時に TypeError を発生させます。

注意点

Sandbox.py(code) は、サンドボックス内の PATH にある python3 を実行します。アクティブなインタープリタがサンドボックスの読み取り可能ルートの外にある場合(例:~/.local/share/uv/ 以下の uv 管理の Python)、フォールバックとして以下を使用します:

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

他の SDK

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

ライセンス

Apache-2.0

ツールをダウンロード
メソッド成功時非ゼロ終了時
.text()標準出力を文字列として返すSandboxCommandError を発生させる
.json()標準出力をJSONとしてパースするSandboxCommandError を発生させる
.output()CommandOutput(code, stdout, stderr) を返す同じ形を返し、決して例外を発生させない
フィールド型説明
profilestr | list[str]名前付きプロファイル。リストの場合は左から右にマージされます。デフォルトは "workspace"。
allow_read / deny_readlist[str]読み取り可能/ブロックされたパス。
allow_write / deny_writelist[str]書き込み可能/ブロックされたパス。
allow_netbool | list[str]True はすべてを許可します。リストの場合はそのドメインに制限されます。
deny_netlist[str]ブロックされたドメイン。
allow_allbool完全なファイルシステム + ネットワークアクセス。
no_sandboxboolサンドボックスを完全に無効にする。
strict_sandboxbool弱い分離にフォールバックする代わりに失敗する。
cwdstr作業ディレクトリ。
envdict[str, str]明示的な環境変数。
allow_envbool | list[str]親の環境変数を継承する。
deny_envlist[str]ブロックされた環境変数。
snapshotboolファイルシステムの変更を記録する。
restorebool終了後に記録してロールバックする。snapshot を含意。
snapshot_paths / snapshot_excludelist[str]追跡するパス / 除外パターン。
secretsdict[str, SecretConfig]ホストごとのスコープを持つシークレット。
debugboolサンドボックス設定を stderr に出力する。