// vm-abi-probe — /init de un initramfs mínimo: le pregunta al KERNEL DE HAMMER por el ABI de // Landlock y apaga. (SDD 16 §3.2 / Fase 1 precondición 1.) // // Por qué existe: probar el `.config` NO basta — dice lo que se compiló, no lo que el kernel hace // al arrancar. Es la misma disciplina de §3.1 (el ABI se consulta por syscall, jamás por versión) // llevada a la verificación: el único que sabe si Landlock está vivo es el kernel vivo. // // gcc -O1 -static -o init vm-abi-probe.c // printf 'init\n' | cpio -o -H newc | gzip > initramfs.cpio.gz // qemu-system-x86_64 -kernel -initrd initramfs.cpio.gz \ // -append "console=ttyS0 rdinit=/init quiet" -nographic -m 512 -no-reboot // // Resultado con el kernel 6.16.12 de hammer + SECURITY_LANDLOCK (2026-07-15): ABI = 7 ⇒ audit de // denegaciones ⇒ harkaq corre DENTRO de hammer, no sólo en el laptop y la granja. #define _GNU_SOURCE #include #include #include #include #include int main(void) { long abi = syscall(444, NULL, 0, 1); // landlock_create_ruleset(NULL,0,VERSION) printf("\n\n===== HARKAQ EN EL KERNEL DE HAMMER =====\n"); if (abi > 0) { printf("LANDLOCK ABI = %ld\n", abi); printf("audit de denegaciones (>=7): %s\n", abi >= 7 ? "SI" : "NO"); } else { printf("LANDLOCK NO DISPONIBLE (errno=%d)\n", errno); } printf("=========================================\n\n"); fflush(stdout); sleep(1); reboot(RB_POWER_OFF); return 0; }