harkaq: el kernel de hammer ya trae Landlock — ABI 7 verificado BOOTEANDO (Fase 1 precond. 1)
recipes/linux.toml: -e SECURITY -e SECURITY_LANDLOCK -e AUDIT. Era lo único que
faltaba para que harkaq corra DENTRO de hammer (VM/metal) y no sólo en el laptop
y la granja. El CONFIG_LSM del defconfig ya lista `landlock` de primero ⇒ bastó
encenderlo, sin tocar la cadena de LSMs.
AUDIT se fija explícito aunque ya viniera =y por defconfig: sin él el kernel no
emite un solo registro y harkaq certificaría TODO como hermético en silencio
(§3.4). Es la precondición de la que cuelga la evidencia; no se deja al azar de
un default.
VERIFICADO BOOTEANDO, no leyendo el .config — que dice lo que se compiló, no lo
que el kernel hace al arrancar. 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. scripts/harkaq/vm-abi-probe.c es un /init
de initramfs mínimo que pregunta y apaga:
===== HARKAQ EN EL KERNEL DE HAMMER =====
LANDLOCK ABI = 7
audit de denegaciones (>=7): SI
=========================================
Kernel nuevo: b3:f2583d61… (el hash cambia, como se esperaba; el viejo
34755ff2… decía "# CONFIG_SECURITY_LANDLOCK is not set").
Con esto las 4 precondiciones de la Fase 1 están cerradas y harkaq corre en las
tres máquinas del proyecto: laptop (ABI 10), granja (ABI 7 tras el bump de la
golden) y el kernel propio de hammer (ABI 7).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
// 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 <bzImage> -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 <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <sys/reboot.h>
|
||||
#include <errno.h>
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user