Hackers envenenan una librería de Rust para robar contraseñas de Chrome, Edge y Brave

Hackers atacan navegadores y Rust
Hackers atacan navegadores y RustMontaje/Freepik
Noticia
Añádenos en Google

Elígenos como tu fuente preferida en Google.

Tus contraseñas guardadas en Chrome, Edge y Brave podrían estar en peligro. Los hackers atacan con un malware que afecta directamente a las librerías del ecosistema Rust.

Como si el peligroso ransomware Medusa no fuera suficiente, los hackers consiguen ir más allá, infectando infraestructuras que usan Rust como base.

Esto quiere decir que los navegadores más populares de la actualidad son unos de los softwares más afectados. Millones de usuarios están a punto de sufrir la amenaza "arrayref", un create que impacta directamente con proyectos relacionados con criptografía, blockchain e interfaces gráficas.

Además, la situación recuerda otros incidentes recientes que han afectado repositorios y registros de software de uso masivo. El problema es más grande de lo que parece y por eso las autoridades recomiendan prestar atención para tomar cartas sobre el asunto.

¿Cómo se produjo el ataque y por qué preocupa tanto a la comunidad Rust?

Código de Rust
Código de RustUnsplash

Los hackers vuelven a hacer de las suyas con respecto a los malware. Esta vez se trata de uno que definitivamente está llamando la atención del sector de los desarrolladores. 

Para ser más específicos, los investigadores de StepSecurity descubrieron que un atacante comprometió la cuenta de mantenimiento asociada a varios crates de Rust para distribuir código malicioso a través de actualizaciones aparentemente legítimas.

Básicamente, engañaron el sistema para que reemplazara versiones correctas por unas infectadas con el fin de agregar las respectivas "actualizaciones". 

Según BleepingComputer, las versiones afectadas fueron "arrayref 0.3.10", "append-only-vec 0.1.9" e "internment 0.8.7". Cada una de estas está relacionada con la misma cuenta de mantenimiento y parte de una dependencia en específico. 

Esta en cuestión es conocida como "proc-macro1", la cual fue modificada para hacerse pasar por "proc-macro2". En este proceso, se inyectó el malware sin levantar sospechas, ya que el hacker mantuvo todo lo demás intacto, insertando todo el contenido malicioso por este medio. 

El archivo "build.rs" de "proc-macro1" se ejecutaba automáticamente durante el proceso de compilación para que el script generara componentes codificados en Base64. Eso fue suficiente como para construir una infección específica para cada sistema operativo: Windows, Linux, macOS Intel y macOS ARM.

En Windows, creaba "%TEMP%\rust-setup.ps1" y utilizaba una combinación de scripts VBS y procesos ocultos mediante wscript.exe para garantizar la ejecución continua del código malicioso.

El atacante mantuvo intacto prácticamente todo el código original de los proyectos comprometidos, incorporando únicamente esta dependencia maliciosa.

De esta forma, la actualización parecía normal y pasaba desapercibida incluso sobre revisiones superficiales. En efecto, aprovechaba la confianza de los desarrolladores sobre las dependencias, porque todo se ejecutaba en segundo plano.

Malware multiplataforma, robo de credenciales y medidas urgentes para los desarrolladores

El ataque comenzó el 20 de agosto con la creación de cuentas falsas que imitaban a desarrolladores reconocidos de la comunidad Rust. Entre los objetivos de este ataque identificados se encontraban las bases de datos SQLite utilizadas por los navegadores Google Chrome, Microsoft Edge y Brave para almacenar información de acceso.

Eso no era todo porque el malware implementaba mecanismos de persistencia. Se dice que se quedaba en Run del Registro de Windows, servicios systemd en Linux y LaunchAgents en macOS.

La buena noticia es que Crates.io retiró "proc-macro1" y eliminó las versiones comprometidas cuando se confirmó el incidente. De igual manera, StepSecurity, SafeDep y Aikido compartieron análisis que ayudaron a identificar las infecciones.

Los desarrolladores que hayan instalado alguno de los paquetes afectados durante la ventana de exposición, la recomendación es verificar archivos Cargo.lock, buscar contenido generado por el ente malicioso y analizar conexiones hacia la dirección 23.254.165.112 a través de los puertos 9089 y 443.

Cuando se confirma que se ha afectado, hay que rotar inmediatamente todas las contraseñas, tokens y otros sistemas similares. A su vez, los entornos contaminados deben ser reconstruidos para evitar que el atacante se siga colando en el código.