El kernel de Linux ha dado un paso significativo hacia la mejora de la seguridad con la creciente adopción de componentes del lenguaje de programación Rust destinados a eliminar errores de seguridad de la memoria.
El proyecto Rust para Linux ha alcanzado un punto de inflexión crítico, y ahora se están desarrollando varios controladores en este lenguaje seguro para la memoria.
Los errores de seguridad de la memoria representan una parte sustancial de las vulnerabilidades del kernel, lo que los convierte en un objetivo principal para las mejoras de seguridad.
Desde que Rust se fusionó oficialmente con el kernel de Linux en octubre de 2022, los equipos de desarrollo han estado trabajando constantemente para implementar controladores y componentes basados en Rust que prevengan inherentemente problemas de seguridad comunes relacionados con la memoria.
El esfuerzo está liderado por Miguel Ojeda, quien publicó el RFC original para Rust en el kernel de Linux y continúa manteniendo las ramas de desarrollo.
Los beneficios de incorporar Rust van más allá de la simple seguridad.
Como señalaron los analistas de seguridad de Prossimo, el nuevo código escrito en Rust ha reducido el riesgo de errores de seguridad de la memoria y carreras de datos, mientras que los mantenedores informan una mayor confianza en la refactorización y aceptación de parches para módulos gracias al subconjunto seguro de Rust.
Las características modernas del lenguaje también hacen que el desarrollo de nuevos controladores y módulos sea más sencillo a través de abstracciones sobre las que es más fácil razonar.
Varias empresas cuentan ahora con ingenieros de tiempo completo dedicados al desarrollo de Rust para el kernel de Linux, lo que demuestra el compromiso de la industria con este enfoque.
Las implementaciones actuales incluyen controladores PHY, un controlador de bloque nulo y un generador de códigos QR de pantalla de pánico DRM. Los proyectos más ambiciosos actualmente destinados a la integración ascendente incluyen el controlador Android Binder, el controlador Apple AGX GPU, el controlador NVMe y el controlador Nova GPU.
El punto de inflexión para Rust en Linux
En la reciente ventana de fusión 6.13, Greg Kroah-Hartman destacó la importancia de este momento para Rust en el kernel y señaló:
“Óxido de fijaciones de controladores diversos y otros cambios en el óxido para hacer que los controladores diversos sean realmente posibles. Creo que este es el punto de inflexión, espero ver muchos más factores de óxido en el futuro ahora que estas fijaciones están presentes”.
Kroah-Hartman mencionó además que la próxima ventana de fusión debería traer capacidades de controlador de plataforma y PCI, lo que permitiría que casi todos los subsistemas de controladores acepten controladores Rust.
Este progreso representa la culminación de un extenso trabajo de muchos contribuyentes que han demostrado que los escépticos estaban equivocados a través de un código funcional y funcional.
Si bien el objetivo nunca fue reescribir todo el kernel en Rust, la creciente aceptación en varios subsistemas indica un cambio hacia un futuro más seguro para la memoria de Linux.
Jonathan Corbet, mantenedor del kernel y editor ejecutivo de LWN, enfatizó que el proyecto Rust para Linux ya ha logrado un hito importante al demostrar que Rust es realmente viable y deseable para el desarrollo del kernel, y señaló que este trabajo es esencial para la viabilidad a largo plazo de Linux.
Se espera que al menos una de las implementaciones ascendentes objetivo se fusione con el kernel principal dentro de los próximos 12 a 18 meses, acercando el objetivo final de la iniciativa a la realidad: crear productos y servicios más seguros que ejecuten Linux, beneficiando a los usuarios finales a través de una protección mejorada contra vulnerabilidades relacionadas con la memoria.