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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
vpod — 信頼できないプロセスを実行するための、軽量で安全なLinuxサンドボックス。ブラウザとサーバーの両方で動作します。 | Kitploit
ツール/GitHubGitHub/capsulerun/vpod
防御ツールコンテナセキュリティ動的分析 (サンドボックス)セキュリティ仮想化ユーティリティとフレームワークAIセキュリティ
GitHubcapsulerun/vpod

vpod

信頼できないプロセスを実行するための、軽量で安全なLinuxサンドボックス。ブラウザとサーバーの両方で動作します。

リポジトリを見る
6533日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

Vpod

CI

Risc-V Wasm/WASI 0.2 Sandbox

はじめに • ドキュメント • イシュー • コントリビューション

demo

vpod とは何か?

vpod は、信頼できないプロセスに即座の Linux 環境を提供する、軽量で移植性の高いサンドボックスです。RISC‑V アーキテクチャを使用し、完全に WebAssembly 内で動作します。

  • 高速起動 : 1 秒未満で起動します。
  • 移植性 : セットアップ不要でどこでも実行できます。
  • 分離性 : すべての実行状態は WASM サンドボックス内に留まります。

仕組み

vpod は、WebAssembly にコンパイルされた完全な RISC‑V システム(RV64GC、シングル vCPU)を実行します。その内部で実際の Linux カーネルと実際のユーザー空間を起動するため、シェル、ツール、デーモンはすべて実ハードウェア上と同様に動作します。

スナップショット。 vpod は Linux をゼロから起動する代わりに、スナップショット(起動直後に取得した保存済みマシン状態:CPU レジスタ、RAM、ファイルシステム)を復元します。復元には 1 秒もかかりません。サスペンドもその逆の仕組みで動作し、ダーティなメモリページのみがディスクに書き戻されるため、サンドボックスを一時停止して、後で別のプロセスからでも再開できます。

事前翻訳(Ahead-of-time translation)。 純粋な命令単位のエミュレーションは低速であり、WebAssembly では実行時 JIT が使用できません。そのため、スナップショットのビルド時に、最もホットなゲストコードパスを RISC‑V からネイティブコードに翻訳し、それを WASM モジュール自体にコンパイルします。実行時、エミュレータはゲストコードが一致した場合にこれらの翻訳済みブロックへディスパッチし、一致しない場合はインタープリタにフォールバックします。これにより CPU バウンドな処理では約 5 倍の効果が得られ、分離性にはまったく影響しません。翻訳済みコードはインタープリタ実行コードと同じ MMU およびメモリチェックを通過します。

WASI 境界。 WASM コンポーネントは WASI 0.2 経由でのみホストと通信します。ゲストがホストのファイルディスクリプタ、ソケット、メモリを見ることはありません。ファイルシステムアクセスは明示的にマウントされたディレクトリを通り、ネットワーキングはコンポーネント内部のユーザーモードネットワークスタック(ホストに対してプレーンなアウトバウンドソケットのみを要求する)を通ります。その他すべて(ゲストカーネル、プロセス、メモリ)は WASM リニアメモリ内に存在し、それとともに消滅します。

RV64GC 仕様

G(汎用拡張)

  • I : ベースとなる 64 ビット整数命令セット。
  • M : ハードウェア乗算・除算。ハッシュ処理や暗号化に有用です。
  • A : スレッドセーフなプログラムのためのアトミック操作。
  • F/D : 単精度・倍精度浮動小数点。科学計算や ML 推論に適しています。

C(圧縮命令) コードサイズを 30% 削減し、命令フェッチ速度とメモリ効率を向上させます。これは、メモリ制約のある WASM 環境内で完全な Linux ユーザー空間を実行する際に重要です。

[!NOTE] V(ベクトル)拡張は実装されていません。RVV 命令はエミュレートされた RISC-V として実行されます。ホスト CPU への SIMD パススルーはありません。V を追加するとエミュレーションのオーバーヘッドが増えるだけで、ベクトル化されたワークロードに対する性能上のメリットはありません。

はじめに

Python SDK

root@kitploit:~
pip install vpod
root@kitploit:~
from vpod import Sandbox

# Run a command
sandbox = Sandbox.create()
result = sandbox.commands.run("whoami")
print(result.stdout)  # root
sandbox.close()

# Persistent session — state preserved across calls
with Sandbox.create() as sandbox:
    sandbox.commands.run("export API_KEY=secret")
    result = sandbox.commands.run("echo $API_KEY")
    print(result.stdout)  # secret

# Python REPL — variables persist
with Sandbox.create() as sandbox:
    sandbox.code.run("import requests")
    sandbox.code.run("data = [1, 2, 3]")
    result = sandbox.code.run("print(sum(data))")
    print(result.text)  # 6

[!IMPORTANT] 最初の Sandbox.create() 呼び出しで、デフォルトのスナップショット(alpine)がダウンロードされ、まだ存在しない場合はローカルにキャッシュされます。

CLI

root@kitploit:~
curl -fsSL https://install.vpod.sh | sh
または PowerShell(Windows)でインストール
root@kitploit:~
irm https://install.vpod.sh | iex
root@kitploit:~
# Pull a snapshot
vpod pull alpine:latest

# Start an interactive shell
vpod

ドキュメント

Vpod ドキュメント を参照してください。

制限事項

  • エミュレーションのオーバーヘッド: WebAssembly 内にはハードウェア仮想化がないため、すべてのゲストコードがエミュレートされます。オーバーヘッドはワークロードに完全に依存します。I/O バウンドおよびネットワークバウンドな処理はネイティブに近い速度で動作しますが、CPU バウンドな重い処理は AOT 翻訳があっても著しく遅くなります。ワークロードが主に「ツールを実行する、ファイルを読む、API を呼び出す」程度であれば、違いに気づかないでしょう。
  • GPU アクセス不可: CUDA、Metal、ハードウェア ML アクセラレータは利用できません。将来、wasi-nn によってサポートが追加される可能性があります。

コントリビューション

バグ報告から新しいデバイスサポートまで、コントリビューションを歓迎します。実装する前に、重要な内容については イシュー を開いて相談してください。

前提条件

  • Rust(最新の安定版)と wasm32-wasip2 ターゲット: rustup target add wasm32-wasip2
  • SDK 用の Python 3.10+
  • Zig(0.16)と bsdtar(スナップショットを自分でビルドする場合のみ必要)

開発環境のセットアップ

root@kitploit:~
# One-time: generate the AOT stub (a fresh clone has no translated blocks)
./scripts/aot-stub.sh

# Build the WASM component (library + CLI)
./scripts/build-wasm.sh

# Install the host CLI
cargo install --path crates/vpod

# Install the Python SDK in dev mode
pip install -e "sdks/python[dev]"

テストの実行

CI はすべての PR でこれらを実行するため、プッシュ前に実行してください:

root@kitploit:~
cargo fmt --all -- --check                        # formatting
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all                                  # Rust tests

# Python SDK integration tests (needs the WASM library in place)
cp target/wasm32-wasip2/release/vpod_wasi_lib.wasm sdks/python/vpod/
pytest sdks/python/tests/ -v -m integration

スナップショットのビルド

このプロジェクトは registry.vpod.sh の事前ビルド済み Alpine スナップショットを使用するため、通常はこれを実行する必要はありません。ローカルでビルドするには:

root@kitploit:~
./scripts/build-default-snapshot.sh   # dist/alpine-3.23.0-256mb.snap
./scripts/build-data-snapshot.sh      # 512 MB variant with numpy/pandas/scipy

[!IMPORTANT] ローカルでビルドしたスナップショットを使用するには、crates/vpod/src/main.rs の resolve_snapshot() 内の行のコメントを解除してください。

スナップショットのビルドでは AOT パス(scripts/aot-snapshot.sh <snapshot>)も実行できます。これは代表的なワークロードをトレースし、ホットブロックを翻訳して、それらを組み込んだ状態でエミュレータを再ビルドします。時間がかかります。日常的な開発には aot-stub.sh のスタブで十分です。動作はすべて同じで、ただ遅いだけです。

プルリクエスト

  • PR の焦点を絞ってください: 1 つの PR につき 1 つの変更。
  • fmt、clippy、テストスイートがすべてパスする必要があります(CI が 3 つすべてを強制します)。
  • エミュレータの実行パスまたはメモリパスに触れる場合は、正しさをどのように検証したかを説明してください(最低限テストスイート。微妙な変更の場合は、ゲスト内での起動と実際のワークロードによる実行が適切な健全性チェックになります)。

ライセンス

このプロジェクトは Apache License 2.0 の下でライセンスされています。 詳細は LICENSE ファイルを参照してください。

ツールをダウンロード