Linux: el motor tras Landlock
En Linux la jaula del motor es Landlock, un módulo de seguridad dentro del núcleo. Lo que el motor puede hacer lo decide el núcleo - el tráfico saliente se rechaza antes de que un byte salga de la máquina.
Landlock: deny-by-default en el núcleo
En Linux la jaula es Landlock, un módulo de seguridad del núcleo (LSM), de nuevo deny-by-default. No es un envoltorio en nuestro código, sino una regla que impone el núcleo. El motor puede hacer exactamente tres cosas:
- leer solo el archivo del modelo - nada más en el disco;
- ejecutar solo su propio binario - no puede lanzar otros programas;
- enlazar al único puerto local en el que responde - y a ninguno más.
Las conexiones salientes las rechaza el núcleo con 'permission denied' - antes de que un solo byte salga del sistema. Esto no es una promesa en nuestro código; la garantía vive en el núcleo, por debajo de todo lo que hace el motor. Sin escritura en disco, sin lanzar procesos ajenos, sin egress de red.
Estático contra musl, para que 'solo el modelo' se cumpla
'Leer solo el archivo del modelo' solo es cierto si el motor realmente no necesita nada más del disco. Por eso el motor de Linux está compilado totalmente estático contra musl, sin cargador dinámico y sin libc compartida, en ambas arquitecturas (amd64 y arm64). Un binario enlazado de forma normal tendría que leer y ejecutar /lib64/ld-linux y la libc del sistema al arrancar, forzando esas rutas a la allowlist; el motor estático lee exactamente un archivo y ejecuta exactamente un binario, él mismo.
Qué exige Landlock a tu núcleo
Necesitas un núcleo ≥ 5.13 con Landlock activo. Eso cubre Ubuntu ≥ 22.04, Debian ≥ 12 y RHEL ≥ 9.6 de fábrica; en otras distribuciones lo habilitas con el parámetro de arranque lsm=landlock,…. Dentro de contenedores, el perfil seccomp por defecto de Docker bloquea las syscalls de Landlock - ahí hace falta un perfil ajustado.
Sin Landlock: sin análisis on-device
Donde no se puede habilitar Landlock, no hay análisis on-device en ese host. El motor simplemente no arranca (fail-closed): un cambio sospechoso se conserva en su sitio y se expone en vez de pasar sin sandbox.
Cómo se ve la misma jaula en macOS y Windows está en el resumen de la sandbox del motor.
Un análisis que nunca sale de la máquina.
PoisonZero ejecuta el motor on-device en Linux tras Landlock - leer solo el modelo, responder en localhost, nada más.
Sign me up