Rust es un lenguaje de programación relativamente nuevo (nace en 2006 cómo proyecto personal de un ingeniero de Mozilla, cuya Fundación acabaría esponsorizando el proyecto), que incide especialmente en el rendimiento y la seguridad de las aplicaciones, características que han hecho que se difunda rápidamente y gane una amplia base de programadores adeptos.
Para hacernos una idea de sus mecanismos de seguridad, especialmente en lo que se refiere a la gestión de la memoria, es el lenguaje de programación recomendado por la CISA (Cybersecurity and Infrastructure Security Agency) para desarrollar aplicaciones informáticas, y esta no es la única agencia federal estadounidense que lo recomienda, habiéndose subido también a su carro la NSA entre otras.
Desde Microsoft, y -según la misma compañía de Redmond- respondiendo al interés de la comunidad de desarrolladores que ha solicitado repetidamente a la compañía el disponer de las facilidades para implementar drivers de Windows en este lenguaje, también se está impulsando su adopción, según nos cuenta uno de sus responsables en este post del blog de desarrolladores de Windows.
No olvidemos que un driver para que Windows reconozca un dispositivo de hardware y pueda «dialogar» con él, tiene que trabajar a nivel del kernel (núcleo) del sistema, por lo que un fallo de seguridad en la programación del driver cómo, por ejemplo, la posibilidad de aprovechar un desbordamiento de memoria para inyectar código arbitrario, puede dar lugar a un exploit que facilite a un atacante acceso al sistema al máximo nivel.
Este tipo de situaciones posibles llevan a que Microsoft deba considerar la seguridad de los drivers al máximo nivel y, por lo tanto, a Rust cómo una herramienta adecuada en dicho sentido para mejorar la seguridad de los usuarios finales.
Entrando en las medidas concretas que la compañía de Redmond ha tomado para facilitar que los desarrolladores de drivers para Windows puedan trabajar con Rust, tenemos que se ha facilitado su acceso a los recursos proporcionados a través del WDK (Windows Driver Kit), con componentes que permiten generar binarios de drivers WDM, KMDF y UMDF que funcionan bajo Windows 11.
Según el mismo post de blog en el que Microsoft anuncia estas novedades, ha sido el equipo de Surface el pionero dentro de la firma en utilizar Rust para desarrollar drivers de hardware, capitaneando el desarrollo de facilidades para que el resto de los programadores también pueda usar este lenguaje de programación.
No obstante, desde Microsoft se advierte que, por ahora, los drivers que se pueden escribir para Windows todavía deben hacer uso de bloques no seguros (unsafe) para interactuar con el sistema operativo, pero que la ventaja es que pueden disfrutar de las garantías de seguridad implementadas en el Rust seguro (safe Rust), y que el equipo que implementa estas facilidades va a seguir trabajando para lograr brindar a los desarrolladores la máxima seguridad para la creación de drivers en Rust.
Así pues, y a lo largo de los próximos meses, la compañía de Redmond irá presentando novedades al respecto.



