Google completó un proyecto piloto utilizando Gemini para reescribir bibliotecas C ampliamente implementadas en Rust, y el experimento dio sus frutos de una manera que nadie había planeado. Poco después de que la empresa migró sus sistemas de producción a una reescritura segura para la memoria generada por IA de la biblioteca de procesamiento de GIF giflib, se reveló una nueva vulnerabilidad de escritura en montón fuera de límites en el código C original, al que se le asignó CVE-2026-26740. Los sistemas de Google ya eran inmunes.
La empresa neutralizó eficazmente una vulnerabilidad de día cero mediante arquitectura en lugar de parches. Como explicó el equipo de ingeniería de seguridad de Google en una publicación en su blog Bug Hunters, el equipo no tenía conocimiento de la divulgación pendiente mientras realizaba la reescritura: la protección era un efecto secundario estructural de la eliminación del código no seguro para la memoria. Para obtener más información sobre cómo la IA está remodelando [la investigación y la ingeniería de IA] (https://aibuzzwire.news), siga AI Buzz Wire.
Por qué es importante ahora la seguridad de la memoria
Las vulnerabilidades de seguridad de la memoria representan aproximadamente el 70% de las vulnerabilidades en las bases de código C y C++, según la propia investigación de Google. Las bibliotecas de terceros son un punto débil particular porque analizan de forma rutinaria datos que no son de confianza. Al mismo tiempo, el intervalo entre el descubrimiento de vulnerabilidades y el uso de armas sigue reduciéndose: los atacantes, cada vez más asistidos por la propia IA, se mueven más rápido que los ciclos de parches tradicionales.
Google ha abogado durante mucho tiempo por una estrategia de "codificación segura" que prioriza los lenguajes seguros para la memoria como Rust. El problema no resuelto es la vasta base instalada de dependencias de C y C++ que no se pueden eliminar simplemente. El piloto hizo una pregunta directa: ¿puede un LLM convertir rápidamente esas dependencias a Rust sin romper nada?
El objetivo: giflib
Google eligió giflib, una biblioteca de procesamiento de imágenes GIF ampliamente utilizada desarrollada originalmente por Eric S. Raymond. La biblioteca ofrecía un perfil de complejidad ideal para un primer intento: aproximadamente 3000 líneas de código, sin SIMD ni optimizaciones de ensamblaje, y una base de código estable. Fundamentalmente, giflib a menudo procesa datos que no son de confianza en entornos sin espacio aislado, exactamente el tipo de superficie de ataque que más preocupa a los equipos de seguridad.
El objetivo era ambicioso: producir un reemplazo directo compatible con ABI y seguro para la memoria que pudiera implementarse en toda la infraestructura de producción de Google sin interrupción de los servicios dependientes. La traducción inicial de la lógica de la biblioteca se logró rápidamente con la ayuda de LLM, pero el equipo señaló dos requisitos que resultaron decisivos: una gestión cuidadosa del límite de FFI (ciclo de vida del puntero y semántica de propiedad de Rust en la interfaz con los llamadores C existentes) y lo que Google llama "el componente social de la seguridad", la confianza humana necesaria para implementar reescrituras generadas por IA en servicios críticos.
El guante de validación
Para ganarse la confianza de la producción, la implementación de Rust pasó por pruebas exhaustivas:
- Pruebas de regresión a escala masiva: Validado con un conjunto de datos de más de 30 millones de GIF del mundo real, lo que confirma resultados idénticos a la implementación original.
- Fusor diferencial: Un fuzzer original versus Rust se ejecutó continuamente durante más de seis días y más de 200 millones de iteraciones sin encontrar ninguna desviación lógica.
- Revisión de IA adversaria: Se utilizaron indicaciones de LLM especializadas para buscar diferencias de comportamiento sutiles entre las dos bases de código que las pruebas tradicionales podrían pasar por alto.
El oleoducto demostró su valía antes de su despliegue. Identificó un caso límite en el decodificador LZW y, más notablemente, descubrió una vulnerabilidad de escritura fuera de límites preexistente que había sido introducida por un parche heredado interno de Google en la fuente C original, que el equipo corrigió en la reescritura de Rust.
El rendimiento no se vio afectado
Una objeción común a los lenguajes seguros para la memoria es el costo de la verificación de los límites del tiempo de ejecución. El monitoreo de Google en sus servicios globales de procesamiento de imágenes mostró que la implementación de Rust era neutral en cuanto al rendimiento en comparación con el original C, un resultado que la compañía dice haber observado repetidamente en las migraciones de Rust.
Hubo una bonificación inesperada. Debido a que la biblioteca Rust es segura para la memoria por construcción, Google pudo desmantelar el espacio aislado que requiere muchos recursos y que algunos servicios de producción necesitaban anteriormente para aislar la biblioteca C. Esa simplificación arquitectónica produjo una reducción significativa en la latencia de cola para las tareas de decodificación de imágenes.
Código abierto: con advertencias honestas
Google ha publicado la reescritura de Rust en github.com/google/giflib-rs y está contribuyendo con sus hallazgos a la comunidad. La compañía también atribuye a los esfuerzos complementarios dirigidos por humanos, como la reescritura manual de zlib en Rust por parte de Trifecta Tech Foundation, ganancias sustanciales de rendimiento, como parte de un ecosistema más amplio de soluciones.
Vale la pena señalar las advertencias. Las reescrituras requieren grandes cantidades de datos del mundo real o conjuntos de pruebas sólidos existentes para validar la equivalencia de comportamiento, y desviarse de un proyecto inicial cambiando los idiomas genera un costo de mantenimiento real, especialmente para las dependencias en desarrollo activo. En otras palabras, la traducción asistida por IA acelera, pero no reemplaza, el criterio de ingeniería.
El panorama más amplio
El piloto es una de las demostraciones más claras hasta el momento de que los LLM pueden ofrecer mejoras de seguridad estructural a escala, no solo sugerencias de código. Al combinar la velocidad de la traducción basada en LLM con pruebas diferenciales y revisión humana experta de los límites de seguridad, sostiene Google, se pueden eliminar clases enteras de vulnerabilidades de la infraestructura de producción, antes de que nadie sepa qué CVE específico será el siguiente.
Fuente: blog de Google Bug Hunters, "Escalado de la seguridad de la memoria: reescrituras asistidas por IA de dependencias de C/C++ en Rust".
---
Manténgase a la vanguardia de la IAObtenga las últimas noticias, análisis y avances en IA, todo en un solo lugar.
Leer más noticias sobre IA →