Show HN: Clawk – Dale a los agentes de código una VM Linux desechable, no tu portátil

Dar a los agentes de código de IA sus propias VMs Linux desechables, en lugar de acceso directo a la máquina de un desarrollador, está surgiendo como una forma preferida de limitar los daños por bugs, prompt injection y ataques a la cadena de suministro. Los comentaristas comparan el enfoque basado en VMs de Clawk con contenedores Docker, sandboxes a nivel de sistema operativo y un ecosistema creciente de herramientas similares, sopesando compromisos entre seguridad, rendimiento, configurabilidad y facilidad de uso en macOS y Linux. Muchos sostienen que los sandboxes simples ya se han comoditizado, y que los problemas más difíciles e importantes son la política de red, la gestión de credenciales, los rollbacks y los entornos remotos escalables.

Por qué VMs en lugar de contenedores o usuarios separados

  • Muchos argumentan que los contenedores comparten el kernel del host y dependen en gran medida de su corrección; las VMs proporcionan un límite de aislamiento más pequeño y claro.
  • Contraargumento: si los contenedores están bien configurados, cualquier escape sigue siendo un bug del kernel; algunos ven los contenedores como “suficientemente buenos”, especialmente con refuerzo adicional (gVisor, Firecracker, Kata, eBPF).
  • Usar un usuario separado sin sudo se propone como la opción más simple y portátil, pero otros señalan que esto sigue compartiendo paquetes del host, demonios y archivos legibles por todos, y es fácil de configurar mal.
  • Algunos prefieren las VMs porque se comportan como “cajas Linux reales” donde Docker, Kubernetes, etc. se ejecutan de forma natural, evitando los trucos de Docker-in-Docker.

Seguridad y modelos de amenaza

  • Las preocupaciones van más allá de “evitar rm -rf /”:
    • Ataques a la cadena de suministro mediante npm/pip/cargo y repositorios no confiables.
    • Prompt injection que hace que los agentes ejecuten escaladas de privilegios o exploten LPEs.
    • Agentes instalando paquetes hostiles o abusando de servicios locales.
  • Algunos usuarios dividen su mundo en un host de confianza (solo paquetes de la distro) y VMs desechables para todo lo demás.
  • Otros creen que las VMs son excesivas si no asumes un agente hostil; prefieren un aislamiento más simple de usuario o contenedor.
  • También se reconocen escapes de VM; la gente insiste en mantener los kernels actualizados.

Controles de red y firewall

  • Varias herramientas se centran en listas de अनुमति estrictas de red, políticas por dominio o conscientes del protocolo, y proxies a nivel de aplicación.
  • Una implementación usa un proxy de red en espacio de usuario (por ejemplo, gvproxy) que termina conexiones de invitado y vuelve a abrir sockets del host, aplicando allí una lista de अनुमति.
  • En Linux, los dispositivos TAP aún pueden requerir root, pero la lógica de filtrado puede permanecer en espacio de usuario.
  • Otros experimentan con eBPF, nftables o proxies MITM para controlar el tráfico saliente y proteger secretos.

Enfoques alternativos de sandboxing

  • Se discutió una amplia gama de opciones:
    • VMs completas (Firecracker, KVM, QEMU, Nix microVMs, incus, quickemu, Vagrant).
    • Contenedores y nspawn (Docker, Podman, systemd-nspawn, LXC).
    • “Casi contenedores” y namespaces (bubblewrap, Landlock, Firejail, herramientas basadas en bwrap).
    • Plataformas remotas de CI/desarrollo y sandboxes en la nube (varias ofertas alojadas, algunas con macOS).
  • Varios proyectos enfatizan: configuración declarativa, sandboxes por proyecto, control de secretos, snapshot/rollback, flujos de diff/apply, integración MCP e inyección de credenciales.

Sandboxes locales frente a la nube

  • Algunos prefieren VMs locales por “local-first”, cumplimiento de políticas de la empresa y menor confianza en terceros.
  • Otros prefieren sandboxes remotos para que su portátil pueda dormir mientras los agentes siguen ejecutándose, y para mantener a los agentes aislados de las máquinas personales.
  • Se debate el coste frente a tener una máquina de desarrollo dedicada (por ejemplo, un Mac mini).

Rendimiento y ergonomía

  • En macOS, se dice que la sobrecarga de E/S de archivos y supervisión de procesos ralentiza las cargas de trabajo de los agentes; ejecutar agentes dentro de VMs Linux puede ser significativamente más rápido.
  • Algunos destacan sandboxes basados en namespaces de arranque instantáneo como más ligeros que las VMs completas o los contenedores.
  • Necesidades comunes de usabilidad: espacios de trabajo multi-repo, historial persistente, alcance de red, reutilización de autenticación más fácil y expulsión limpia de la herramienta.

Escepticismo y discusión meta

  • Muchos señalan que hay “docenas” de proyectos superpuestos; algunos ven esto como reinventar la rueda innecesariamente, otros como experimentación saludable y deseo de tener la propiedad total del código.
  • Las críticas se centran en piezas de nivel superior que faltan: motores de políticas, gestión de configuración, estrategias de rollback, gestión dinámica de credenciales y proxies de servicios.
  • Hay interés en una “plataforma de agentes” integrada donde el sandboxing, las políticas, los secretos y la observabilidad sean de primera clase, en lugar de otro sandbox básico más.