Ciberseguridad
Claude pone sus pruebas de software a examen
Anthropic presenta un trabajo con Theorem en el que Claude escribe demostraciones matemáticas de seguridad que comprueba Rocq. La garantía se aplica a programas y condiciones concretos: no certifica bibliotecas enteras ni elimina todos sus posibles errores.
Recibe el resumen diario de IA
Cada mañana, lo esencial de la inteligencia artificial en tu correo, sin humo. Al día con la IA.
Al suscribirte aceptas recibir el newsletter de AI Informator. Puedes darte de baja cuando quieras.
En resumen
- Según Anthropic, las pruebas abarcan puntos de entrada de bibliotecas de OSS-Fuzz, la iniciativa de pruebas continuas para proyectos de código abierto.
- Anthropic afirma que el núcleo de Rocq comprueba las demostraciones contra una especificación: la aceptación no depende del juicio de Claude.
- Según Anthropic, intentar construir las pruebas permitió encontrar y corregir fallos, aunque las garantías conservan límites de arquitectura, ejecución y cobertura.
De probar ejemplos a demostrar una regla
Anthropic presenta un método que parte de las pruebas que los desarrolladores ya habían preparado. Esas pruebas reciben entradas y señalan ciertos errores haciendo que el programa falle. El trabajo transforma esa condición en una especificación matemática: demostrar que no se produce un fallo para ninguna entrada dentro del alcance definido.
Según la empresa, la diferencia respecto a generar muchas entradas de prueba está en la cobertura de la afirmación. Ejecutar ejemplos busca casos que rompan el programa, pero no garantiza recorrer todos los caminos posibles. Una demostración válida descarta los fallos contemplados a lo largo de cualquier camino alcanzable desde el punto de entrada, siempre dentro de sus condiciones.
Quién escribe la prueba y quién la acepta
Según Anthropic, la biblioteca y su prueba existente se compilan para obtener un ejecutable. A partir de ese ejecutable, los modelos formales y la propiedad de ausencia de fallos se genera la especificación que debe satisfacer la demostración. Claude escribe la prueba; el núcleo de Rocq comprueba que se ajusta a esa especificación.
Según la empresa, el volumen de las demostraciones no obliga a revisar manualmente cada línea. La confianza se concentra en los modelos de la máquina y del sistema operativo, los enunciados exactos demostrados y el propio comprobador. Esa separación permite verificar el resultado del modelo, pero mantiene componentes de confianza cuya corrección sigue siendo necesaria.
La garantía tiene un perímetro
| Aspecto | Cobertura o condición |
|---|---|
| Puntos de entrada | 239 |
| Bibliotecas de OSS-Fuzz | 123 |
| Entradas | Inferiores a 64 MB |
| Arquitectura y sistema | Binarios estáticos RISC-V con Linux modelado |
| Concurrencia y memoria | Un único hilo y un presupuesto fijo de memoria |
| Funciones | Caminos alcanzables desde los puntos de entrada verificados |
| Volumen de las pruebas | Unos 180 millones de líneas de Rocq |
Anthropic afirma que el resultado se refiere a los ejecutables compilados y a los puntos de entrada verificados. La garantía incluye la terminación normal, sin los errores de memoria y las aserciones fallidas contemplados, para las respuestas del sistema operativo y las distribuciones de memoria modeladas. Las condiciones de ejecución forman parte del resultado, no son detalles intercambiables.
Buscar errores mientras se construye la demostración
Anthropic afirma que los intentos de demostración descubrieron fallos que las pruebas automáticas difícilmente habrían encontrado. Algunos exigían entradas grandes con una estructura muy concreta o una secuencia particular de operaciones. El procedimiento permitía corregir el código, regenerar la especificación y continuar con la demostración sobre la versión modificada.
Según la empresa, esa capacidad de modificar el programa exigía vigilar los parches. Los investigadores penalizaron cualquier modificación y premiaron demostrar qué entradas cambiaban de comportamiento y que fueran pocas. También registraron y auditaron los parches para detectar atajos que cumplieran el objetivo formal a costa de alterar la tarea.
Lo que sigue fuera de la prueba
Según Anthropic, los ejecutables estudiados usan una arquitectura y una forma de enlazar las bibliotecas que difieren de muchas instalaciones reales. La prueba no se traslada automáticamente a otras máquinas o configuraciones. Además, el mecanismo que detecta errores de memoria no identifica todos los posibles: demostrar que sus alarmas no saltan no cubre errores que ese mecanismo no observa.
Anthropic sostiene que tampoco se verificaron todos los puntos de entrada de cada biblioteca. Incluso cubrirlos todos dejaría posibles huecos, como código no alcanzable desde ellos. Otra aplicación puede usar mal una biblioteca y corromper su propia memoria; cerrar ese hueco requiere especificar las obligaciones de quien llama a cada función y respetarlas.
Conclusión
Según Anthropic, la verificación formal aporta garantías concretas y ayuda a localizar errores durante su construcción. Su alcance depende de lo que se haya especificado y modelado: una demostración aceptada no convierte todo el software que la rodea en un sistema libre de fallos.
Fuentes primarias
Recibe el resumen diario de IA
Cada mañana, lo esencial de la inteligencia artificial en tu correo, sin humo. Al día con la IA.
Al suscribirte aceptas recibir el newsletter de AI Informator. Puedes darte de baja cuando quieras.
Comentarios