13 ポイント 投稿者 GN⁺ 2025-05-31 | 1件のコメント | WhatsAppで共有
  • microsandbox は、信頼できないユーザーおよび AI のコード実行に対して、安全な 仮想マシンレベルの分離 を提供
  • 超高速起動(200ms 未満)、OCI コンテナ互換性、セルフホスティング などにより、既存の VM・コンテナの欠点を克服
  • 多様なプログラミング言語向け SDK と CLI ツールにより、開発者および AI ツールとの統合効率を最大化
  • コード実行、開発環境、データ分析、Web 自動化、アプリホスティング など、幅広い AI・開発ユースケースに適している
  • すべての作業はプロジェクトベースで管理 でき、システム全体へのインストールやセッション維持/分離実行環境をサポート

  • microsandbox は、信頼できないユーザーコードや AI コード(例: AI エージェント、ユーザー投稿コード、実験的コード)の安全な実行のために設計された オープンソースのセルフホスティングプラットフォーム
  • 従来のローカル実行にはセキュリティ脆弱性、コンテナにはカーネル共有による不完全な分離、従来型 VM には起動の遅さ、クラウドには柔軟性不足という欠点がある
  • microsandbox は、microVM(超軽量仮想マシン)ベースの真のプロセス分離 をサポートしつつ、コンテナ同様の高速起動と開発者フレンドリーな体験を提供
  • 初期環境セットアップ後 200ms 以内の起動、コンテナイメージ(OCI)互換性、MCP ベースの AI 統合、自社インフラ利用の制御などで差別化

主な特徴の要約

  • Bulletproof Security: microVM ベースで、コンテナの脆弱性(カーネルエスケープ)を根本的に遮断する 仮想マシンレベルのセキュリティ を提供
  • Instant Startup: 初回起動時間は 200ms 未満で、VM と比べて圧倒的に短いコード実行開始速度を実現
  • Self-Hosting & Full Control: クラウド依存なしで ローカル・自社サーバーに直接構築・運用 が可能
  • OCI 互換: 標準コンテナイメージをそのまま実行でき、既存の Docker・コンテナワークフローと互換
  • AI-Ready (MCP 対応) : Claude、Agno などの MCP ベース AI と 自然に統合・拡張 可能

高速な開発・実行ワークフロー

1. サーバー起動

  • シンプルなコマンドだけで microsandbox サーバーを起動し、開発環境を構築可能
  • サーバーは MCP サーバーの役割も兼ねるため、Claude などの AI ツールから直接呼び出して利用できる

2. SDK のインストール

  • Python、JavaScript、Rust など主要言語向けの microsandbox SDK を提供
  • 追加言語への幅広い対応(SDK 拡張性の提供)により、開発者・AI 統合の可能性を広げる

3. コードを安全に実行

  • Python、JavaScript、Rust など複数言語のサンドボックス環境を個別に選択して実行可能
  • 各サンドボックスは独立した実行環境であり、外部コード実行時でもシステムの安全性を保証
  • SDK のサンプルを通じて、非同期・自動化された安全なコード実行プロセスを容易に実装できる

プロジェクトベースの環境管理

  • プロジェクト単位で Sandboxfile(設定ファイル)を作成・管理し、開発者フレンドリーなパッケージマネージャー風ワークフローに近い
  • 複数のサンドボックス環境(例: 異なる言語や設定)をプロジェクトに追加し、バージョンや環境ごとに管理可能
  • プロジェクトサンドボックス実行時、ファイルおよびインストール変更内容はローカルディレクトリ(./menv)に自動保存
  • 一時サンドボックス有効化オプションにより、セッション終了時にすべての記録と状態を完全削除して分離可能

システム全体のサンドボックスインストール

  • よく使う環境やアプリを個別の実行ファイルとしてインストール・登録可能
  • ターミナルからプロジェクトパスなしでも 1 行コマンドで即座にサンドボックス実行環境に入れる
  • サンドボックスごとに名前を付け、異なる設定を複数運用でき、セッション状態も継続して保持される

主な活用事例

AI コード実行および開発環境

  • AI が実際のソースコードのビルド・実行・デバッグまで自動化する際、分離され再現可能な開発環境を迅速に提供
  • Web アプリ生成・バグ修正・プロトタイプなどのコード自動化に適している

データ分析

  • NumPy、Pandas、TensorFlow など主要なデータサイエンスライブラリをサンドボックス内で安全に活用
  • 個人情報や機密データなど、保護が必要な分析ワークフローに最適

Web ブラウジングエージェント

  • Web サイト探索、フォーム送信、ログイン、データクローリングなどの自動化業務を AI が安全に実行
  • コンテンツ収集、価格比較、自動テストなどの用途に有用

インスタントアプリホスティング

  • ユーザーが作成したツール、デモ、計算機、可視化などを即座にサービスとして共有可能
  • 各アプリは個別の分離空間で動作し、一時環境の高速な作成・終了をサポート

システム構成

  • ユーザーは自身の ビジネスロジック から microsandbox SDK を呼び出す
  • サーバープロセス(microsandbox server)に 信頼できないコードの受け渡し・実行 をリクエスト
  • サーバー内では各実行リクエストが別々の microVM で実行され、相互に分離される
  • 各 microVM は独立した Python/Node 環境を構成可能

オープンソースポリシー

  • Apache License 2.0 の下でオープンソース配布

1件のコメント

 
GN⁺ 2025-05-31
Hacker Newsの意見
  • 正式なコンテナのセキュリティ等級を見てみたい
    1. 既知のコンテナ脆弱性の一覧をキュレーションする
    2. 各脆弱性を、権限ベース、jail、Docker、エミュレータなど複数のセキュリティ環境で実行する
    3. 全エクスプロイトのうち何パーセントを防げたかをスコア化するとよいのでは、というアイデア
      こういう方式なら、単純な permission や jail ベースのコンテナは 0% に近く、Docker は 50% 以上、Microsandbox は 100% 近くになるのではと期待している
      「なぜ単に jail を使わないのか」のような問いに対する直感的な疑問を解消できそう
      また、オープンな Web 上に honeypot コンテナを立てて、ハッキングに成功したら現金やコインで報酬を出す形で、100% を達成するコンテナが何かを“証明”するのも面白そう
      最近は Rowhammer や Spectre のような脆弱性のため、従来型・クラウドコンピューティングのセキュリティ自体を再定義する必要もある
      結局のところ、完全なエミュレーションなしで 100% 安全なコンテナを開発することと、OS の基本サービスを安全化することについてのインサイトを得たいという動機がある
  • マルチテナント環境では「コンテナ脆弱性」が問題なのではなく、カーネルを共有するという根本構造が問題
    カーネル LPE(Local Privilege Escalation) 脆弱性があれば、そのままコンテナ脱出につながるため
    通常はコンテナ脱出として表示されないが、業界ではカーネル LPE があると言われれば、当然コンテナセキュリティは破られるものと認識される
  • 悪意あるコンテナに対しては、Linux カーネルベースのコンテナランタイムでは完全に安全な環境を構築できない
    目に見える代替案は、サンドボックス内部でのシステムコール(API)利用を大幅に制限する方法だが、この場合コンテナはもはや汎用プラットフォームではなくなり、その都度ケース別に新しくチューニングしなければならない不便さがある
    そのため仮想化(virtualization)が必要だという立場
    メモリセーフで堅牢な OS が出てこない限りこの方法しかなく、そうした OS が出たとしても、MicroVM をホスト Linux 上で動かすより速いかどうかはまだ未知数
  • マシンの設定値も一緒に見せてほしいという願い
    Docker や systemd では各種設定によってセキュリティレベルが大きく変わる
    どの設定がどのリスク/セキュリティレベルにつながるのか、大規模な実験データセットが必要だと思う
  • 実際のところ、コンテナはすでに現金/コイン報奨付きの honeypot として運用されている
    現実には本番環境そのものが無数のハッカーの攻撃対象
    こうしたインセンティブモデルは面白いかもしれないが、実際の攻撃対象としての競争力や金銭的インセンティブは、現実の環境よりはるかに小さいだろう
  • 従来型 VM がなぜ起動(start)に時間がかかるのか気になる
    たとえば Windows で VM を実行すると、何かが動き始めるまで数秒以上待たされる
    ここで言う「何も実行していない」というのは、ユーザープログラム実行前、ファームウェアの最初の命令すら始まる前の状態
    しかも仮想ディスクファイルを空にする作業の前や、VM ウィンドウが開く前にも長く待つ区間がある
    なぜなのか気になる
    • Linux カーネルを 1 秒以内で起動するのは最適化で十分可能
      ただし標準カーネルベースだと timeout や polling など、かなり時間のかかる動作が多い
      UEFI/CSM システムでは仮想ハードウェア準備、システム環境初期化などにもかなり時間がかかる
      WSL2 は不要なオーバーヘッド除去用の特別なカーネルを使っていると推測される
      各種 OS サービス起動、ファイルシステム準備、キャッシュ準備、ネットワーク構成なども影響する
      従来方式ではブートローダー → initramfs → メイン OS をそれぞれ別々にロードする
      起動時間を極限まで縮めるには、Amazon Firecracker のように事前初期化した VM イメージをそのままメモリに載せる方式を使う
      Firecracker MicroVM紹介
      Windows では HyperV など、どのハイパーバイザーを使うかによって起動速度が異なる
      HyperV UEFI はかなり遅く、多くの Linux ディストリビューションは最適化された最小カーネルを提供していない
    • どの VM ソフトウェアを使っているのか、もう少し情報が必要
      VirtualBox の場合、質問の現象がはっきり見られ、昔のバージョンにはこうした遅延はなかった
      「従来型 VM」の本質的な限界というより、そのソフトウェア固有の問題である可能性がある
    • 必ずしもそうではない
      一般に VM は不要な要素までエミュレーションするので遅い
      もし起動速度重視でハイパーバイザーを作り、レガシー互換性を無視できるなら、Firecracker のように 125ms で起動することも可能
    • Linux で VM のメモリ割り当てが遅い主因は、4KB ページで数 GB を割り当てるときにある
      1GB 単位で割り当てれば劇的に速くなる可能性がある
      Windows にもおそらく似た仕組みがある
    • VirtualBox の問題である可能性
      自分は Hyper-V で Ubuntu 22 GUI に XRDP で 10 秒、Ubuntu 22 サーバーに SSH で 3 秒以内に接続した経験がある
  • 信頼できないコードを実行しなければならない状況で、「リモートのインストールスクリプトをそのまま Bash にパイプする」インストール案内文のアイロニーを指摘
    それでも基本アイデア自体は非常に興味深い
    • 最初は何のことかわからなかったが、インストールスクリプトを別途ダウンロードして自分で検証することも可能
      近いうちに正式な配布方法を整える予定
  • プロジェクトを共有してくれてありがとうという挨拶と、自分が microsandbox の作者であることの表明
    Docker コンテナのように MicroVM を簡単に作れるようにしたのが目的
    気になる点があればいつでも質問歓迎
    • さっそく Python ライブラリとして便利に使っているが、sandbox を複数の分割された呼び出しにまたがって維持したい
      「Sandbox is not started. Call start() first」のようなエラーが時々出る
      公式ドキュメントのパターンは async with だが、自分の使い方ではクラスごとに一度 instantiate して、複数メソッドから継続利用したい
      これについて推奨方法やベストプラクティスが知りたい
    • 分散/分散型ソフトウェアのテストネットワーク(Valet Network)を構築中だが、microsandbox はかなり役立ちそう
      ネットワーキングがどう動くのか気になる
      たとえば microvm が public IP にだけアクセスできるよう制限できるのか?
      つまり、microvm から local network IP にアクセスできないようにできるのか
    • 本当に素晴らしいプロジェクト、appcypher に感嘆した
      組み込みの MicroVM 機能が OCI ランタイムインターフェースを提供するのか気になる
      runc/crun の代わりに Docker/Podman でも使えるのか知りたい
    • readme をざっと見たが、さらに説明がほしい質問がいくつかある
      どうしてそんなに速いのか?
      従来型 VM と比べたトレードオフは何か?
      VM の隔離性が損なわれる余地はあるのか?
      GUI を起動できるのか?
      新しい Vagrant のようなものと考えているのか?
      データの入出力はどうするのか?
    • とても洗練されて見える
      もし正しく理解しているなら、これでリアルタイムにバックエンドもサーバーのように立ち上げられるのか?
      サポート言語の一覧が印象的 microsandbox サポート言語一覧
      貢献ガイドがもっと詳しいとよい contributor guide
  • ここ数年で、超軽量でほとんど使い捨てに近い VM オプションが増えたことに驚いている
    以前は VM が遅くて重く、苦労した経験がある
    macOS の Orbstack、特に「Linux machines」機能と比較してみたい
    Orb では VM を 1 つだけ再利用しているのかも気になる
  • おめでとう
    ミリ秒単位で VM を起動できるのは非常に重要な進歩
    ただ、CloudHypervisor や Firecracker でも同様の実装は可能
    コンテナが VM より優れているのはランタイム性能
    VM が遅くなる要因は IO デバイスのエミュレーションにある
    特に AI エージェント系ワークロードでは、アプリケーション側でオーバーヘッドを体感しそう
    性能問題をどう解決するつもりなのか気になる
    • その指摘はもっとも
      Microsandbox は libkrun を使っており、libkrun は性能オーバーヘッドを減らすために block、vsock、virtio-fs に virtio-mmio を使っている
      Firecracker も本質的には似ており、E2B プロジェクトは agentic AI ワークロード処理に Firecracker を使っている
      今のところ、ファイルシステム周りの問題以外に大きな性能改善計画はない
  • 自分の好みとしては、コンテナ技術は OS を過剰に拡張しすぎている感じがする
    mount コマンドを一度打ってみれば何を言っているかわかる
    本来隠すべき情報がすべて見えてしまい、既存のシンプルなコマンドの有用性が下がっている
    より深刻なのは、ユーザーが内部データ構造を直接触れてしまう点
    まるでユーザーに peek, poke 権限を全部与えているようだ
    コンテナというアイデア自体は良いが、カーネルが再設計されない限り、今の方式は暫定策
    • 書かれている内容がよくわからない
      コンテナ内で mount を打つと、何がそんなに致命的なのか説明してほしい
      Host の mount が実際にコンテナへ露出するのか?
      通常は明示的に volume などをコンテナへ接続したときだけ可能だと思っていた
  • とても面白そうで、すぐに使ってみたくなる
    自分も CodeSandbox SDK や E2B でかなり楽しませてもらったが、それらとの違いや今後の方向性が気になる
    内部的に Firecracker も使っているのか知りたい
    • Microsandbox はクラウドソリューションを提供していない
      自分でホスティングする構成
      E2B のような microVM ベースのサンドボックスをローカル環境(Linux, macOS, Windows(予定))で簡単に実行でき、プロダクション環境への移行も容易
      Firecracker の代わりに libkrun を使っている
    • Firecracker を使っているかどうかがいちばん気になっていたので、それが主な関心事
      microVM ソリューションの保守性や、セキュリティ監査が継続的に行われるのか気になる
      Firecracker と OCI イメージのセットアップは難しいので、代替の登場自体を歓迎する
      Kata container も扱いづらい
  • この種のプロジェクトが出るといつも関心を引かれる
    コンテナ最大の長所は、ディスクサイズや CPU コア数など具体的なリソースを指定せずに素早く動かせること
    その状態を image や diff と比較して、プログラムが実行中のシステムにどんな変化を与えたかも確認できる
    こうした手軽さを備えた超小型 VM によって、セキュリティを強化したサンドボクシングが可能になるとよい
    たまに bwrap も使うが、コマンドライン向きのツールではない
    • リソース(ディスク容量、CPU など)は YAML ファイルで一度宣言しておけばよい
      テンプレート化やリモート/自動生成も可能
  • 話題から少し外れるが、自分は信頼できない JavaScript コードをどうしても実行しなければならないプロジェクトを進めている
    microsandbox のおかげで、こうしたコードを安全に分離して動かせるかもしれないという希望がある
    200ms の起動遅延もライブサンドボックスプールで解決できる
    OCI 互換性があるので、サンドボックス環境全体まで提供できる
    これが本当に良いユースケースなのか、あるいはもっと良い代替がないのか気になる
    • runsc/gVisor も検討に値する
      runsc エンジンは Docker/Docker Desktop 内でも実行できる
      ただし gVisor はネットワーク並列処理などの性能が docker 比で 1/3 程度
    • まさにそういうケースこそ microsandbox の理想的な適用先
      もっと良い代替が見つからなかったので、自分で microsandbox を作った