From 593a11c0342873ef3c53a9f3d772a4b135d5e513 Mon Sep 17 00:00:00 2001 From: sergio Date: Wed, 15 Jul 2026 23:24:58 -0400 Subject: [PATCH] =?UTF-8?q?harkaq:=20gate=202=20de=20la=20campa=C3=B1a=20?= =?UTF-8?q?=E2=80=94=20=C2=BFel=20binario=20TIENE=20la=20jaula=20dentro=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La golden hornea un target/release/hammer viejo y el rsync excluye /target ⇒ si el cargo build del provisioning no corre, el worker construye alegremente SIN JAULA y produce cero veredictos. PASÓ: la primera corrida molió 2 recetas con un binario del 29/06 (0 ocurrencias de 'harkaq' en strings) y las marcó 'sin veredicto' como si fuera culpa de las recetas. Ocho horas así son la noche entera perdida, y el log habría dicho 'salteada' — nunca 'estoy ciego'. Es el falso Hermetico de D9 mudado al orquestador: la ausencia como respuesta tranquilizadora. Ahora aborta si strings no encuentra harkaq en el binario. Mismo criterio que el gate del ABI: no medir es mejor que creer que se mide. Co-Authored-By: Claude Opus 4.8 --- scripts/farm/harkaq-campana.sh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/scripts/farm/harkaq-campana.sh b/scripts/farm/harkaq-campana.sh index 07d3d8b3..7982260a 100755 --- a/scripts/farm/harkaq-campana.sh +++ b/scripts/farm/harkaq-campana.sh @@ -30,14 +30,27 @@ mkdir -p "$OUT" export HARKAQ=1 HARKAQ_BIN="$BIN" HARKAQ_BASE="${HARKAQ_BASE:-$BIN/base.policy}" export HARKAQ_TIMEOUT="${HARKAQ_TIMEOUT:-300}" -# Gate: sin ABI>=7 el kernel no audita y TODOS los veredictos saldrían SinEvidencia. Moler la +# Gate 1: sin ABI>=7 el kernel no audita y TODOS los veredictos saldrían SinEvidencia. Moler la # noche entera para producir "no sabemos" es peor que no moler. abi=$(python3 -c 'import ctypes;print(ctypes.CDLL("libc.so.6").syscall(444,None,0,1))' 2>/dev/null) if [ "${abi:-0}" -lt 7 ]; then echo "ABORTO: Landlock ABI ${abi:-?} < 7 ⇒ sin audit de denegaciones. ¿La golden es la 6.17?" exit 4 fi -echo "$(date -u +%FT%TZ) campaña harkaq: ABI $abi, cola $LISTA" + +# Gate 2: ¿el binario TIENE harkaq dentro? La golden hornea un `target/release/hammer` viejo y el +# rsync excluye /target ⇒ si el `cargo build` del provisioning no corrió, el worker construye +# alegremente SIN LA JAULA y produce cero veredictos. Pasó: la primera corrida molió 2 recetas con +# un binario del 29/06 (0 ocurrencias de "harkaq") y las marcó "sin veredicto" como si fuera culpa +# de las recetas. Ocho horas así son la noche entera perdida — y el log diría "salteada", nunca +# "estoy ciego". Es el falso `Hermetico` de D9 mudado al orquestador: la ausencia como respuesta +# tranquilizadora. +if ! strings ./target/release/hammer 2>/dev/null | grep -q harkaq; then + echo "ABORTO: ./target/release/hammer NO tiene harkaq compilado (¿corrió el cargo build?)." + echo " Sin esto la campaña muele sin jaula y produce 0 veredictos, en silencio." + exit 4 +fi +echo "$(date -u +%FT%TZ) campaña harkaq: ABI $abi, binario con jaula ✓, cola $LISTA" while :; do hechas=0; nuevas=0