BentoBox icon

BentoBox

BentoBoxは、LinuxとmacOSでコードエージェントやコマンドの実行をdeny-by-defaultの分離環境で隔離するカーネルレベルのサンドボックスです。機密ファイルへのアクセスを防ぎつつ、ビルドやテスト、エージェント駆動のワークフローを安全に実行できます。

BentoBox

BentoBoxの機能と存在理由

BentoBoxは、コードエージェントやその他のコマンドを分離された実行環境内で実行するためのカーネルレベルのサンドボックスです。READMEでは、インタプリタレベルの制御ではなくカーネルによる強制を用いて、ゼロセットアップかつゼロ起動遅延でAIエージェントを数秒でサンドボックス化する方法として説明されています。

この製品は、deny-by-defaultのコンパートメントを中心に構成されています。エージェントは割り当てられたワークスペースと、明示的に許可したパスや権限だけを利用でき、認証情報ファイル、任意のシステムパス、ネットワークアクセス、その他のリソースへのアクセスは、ポリシーで許可されない限りブロックされたままです。リポジトリでは、Rust coreの上にあるPythonおよびTypeScriptのSDKに加え、認証情報のプロキシ、スナップショット、出力圧縮といった専用の動作モジュールも説明されています。

主な機能

カーネル強制の分離

オペレーティングシステムのカーネルによって直接強制されるコンパートメント内で、エージェントやシェルコマンドを実行します。

権限ベースのサンドボックス化

deny-by-defaultのアクセスルールを使い、ワークツリーは開ける一方で、許可されていないパス、認証情報、その他の機密領域は明示的に許可されるまでブロックします。

コンパートメントワークフロー

独自の権限、リソース制限、メッセージルートを持つ名前付きコンパートメントをサポートし、fetch、build、deployのような個別のステップを分けられます。

ファイルシステムとネットワークのポリシー制御

ファイルシステム、プロセス、ネットワークアクセスを制御でき、ボックスごとにフルネットワークアクセスまたはlocalhostのみの設定も可能です。

スナップショットとロールバック

ハッシュベースのスナップショットとロールバックを備え、変更されたファイルを復元でき、削除されたファイルも戻せます。

多言語SDKサーフェス

単一のRust coreの上にPythonとTypeScriptのラッパーを提供し、Python READMEとSDKドキュメントに例が示されています。

BentoBoxが適している場面

  • コードエージェントを機密情報から隔離する

    割り当てられたワークスペース外のSSHキー、クラウド設定、その他の認証情報への自由なアクセスを与えずに、コードアシスタントをリポジトリに対して実行したい場合にBentoBoxを使います。

  • 複数段階の自動化パイプラインを段取りする

    各ステップごとに異なるファイルシステム権限とネットワーク権限を持たせながら、名前付きコンパートメントを使ってワークフローをfetch、build、deployの段階に分割したい場合に使います。

  • 開発タスクをサンドボックス化する

    コマンドが必要なものは読める一方で、広範囲への書き込みや、許可なしのネットワークアクセスができない制約付き環境で、ビルド、テスト、パッケージコマンドを実行します。

  • 実行後に変更ファイルを復元する

    実行中に行われたファイル変更を復元したい場合、削除されたファイルも含めて、スナップショットとロールバックの動作を使います。

  • アプリケーションコードにサンドボックス化を組み込む

    スタンドアロンのツールを呼び出すだけでなく、すでにその言語で動作しているコードにサンドボックスを統合したい場合は、Python SDKまたはTypeScriptラッパーを使います。

Pros and Cons

Pros

  • カーネルレベルの強制が中心設計であり、READMEでは一度適用すると緩めることはできず、より厳しくすることしかできないと説明されています。
  • deny-by-defaultのアクセスにより、明示的に付与されない限り認証情報やその他の機密ファイルをブロックしたままにできます。
  • 名前付きコンパートメントにより、単一コマンドのサンドボックス化だけでなく、複数段階のパイプラインを表現できます。
  • スナップショットとロールバックにより、変更されたファイルや削除されたファイルの復元経路が用意されています。
  • PythonとTypeScriptのラッパーにより、コアを複数の言語から利用できます。

Cons

  • READMEによると、Linux対応はLandlock、macOS対応はSeatbeltによるもので、ソース上のプラットフォーム対応は普遍的ではありません。
  • ドキュメントは技術的に詳しい一方、製品はホスト型サービスではなくセルフホストのオープンソースリポジトリソフトウェアであり、管理された導入フローや料金体系は記載されていません。
  • セキュリティモデルとワークフローは強力ですが、コンパートメント、権限、ルートの定義が必要なため、単一コマンドのラッパーよりもセットアップは複雑です。

FAQ

BentoBoxはどのプラットフォームをサポートしていますか?

BentoBoxは、カーネルで強制される分離環境内でエージェントや、エージェントが起動したコマンドを実行するように設計されています。READMEでは、LandlockによるLinux対応と、SeatbeltによるmacOS対応が示されています。

BentoBoxにはSDKがありますか?

READMEでは bentoworks パッケージを使ったPythonの利用例が示されており、さらにRust coreの上にPythonとTypeScriptのラッパーがあると説明されています。

BentoBoxは複数段階のワークフローを扱えますか?

はい。ソースには、1つの分離環境から別の分離環境へ edge() と box.run(entry=...) を使って作業を受け渡す、複数コンパートメントのパイプライン例が含まれています。

BentoBoxはどのようにアクセスを制御しますか?

BentoBoxはdeny-by-defaultのポリシーを使用します。コンパートメントには、fs_read、fs_write、fs_exec、network など、明示的に付与された権限だけが与えられます。

BentoBoxの公開価格情報はありますか?

READMEには、BentoBox自体のホスト型料金は記載されていません。リポジトリはGitHubで公開されており、製品は独自のランタイムとSDKを通じて利用するサンドボックスとして説明されています。

Quick Facts

カテゴリ
開発者向けツール
ソースドメイン
github.com
主なランタイム
Rust core with Python and TypeScript SDKs
対応環境
Linux (Landlock) and macOS (Seatbelt)
セキュリティモデル
既定で拒否
リポジトリの状態
公開GitHubリポジトリ