Usar Rust en Linux está siendo muy polémico. En Android ya se han demostrado sus grandes virtudes reduciendo bugs

Cada vez más, Rust parece tener razones para sacar pecho frente a C/C++

Android Rust
1 comentario Facebook Twitter Flipboard E-mail

En los últimos años, Google se ha estado esforzando en mejorar la seguridad de su sistema operativo Android. Una de las medidas adoptadas en ese sentido ha sido la adopción de lenguajes de programación que garantizan la seguridad de la memoria, siendo Rust el principal protagonista de este cambio.

Un cambio del que, sin duda, Android parece haberse beneficiado, a tenor de los datos. Quizá podrían tomar nota de ello los desarrolladores del kernel de Linux, que parecen inmersos en un 'especie de guerra religiosa' (palabras de Linus Torvalds, no nuestras) en torno a Rust vs. C/C++.

Un vistazo a…
La carrera de programador en 2017 y en el futuro (con Javier Santana)

La importancia de la seguridad de memoria

Las vulnerabilidades de seguridad en Android, como en muchos sistemas operativos, han estado dominadas históricamente por fallos relacionados con la seguridad de la memoria (como los desbordamientos de búfer).

Estos errores son especialmente comunes en lenguajes de programación como C y C++, que requieren que los desarrolladores gestionen la memoria de manera manual (un proceso proclive a errores si no se realiza de manera rigurosa).

De acuerdo con Google, en 2019 el 76% de las vulnerabilidades de Android (223) estaban relacionadas con problemas de seguridad de la memoria (el promedio de la industria se sitúa en el 70%).

Sin embargo, para finales del presente 2024, se espera que ese número caiga drásticamente a un 24% (un total de 50 vulnerabilidades), gracias en gran medida a la adopción de lenguajes de programación seguros para la memoria como Rust.

El papel de Rust en la reducción de vulnerabilidades

Uno de los principales beneficios que ha destacado Google es la menor tasa de reversión de cambios cuando se utiliza Rust en lugar de C++. Según el equipo de Android, los cambios en Rust tienen una tasa de reversión de menos de la mitad que los realizados en C++.

Esto significa que los errores inesperados que requieren deshacer los cambios de código ocurren con menos frecuencia cuando se utiliza Rust, lo que demuestra su eficacia para evitar fallos antes de que el código sea implementado.

Flaws

Una nueva estrategia: el 'safe coding'

La adopción de Rust forma parte de una estrategia más amplia que Google ha denominado 'Safe Coding' (codificación segura), que prioriza evitar la introducción de vulnerabilidades desde el inicio, en lugar de depender exclusivamente de técnicas reactivas como parches o mitigaciones de fallos.

Otro aspecto importante de la estrategia de seguridad de Google es el concepto del "decaimiento de las vulnerabilidades". A medida que el código envejece y madura, su densidad de vulnerabilidades tiende a disminuir. Los estudios muestran que el código que tiene cinco años es entre 3,4 y 7,4 veces menos vulnerable que el código recién escrito. Este fenómeno se debe en gran parte a que las vulnerabilidades tienden a concentrarse en el código nuevo o recientemente modificado.

De esta forma, ahora las vulnerabilidades en el código antiguo tienden a decaer naturalmente, mientras que el nuevo código escrito en lenguajes como Rust previene la aparición de nuevos fallos.

Vía | Google

Imagen | Marcos Merino mediante IA + Logos

En Genbeta | Este es el curso gratis que usan en Google para aprender el lenguaje Rust. Tú también puedes hacerlo libremente

Inicio