Simon Willison, 웹어셈블리 기반 파이썬 샌드박스 공개
- •사이먼 윌리슨이 웹어셈블리를 활용해 안전한 코드 실행을 지원하는 파이썬 라이브러리 micropython-wasm 알파 버전을 공개했다.
- •이 라이브러리는 MicroPython을 사용하여 메모리 내 인터프리터를 유지하며 CPU, 파일, 네트워크 접근을 엄격히 제한한다.
- •윌리슨은 이 샌드박스를 Datasette Agent에 통합했으며 GPT-5.5를 이용한 탈옥 공격 시도에도 보안성을 유지함을 확인했다.
사이먼 윌리슨(Simon Willison)이 웹어셈블리(WebAssembly) 런타임 내에서 MicroPython을 실행해 안전한 코드 실행 환경을 제공하는 라이브러리 micropython-wasm을 알파 버전으로 공개했다. 기존 Datasette 생태계에서는 타사 플러그인 실행 시 호스트 시스템에 대한 접근이 제한되지 않았으나, 이번 도구 도입으로 보안 문제를 해결했다. 웹어셈블리를 통해 코드는 명시적으로 허용되지 않은 파일 시스템이나 네트워크 접근이 불가능한 격리된 환경에서 실행된다.
해당 프로젝트는 wasmtime 라이브러리를 기반으로 웹어셈블리 바이너리를 실행한다. 여러 번의 호출 사이에도 인터프리터 상태를 유지하기 위해 호스트가 실행 요청을 관리하는 스레드 기반 메시지 큐를 사용한다. MicroPython 인터프리터는 호스트 함수를 통해 새로운 입력을 대기하며 변수를 메모리에 상주시키는데, 이는 명령 실행마다 인터프리터를 재시작하는 오버헤드를 줄이면서 CPU와 메모리 경계를 엄격히 유지하게 해준다.
현재 이 라이브러리는 파이썬 패키지 인덱스(PyPI)를 통해 알파 버전으로 제공되며, 스크립트가 할당된 '연료(fuel)'를 소진하면 강제로 종료되는 등 실행 제한을 테스트할 수 있는 명령줄 인터페이스를 포함한다. 윌리슨은 GPT-5.5를 사용한 탈옥 공격 테스트 결과 해당 구현이 보안 제약을 성공적으로 유지했다고 밝혔다. 이 기술은 현재 datasette-agent-micropython 플러그인에 적용되어 사용자가 안전하게 데이터 변환 및 코드를 실행할 수 있도록 지원한다.