Sandboxes de VM en submilisegundos usando bifurcación de memoria CoW

Quería ver cómo rápido podría iniciarse un sandbox de código aislado si nunca tenía que iniciar una VM nueva. Así que, en lugar de lanzar una nueva microVM por cada ejecución, inicio Firecracker una vez con Python y numpy ya cargados, luego capturo el estado completo de la VM. Cada ejecución posterior crea una nueva VM KVM respaldada por una asignación `MAP_PRIVATE` de la memoria capturada, así Linux me proporciona páginas de copy-on-write automáticamente. Esto significa que cada sandbox comienza desde un proceso Python ya ejecutándose dentro de una VM real, ejecuta el código y termina. Estas son VM KVM reales, no contenedores: kernel del guest separado, memoria del guest separada, tablas de páginas separadas. Cuando una VM escribe en memoria, obtiene una copia privada de esa página. La parte difícil no fue CoW en sí. La parte difícil fue reanudar la VM capturada correctamente. Rust, Apache 2.0.

  • Aplicación Web
  • Código Abierto
  • Nativo de la Nube

Resumen de IA

ZeroBoot es un sistema que crea sandboxes de máquinas virtuales en submilisegundos tomando instantáneas de una microVM Firecracker prearrancada con Python y bibliotecas cargadas. Cada nueva ejecución bifurca esta instantánea usando mapeos de memoria copy-on-write, proporcionando aislamiento KVM completo sin la sobrecarga de un arranque de máquina virtual nuevo.

Ideal para

Plataformas Serverless/Función como Servicio que requieren arranques rápidos en frío, Sandboxing de código de alto rendimiento para código de usuario no confiable, Cargas de trabajo de ciencia de datos o ML que necesitan entornos Python rápidos y aislados

Por qué importa

Ofrece un arranque de máquina virtual casi instantáneo con aislamiento completo a nivel de hardware, eliminando el proceso de arranque mediante bifurcación de memoria de una instantánea preinicializada.

Funciones clave

  • Inicia entornos aislados de VM en menos de un milisegundo utilizando bifurcación de memoria copy-on-write
  • Arranca Firecracker una vez con Python y numpy precargados, luego captura el estado completo de la VM
  • Crea nuevas KVM VMs respaldadas por mapeos MAP_PRIVATE de memoria de instantánea para páginas CoW automáticas
  • Proporciona aislamiento real de KVM VM con kernels invitados, memoria y tablas de páginas separados

Casos de uso

  • Una plataforma de ciencia de datos utiliza esto para ejecutar miles de transformaciones de datos en Python aisladas para diferentes clientes. Cada script del usuario se ejecuta en una nueva máquina virtual que se inicia en menos de un milisegundo, garantizando un aislamiento completo entre trabajos mientras mantiene el rendimiento de un entorno precalentado con bibliotecas como numpy ya cargadas.
  • Un proveedor de computación sin servidor adopta esta tecnología para crear entornos de ejecución de funciones. Cuando se invoca una función, una nueva microVM se bifurca desde una instantánea que contiene el entorno de ejecución, reduciendo drásticamente la latencia de arranque en frío de cientos de milisegundos a tiempos submilisegundos, mejorando la experiencia del usuario para aplicaciones sensibles a la latencia.
  • Una empresa de investigación de seguridad emplea estos entornos de pruebas para ejecutar de forma segura muestras de código no confiable para análisis de malware. Cada muestra se ejecuta en una máquina virtual completamente aislada que se inicia casi al instante, permitiendo a los investigadores probar miles de variantes rápidamente mientras contienen cualquier actividad maliciosa dentro del entorno bifurcado.