이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.
TL;DR
사용자 제공 Python·JavaScript 코드를 안전하게 실행하기 위한 빠른 샌드박스로 smolvm 1.8.3을 시험했습니다. 하드웨어 격리 가상 머신을 사용해 네트워크를 끊고 CPU·RAM·실행 시간·저장 공간을 제한했으며, 읽기 전용 입력과 쓰기 가능한 출력 마운트도 의도대로 작동했습니다. Claude Code for web에서는 중첩 가상화에 필요한 `/dev/kvm`이 없어 실행하지 못했지만, `/dev/kvm`을 제공하는 GitHub Actions Ubuntu runner로 테스트를 옮겨 콜드 스타트 약 0.6~1.5초와 워밍 실행 약 50ms를 측정했습니다. 결과는 데이터 변환처럼 파일 범위를 통제할 수 있는 비신뢰 코드 실행에 적합한 특성을 보였지만, 실제 환경의 KVM 지원 여부가 도입 조건으로 남았습니다.
섹션별 상세
사용자가 제공한 Python·JavaScript 데이터 변환 작업을 안전하게 실행하려면 무한 루프가 CPU 시간을 독점하거나 코드가 임의의 파일과 네트워크에 접근하는 상황을 막아야 합니다. smolmachines의 smolvm 1.8.3은 공유 커널 컨테이너 대신 하드웨어로 격리된 가상 머신에서 코드를 실행해 이 요구를 처리하는 후보로 시험됐습니다. 원문 실험에서는 오프라인 로컬 이미지, 네트워크 차단, CPU·RAM 제한, 게스트 내부 타임아웃, 저장 공간 할당량, 읽기 전용 입력 마운트, 쓰기 가능한 출력 마운트, `--unprivileged` 옵션이 의도대로 작동했습니다.
Claude Code for web 안에서 직접 smolvm을 실행하려 했지만, 해당 환경은 이미 Firecracker guest 안에서 동작하고 `/dev/kvm`과 vmx·svm CPU 플래그를 제공하지 않아 중첩 가상화를 사용할 수 없었습니다. 그 결과 `smolvm machine run`이 `kvm not available` 오류로 중단됐고, 실행 환경의 CPU 4개와 RAM 15GB만으로는 실제 가상 머신 테스트를 진행할 수 없었습니다. 이 제약 때문에 Claude Fable 5는 KVM을 노출하는 GitHub Actions Ubuntu runner에서 임시 워크플로를 만들고 smolvm을 설치해 같은 테스트 묶음을 실행했습니다.
GitHub Actions runner에서 수행한 테스트는 smolvm이 비신뢰 코드용 실행 경계를 제공하는지에 초점을 맞췄습니다. 입력 파일은 읽기 전용으로 연결하고 결과를 쓸 위치만 별도 마운트하며, 네트워크와 CPU·RAM·실행 시간·저장 공간을 각각 제한하는 흐름으로 데이터 변환 작업을 가정했습니다. 실험 결과 콜드 스타트는 약 0.6~1.5초, 워밍 실행은 약 50ms였으므로 반복적인 사용자 작업에는 초기 부팅 비용과 실행 중 지연을 구분해 적용할 수 있는 수준으로 기록됐습니다.
이번 검증은 smolvm이 특정 환경에서 안전한 Python·JavaScript 실행 기반으로 기능할 가능성을 확인했지만, Claude Code for web 자체에서는 KVM 부재로 테스트할 수 없다는 운영 조건도 함께 드러냈습니다. 따라서 실제 배포 환경은 `/dev/kvm`을 제공하는지 먼저 확인해야 하며, 테스트에 사용한 GitHub Actions runner가 모든 운영 환경과 동일한 보안 특성을 보장한다는 내용까지 원문에 포함되지는 않았습니다. 데이터 변환처럼 입력과 출력 파일의 범위를 명확히 정할 수 있는 작업에서 자원과 접근 권한을 분리하는 설계가 핵심입니다.
용어 해설
- 샌드박싱(Sandboxing)
- — 샌드박싱은 신뢰할 수 없는 코드나 데이터를 제한된 실행 환경에 가두는 보안 기법입니다. 프로세스의 CPU·RAM·파일 시스템·네트워크 접근을 격리해 무한 루프나 악성 동작이 호스트 시스템으로 확산되는 경로를 줄이는 데 사용됩니다.
- 하드웨어 격리 가상 머신(Hardware-Isolated VM)
- — 하드웨어 격리 가상 머신은 공유 커널을 사용하는 컨테이너 대신 가상 머신 단위로 실행 환경을 분리하는 방식입니다. smolvm은 KVM을 활용해 비신뢰 Python·JavaScript 코드가 호스트 운영체제와 직접 자원을 공유하지 않도록 구성합니다.
- 중첩 가상화(Nested Virtualization)
- — 중첩 가상화는 가상 머신 내부에서 다시 가상 머신을 실행하는 기술입니다. Claude Code for web 환경에서는 /dev/kvm과 vmx·svm CPU 플래그가 없어 smolvm을 실행할 수 없었고, 외부 KVM 지원 환경인 GitHub Actions runner로 테스트를 옮겼습니다.
- KVM
- — KVM은 Linux에서 하드웨어 가상화 기능을 이용해 가상 머신을 실행하는 커널 기반 가상화 기술입니다. 원문 실험에서는 smolvm이 KVM 사용 가능 여부에 의존했으며, Claude Code for web에서는 'kvm not available' 오류가 발생했습니다.
- GitHub Actions 실행기(GitHub Actions Runner)
- — GitHub Actions 실행기는 워크플로에 정의된 명령을 원격 실행하는 환경입니다. 원문에서는 /dev/kvm을 제공하는 Ubuntu runner에 smolvm을 설치하고, Python·JavaScript 샌드박스의 자원 제한과 격리 기능을 실제로 검증하는 임시 테스트 환경으로 사용했습니다.
기술
- smolmachines
- smolvm 1.8.3
- Python
- JavaScript
- Claude Fable 5
- Claude Code for web
- GitHub Actions
- KVM
- Firecracker
- Linux 6.18.5-fc-v20
활용 사례
- 사용자 제공 Python 데이터 변환 작업
- 사용자 제공 JavaScript 데이터 변환 작업
- 지정된 입력 파일을 읽고 제한된 출력 파일만 생성하는 실행 서비스
언급된 리소스
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 08. 20.수집 2026. 08. 20.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.