SV Documentación de laboratorios

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

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.

Manifiesto · Testigos · Estado y muestras · Verificador

Volver a documentación del laboratorio