サイモン・ウィリソン、MicroPython WebAssemblyサンドボックスを公開
- •サイモン・ウィリソン(Simon Willison)が、WebAssemblyを用いた安全なサンドボックス環境でPythonコードを実行できるアルファ版ライブラリ「micropython-wasm」を公開した。
- •本ライブラリはMicroPythonを採用し、CPU、ファイル、ネットワークアクセスを厳格に制限しつつ、メモリ常駐型の永続的インタープリタを提供する。
- •ウィリソンは本サンドボックスをDatasette Agentに統合し、GPT-5.5による脱獄攻撃に対する堅牢性を検証した。
サイモン・ウィリソン(Simon Willison)は、WebAssemblyランタイム上でMicroPythonを活用し、安全なサンドボックス環境下でのPythonコード実行を可能にするアルファ版ライブラリ「micropython-wasm」をリリースした。開発の背景には、外部プラグインの実行時にホストシステムへの無制限なアクセスを許容していたDatasetteエコシステムにおけるセキュリティ上の懸念がある。WebAssembly(安全かつ高速な実行を実現するポータブルなバイナリ形式)を採用することで、明示的な許可がない限りファイルシステムやネットワークへのアクセスを遮断した制限環境での実行が実現する。
当プロジェクトはWebAssemblyバイナリの実行にwasmtimeライブラリを使用する。複数の呼び出し間でインタープリタの状態を維持するために、ホスト側が実行リクエストを管理するスレッドメッセージキューを利用する仕組みを採用した。MicroPythonインタープリタがホスト関数を通じて新たな入力を待機することで、変数はメモリ上に保持される。このアプローチは、命令ごとにインタープリタを再起動するオーバーヘッドを解消しつつ、CPUやメモリの境界を厳格に守ることを可能にしている。
現在、本ライブラリはPyPIでアルファ版として公開されており、スクリプトが割り当てられた「燃料(実行可能な操作回数)」を使い切った際に強制終了させるなど、実行制限をテストするためのコマンドラインインターフェースも付属している。ウィリソンはGPT-5.5を用いてサンドボックスからの脱獄を試みるテストを実施し、あらゆる条件下で制限が維持されることを報告した。本プロジェクトは現在、ユーザーがDatasette Agentプラットフォーム内で安全にデータ変換やコード実行を行える「datasette-agent-micropython」プラグインに採用されている。