Rust ha ganado rápidamente impulso entre los desarrolladores, por su enfoque en el rendimiento, la seguridad, la concurrencia segura y por tener una sintaxis similar a C ++.  La encuesta de desarrolladores de StackOverflow de 2020 clasificó a Rust como el primero entre los «lenguajes de programación más queridos «.

Sin embargo, durante mucho tiempo, los desarrolladores se han molestado porque sus compilaciones de producción filtran información de depuración potencialmente sensible. 

Los binarios compilados de Rust conservan el nombre de usuario y las rutas del directorio de inicio. A principios de 2017, un desarrollador de Rust presentó un problema en el GitHub de Rust lang preguntando: «¿Cómo puedo evitar que rustc [de] incluya información específica del sistema, como rutas de archivo absolutas de la fuente desde la que se compila en los binarios que genera?».

El desarrollador compartió algunos ejemplos de rutas retenidas en sus compilaciones de producción:/checkout/src/libcore/option.rs
/ home / kfairmasterz /.cargo/registry/src/github.com-1ecc6299db9ec823/typeable-0.1.2/src/lib.rs
/ home / kfairmasterz /.cargo/registry/src /github.com-1ecc6299db9ec823/openssl-0.9.7/src/ssl/bio.rs

Estos nombres de ruta absolutos revelaron el nombre de usuario del sistema del desarrollador y la estructura general de los directorios, incluido el directorio de inicio.

Además expresaron en el mismo hilo: «Si ayuda, incluir identificadores de usuario como este viola el RGPD … por lo que el equipo de rust debería abordar este problema».

«En 2020, la gente se preocupa por la privacidad y esto puede ser un obstáculo como rust-lang / mdBook # 847, donde la gente trabajó activamente fuera del proyecto debido a la falta de respeto a la privacidad del usuario», dijo el desarrollador refiriéndose a un proyecto de Rust llamado mdBook . A primera vista, esta «filtración» de nombres de usuario y rutas absolutas puede parecer trivial para un lector.

Sin embargo, a lo largo de los años, muchos más desarrolladores se sorprendieron al notar que dicha información se incluía no solo en las compilaciones de depuración, sino también en las compilaciones de producción de Rust [ 1 , 2 , 3 , 4 , …] y presionaron para un cambio. Los lectores de BleepingComputer también se han acercado a nosotros en más de una ocasión para compartir sus pensamientos sobre el tema. Dado que el proyecto Rust, en ese momento, no solucionó este problema, los miembros de la comunidad propusieron algunas soluciones, como usar la opción «abortar en caso de pánico», pero desafortunadamente ninguna de ellas funcionó.

«Intenté activar ‘abortar’ por pánico en el perfil de lanzamiento. Aunque esto resultó en un tamaño binario más pequeño, no borra los nombres de los archivos fuente del binario», declaró el desarrollador Dmitry Zakablukov en agosto de 2020.

Otras soluciones alternativas propuestas incluyeron parámetros variables como la hora del sistema, el nombre de usuario, la zona horaria, la configuración regional, el nombre de host, etc. Curiosamente, a pesar de ser un riesgo para la privacidad, la inclusión involuntaria de metadatos, como rutas absolutas, puede ayudar a los expertos en informática forense y a las fuerzas del orden, ya que la ruta podría revelar los nombres de usuario del sistema. Por supuesto, cualquier desarrollador que tenga conocimiento de este problema puede construir trivialmente sus aplicaciones Rust dentro de un contenedor y usar un nombre de usuario seudónimo para minimizar el impacto del problema.

Problema revivido después de 4 años, el equipo de Rust lo declara como un error.

Esta semana, un desarrollador seudónimo, chemsaf3, se acercó a BleepingComputer para reiterar su preocupación por este problema. El desarrollador presentó otro problema titulado «Rutas de registro codificadas en binario» en el GitHub del proyecto Rust, centrando la atención en este problema. «Rust lang busca filtrar información confidencial innecesariamente en binarios compilados, como rutas del sistema y nombres de usuario».

«[Esto] ocurre en el modo de lanzamiento (producción), no solo en la depuración, y [no hay] forma de eliminar la información con las herramientas existentes».

«La gente ha informado del problema, pero ninguna acción o comunicación del equipo de Rust», dijo chemsaf3 a BleepingComputer. El desarrollador también declaró que se desconoce cuántos desarrolladores que envían aplicaciones de Rust probablemente no sepan que sus aplicaciones están revelando las rutas del sistema y los nombres de usuario.

La principal preocupación del desarrollador era: «Rust se está volviendo cada vez más popular, por lo que esto puede comenzar a afectar a un mayor número de desarrolladores», «Este comportamiento no está documentado, ni existe una forma de prevenir la fuga», nos dijo además el desarrollador. La solicitud de GitHub presentada por el desarrollador fue seguida rápidamente con una respuesta del miembro del equipo de Rust:

«¡Gracias por el informe! Parece que encontró varios otros problemas relacionados con esto, así que no tengo claro si este problema cubre algo nuevo. Parece que el número 5505 trata sobre la reasignación, ¿puede aclarar qué es diferente aquí?» preguntó Eric Huss del equipo de Rust. Sin embargo, después de que el problema resurgió en Reddit, un miembro del equipo de Google, Alexis Hunt, intervino en el problema de GitHub de Rust: «Me vinculé este problema desde Reddit y me interesé porque personalmente es importante para mí tener buenos valores predeterminados que preserven la privacidad. Hablé informalmente con algunos colegas …»

Hunt resumió algunas de las preocupaciones de los desarrolladores y compartió algunas ideas sobre cómo se podría resolver el problema. «Personalmente, creo que esto es importante y debería abordarse rápidamente, pero no estoy en condiciones de hacer un seguimiento y hacer que esto suceda. Espero que alguien más pueda retomar esto», continuó Hunt. Para entender si Rust consideró esto una vulnerabilidad o planeó una corrección de errores, BleepingComputer se comunicó con el equipo central de Rust para hacer comentarios.

«Estamos de acuerdo en que este es un error que vale la pena corregir y ayudaremos a nuestros equipos a resolverlo», dijo a BleepingComputer Manish Goregaokar del equipo de Rust y un ingeniero de software senior de Google.

Aunque en este momento, no se sabe cómo o cuándo el equipo de Rust planea resolver este problema, la mayor presión de la comunidad de desarrolladores parece estar dirigiendo a los mantenedores de Rust hacia una dirección viable.

Fuente y redacción: bleepingcomputer.com

Compartir