Simon Willison's Weblogモデル・技術動向重要度:

MicroPythonとWebAssemblyを使用したPythonコードサンドボックス実行システム

MicroPythonとWebAssemblyを使用したPythonコードサンドボックス実行システム

要約

Simon Willisonが長年取り組んできたコードサンドボックス化の課題に対し、MicroPythonとWebAssemblyを組み合わせた新しいアプローチを発表した。彼が開発するDatassetteやLLMなどのオープンソースプロジェクトはプラグインシステムをサポートしているが、現在はプラグインコードが完全な権限で実行されるため、バグや悪意のあるプラグインがシステム全体を危険にさらす可能性がある。理想的なサンドボックスの要件として、PyPIからの依存関係のクリーンなインストール、メモリとCPU制限、ファイルアクセス制御、ネットワークアクセス制御、ホスト機能との相互作用、堅牢な保守体制を挙げている。WebAssemblyは長年ブラウザで実証されており、wasmtimeライブラリが積極的にメンテナンスされているため選択された。MicroPythonは制約のある環境で動作するよう最適化されており、WebAssemblyとの組み合わせに適している。開発にはGPT-5.5 ProとCodex Desktopを活用し、持続的なインタープリター状態の実現やホスト関数サポートなどの技術的課題を解決した。その結果、micropython-wasmというアルファパッケージとdatasette-agent-micropythonプラグインがリリースされた。78行のCコードが362KBのWebAssemblyブロブにコンパイルされ、スレッドとキューを使ったセッション管理システムが実装されている。

洞察・気づき

このプロジェクトは、プラグインシステムのセキュリティという長年の課題に対する実用的なソリューションを提示している。従来のJavaScriptエンジンベースのサンドボックスが複雑で保守困難だった一方、WebAssemblyとMicroPythonの組み合わせは、よりシンプルで実装可能なアプローチを実現している。特に注目すべきは、AI開発ツール(GPT-5.5 ProやCodex Desktop)を活用した開発プロセスで、複雑な技術的課題を効率的に解決している点だ。これは、AI支援プログラミングが従来困難だった低レベルシステム開発にも適用可能であることを示している。ただし、作者自身がアルファ版であることを強調し、まだ本格的な利用を推奨していない点は慎重さの現れでもある。この技術が成熟すれば、プラグイン生態系の安全性が大幅に向上し、より大胆な機能実験が可能になると期待される。また、企業の専門セキュリティチームがこのアプローチを採用してオープンソースソリューションを開発することへの期待も示されており、コミュニティ主導での発展が見込まれる。