Manifiesto · Testigos · Estado y muestras · Verificador
LAB-2026-033 · Aislamiento del auxiliar y verificación independiente
Fecha: 9 de septiembre de 2026. Estado: ensayo material acotado, con evidencia pública de consistencia. Dirección: Juan Antonio Lloret Egea. Fuente final: d870febdc145890105dbab0b5b58658c19fef217. Ejecución final: 34415054643.
1. Dictamen
La separación propuesta es realizable en el caso sintético ensayado: un proceso auxiliar Rust sometido a restricciones materiales comunica con un receptor Rust independiente. La segunda tanda produjo 33 resultados conformes a sus expectativas, incluidos controles deliberadamente inseguros. Esto no significa 33 ataques bloqueados: también se cuentan respuestas útiles, negativa legítima y controles que debían permitir el defecto.
El resultado más relevante es la diferencia entre aislamiento y admisión. El canal protegido pudo transportar una respuesta incompleta. Un receptor que creía al auxiliar la aceptó; el receptor que conservaba su propia cobertura y comprobaba los datos la rechazó. La separación de memoria y canales no sustituye la comprobación de la evidencia.
Se apoya continuar estudiando un componente auxiliar subordinado, con un único núcleo semántico SV. Esta tanda no acredita necesidad de añadir un primitivo nuclear, crear una segunda semántica ni refactorizar SV. No ejecuta el núcleo ni una IA: comprueba una realización de infraestructura con auxiliares sintéticos y fallos introducidos expresamente.
2. Realización y autoridad
El receptor crea tuberías anónimas y conserva el encargo, la cobertura y los datos esperados. El auxiliar extrae tres registros de cinco. Uno de ellos contiene una revocación sintética que no puede omitirse ni cambiarse por «vigente». Sólo el receptor registra el efecto sintético después de comprobar la respuesta y la autorización local del ensayo.
El mensaje liga petición, época, procedencia IA, operación, perfil ES/EN y registros. Es un contrato experimental; sus etiquetas no son vocabulario nuevo de SV. No se autentica una identidad remota mediante estas tuberías ni se acredita origen humano de la autorización. Las expectativas del receptor son independientes del contenido recibido; no se emplea otra IA como juez.
Linux aplica espacios virtuales separados y seccomp con lista permitida. El filtro sólo permite leer del descriptor del canal de entrada y escribir en el de salida, además de un conjunto mínimo de llamadas de memoria privada y ejecución. Se cierran descriptores adicionales y se fijan límites antes de instalar el filtro. El máximo de mensaje es 4096 bytes; el límite de espacio virtual es 64 MiB y el plazo nominal de respuesta, 200 ms. Son parámetros de laboratorio, sin validez como presupuestos de producción.
La imagen y el arranque que instalan la protección, el receptor y el sistema operativo pertenecen a la base de confianza. Las sondas adversariales se ejecutan después de instalarla. Rust y el filtro no protegen frente a una sustitución hostil de ese arranque ni frente al administrador, kernel o hipervisor. Se usa el mismo UID en procesos diferentes; no se atribuye a ese hecho una protección autónoma.
3. Qué se comprobó
| Familia | Observación material | Alcance |
|---|---|---|
| Utilidad | Respuestas ES y EN completas admitidas; dos filas en el registro de efectos | Extracción sintética; no localización del diagnóstico ni consejo profesional |
| Integridad | Rechazo de omisión, sustitución, duplicado y referencia inventada | El receptor dispone de cobertura y valores esperados independientes |
| Ligaduras | Rechazo de otra petición, época, procedencia, operación o perfil | Estado local del ensayo; no continuidad entre máquinas o reinicios |
| Autoridad | Respuesta correcta rechazada tras revocación sintética; explicación de conformidad no admitida | No acredita consentimiento humano ni veracidad de una explicación |
| Transporte | Distinción entre negativa, bytes inválidos, mensaje excesivo, truncamiento, cierre y espera agotada | No se usa Tri.U; no se prueba un protocolo distribuido |
| Recursos | Reserva de 128 MiB denegada; bucle sin respuesta terminado; salida excesiva rechazada | Límite de espacio virtual y supervisión; no cota dura de CPU o tiempo |
| Accesos fuera del canal | Denegados lectura/escritura del centinela, /proc, socket, duplicación de descriptor, creación de hijo, lectura de memoria del receptor y escritura por otro descriptor |
Sondas del proceso protegido; no todos los canales laterales |
| Controles sin filtro | Escritura del centinela y creación de socket permitidas | Confirma que esos resultados no proceden sólo del entorno |
| Receptor defectuoso | La omisión llega por el canal y es aceptada por el control débil | Demuestra insuficiencia de confiar sólo en el controlador |
| Recuperación y concurrencia | 31 peticiones correctas de recuperación; otro auxiliar responde con el adversario vivo antes y después | No demuestra reparto justo de recursos ni ausencia de interferencia temporal |
La primera tanda (34414792047) había dado 33 PASS internos. Su observador de concurrencia no confirmaba entrada en la rama adversarial ni vida antes/después; ese resultado se conserva con alcance limitado. El sucesor incorpora ambas comprobaciones y companion.json, con los cuatro indicadores verdaderos. No se borran ni se suman las dos tandas como si fueran 66 obligaciones diferentes.
4. Coste observado
Ambas tandas usan Rust 1.98.0, compilación release --locked --offline, cero crates externos, Ubuntu 24.04 x86-64, kernel 6.17.0-1022-azure y dos CPU lógicas disponibles. Las máquinas expusieron modelos distintos; el nombre comercial de 64 núcleos del EPYC no describe la cuota del trabajo. RAM visible: aproximadamente 8,13 millones de KiB. Los archivos cgroup consultados no estaban disponibles; no se infieren cuotas adicionales.
| Ejecución / CPU expuesta | Directa (µs) | IPC persistente (µs) | Arranque y primera respuesta (µs) |
|---|---|---|---|
| 34414792047 · Xeon Platinum 8573C | 1.721 | 13.361 | 496.986 |
| 34415054643 · EPYC 7763 | 2.400 | 26.459 | 696.818 |
Las tandas se muestran separadas. La diferencia entre ellas no es una comparación controlada de procesadores ni prueba una regresión del componente. La ruta directa realiza la misma extracción y verificación dentro del receptor; IPC añade serialización, tuberías, proceso protegido y planificación. La mediana final aumenta aproximadamente 24,06 µs para esta carga pequeña. No se mide inferencia de modelos, red remota ni rendimiento de SV.
| Ruta final | Muestras útiles | Mediana (µs) | MAD (µs) | p95 (µs) | Máximo observado (µs) |
|---|---|---|---|---|---|
| Directa | 1500 | 2.400 | 0.266 | 2.915 | 21.281 |
| IPC persistente | 1500 | 26.459 | 5.630 | 47.149 | 115.709 |
| Arranque + primera respuesta | 25 | 696.818 | 20.038 | 757.212 | 775.476 |
Cada ruta persistente tiene tres bloques de 50 calentamientos y 500 muestras útiles; se alterna el orden directa/IPC. El arranque tiene cinco calentamientos y 25 muestras útiles. Se conservan 3330 muestras brutas por tanda, 3025 útiles. El intervalo de arranque comprende creación del hijo, arranque, instalación de restricciones, primera respuesta y comprobación; termina antes de la limpieza final del hijo. Instant mide tiempo transcurrido. No se fija un SLO por estas medianas.
En la segunda tanda las tres lecturas externas de RSS del auxiliar fueron 2012, 2044 y 2016 KiB, antes de los bloques; no son su máximo bajo cualquier carga. /usr/bin/time informó 0,02 s de CPU de usuario, 0,06 s de sistema y 0,09 s de tiempo transcurrido para el banco combinado, con 2172 KiB de RSS máximo informado; no es la suma de la memoria simultánea de todos los procesos ni una atribución de CPU por ruta. El binario ocupa 624304 bytes. El límite de 64 MiB es de espacio virtual, distinto del RSS.
El coste de desarrollo, revisión, mantenimiento, integración, hardware final y proveedores IA no se ha medido en dinero. La viabilidad observada es técnica y parcial; no constituye un precio ni un presupuesto de despliegue.
5. Límites que permanecen abiertos
No se ha ejecutado una IA real, ni medido su utilidad profesional o sus sesgos. Una procedencia bien ligada no demuestra verdad; un resumen puede omitir información fuera de la cobertura conocida. El caso permite comprobar completitud porque su universo sintético está fijado; esa condición no se presume en Ciberseguridad o Inmunología.
La protección se refiere a comportamiento dentro de un compartimento ya iniciado. No se han probado sustitución de binario antes del filtro, código de arranque comprometido, receptor hostil, host administrador, GPU, DMA, dispositivos, cachés, temporización como canal encubierto, uso indebido de datos por un proveedor remoto ni todas las vías de entrada que podrían ocultar procedencia IA. Un socket denegado no equivale a probar inexistencia universal de canales.
También quedan pendientes autorización humana auténtica, revocación distribuida, recuperación persistente, cuotas agregadas, múltiples adversarios, cargas sostenidas, equipos destino y enlace con sv_core/R1. La separación de UID y namespaces intentada en el entorno local no estuvo disponible; no se contó como superada. Allí también falló la construcción por metadatos de la instalación de Rust; no se ejecutaron los testigos locales.
El criterio para una IA auxiliar es función y conducta verificadas bajo un encargo humano, no una clasificación intrínseca de modelos «buenos» o «malos». La intervención humana conserva el gobierno; la evidencia técnica acota qué hechos puede revisar.
6. Evidencia y reproducción
- Fuente previa a la primera tanda:
b27d484c6b506ab76a0c507126bb413931fb5745. - Fuente y especificación del observador final:
d870febdc145890105dbab0b5b58658c19fef217. - ZIP inicial: SHA-256
1c033c0b3a03900dbc020b756a2688a46a009c6ba8fa8f18729f5dc36d90a25f. - ZIP final: SHA-256
a0e0f3fabca5de8be7b9115307fb9c181ad076276bfff904bc53db6a0920d42f. - Binario final: SHA-256
d136537fe1dcb11d757cf007d41187e52c7a9b933d45d2deafcf3ae9057c7a5c.
Los dos ZIP exactos, sus inventarios de miembros, fuentes, comandos, stdout/stderr, registro de efectos, estado externo del proceso y muestras individuales se conservan en el registro privado. La especificación se fijó en Git antes de cada ejecución; sus seis archivos coinciden con las huellas del preregistro recuperado. El incidente local permanece separado.
La proyección pública consta de manifiesto.json, testigos.json, estado.json y verificar.mjs. Comprueba 33 observaciones documentadas, sucesión, límites y aritmética de 3025 muestras finales; siete alteraciones negativas deben rechazarse. La reproducción de esa aritmética no vuelve a ejecutar los ataques ni certifica los datos privados. La fuente de confianza del manifiesto es el corte publicado y su asiento externo, no una huella circular.
Después de descargar los cuatro objetos en un directorio, ejecutar node verificar.mjs --autoprueba. Para reproducir el ensayo material se necesita el código del laboratorio en el corte final y Linux x86-64 compatible; las instrucciones y expectativas están en aislamiento-033/PROTOCOLO.md, testigos.json y run.py.
7. Continuidad
Esta tanda cubre parcialmente obligaciones de identidad, recursos, aislamiento y verificación del perfil tecnológico 020. No constituye un contrato de agente, no modifica las 32 definiciones CYB, no ejecuta consejo profesional ni Frame y no cierra R1/R2/R3/R4. Se conserva la política de medir antes de proponer refactorización.
El siguiente paso que justificaría promover esta arquitectura es enlazar una operación ya admitida y su autorización real con la frontera material, manteniendo una fuente soberana de semántica. La localización ES/EN y la PR #89 conservan su estado propio; este ensayo no las aprueba ni las integra.