
En Rust Week, en Utrecht, Greg Kroah‑Hartman, mantenedor estable del kernel Linux, afirmó que la adopción de Rust y sus comprobaciones en tiempo de compilación constituyen una respuesta realista a la creciente avalancha de vulnerabilidades que están saliendo a la luz gracias a herramientas automáticas basadas en IA. El argumento central fue que Rust evita muchas clases de errores comunes en C que hoy generan gran parte de los reportes de seguridad; esto afecta directamente a mantenedores y usuarios al reducir el volumen de fallos que hay que parchear y auditar.
Kroah‑Hartman citó nombres concretos de fallos detectados en ese contexto — Dirty Frag, Copy Fail y Fragnesia— y afirmó que el ritmo de divulgación ha llegado a cifras como “13 CVE al día, o algo así”. También recurrió a ejemplos históricos del código C del kernel para ilustrar la gravedad: un bug de Bluetooth de 15 años que desreferenciaba un puntero sin comprobarlo y un fallo en Xen en el que se olvidó desbloquear en una ruta de error. Esos casos muestran cómo errores de manejo de recursos y de condiciones de error perduran y reaparecen cuando las herramientas de detección automatizadas los sacan a la luz.
Desde el punto de vista técnico, Kroah‑Hartman defendió las abstracciones de bloqueo y gestión de memoria que ofrece Rust: el compilador fuerza a adquirir y soltar cerraduras de forma correcta y limita el acceso directo a punteros internos sin la protección adecuada. Según él, esas garantías en compilación reducen la dependencia de revisar manualmente cada ruta de error en C, donde la detección suele producirse demasiado tarde y deja margen a errores humanos en el manejo de locks y recursos.
El mantenedor estimó que esas propiedades de Rust eliminarían “un gran porcentaje” de las clases de fallos que más encuentra el equipo del kernel, y concretó que “cerca del 60%” de ciertos bugs desaparecerían gracias a las comprobaciones automáticas. Para los revisores y mantenedores, esto se traduciría en menos trabajo repetitivo comprobando errores de gestión y en revisiones de código más seguras y eficaces.
Kroah‑Hartman señaló además un efecto indirecto: la mera existencia de Rust ha provocado cambios en el propio código C del kernel. Se han introducido guards en C, locks con ámbito (scoped locks) y nuevos allocators inspirados por Rust, medidas que dificultan los errores clásicos de C y simplifican la codificación aun cuando los módulos sigan escritos en C. desarrolladores a escribir futuros componentes del kernel en Rust.
Fuentes
Respuestas (0)
Aún no hay respuestas en este tema.