Paquete malicioso Rustdecimal detectado en el repositorio de Rust crates.io

Los desarrolladores del lenguaje Rust han advertido que se ha identificado un paquete Rustdecimal que contiene código malicioso en el repositorio crates.io. El paquete se basó en el paquete legítimo rust_decimal y se distribuyó usando similitud en el nombre (typesquatting) con la expectativa de que el usuario no notara la ausencia de un guión bajo al buscar o seleccionar un módulo de una lista.

Es de destacar que esta estrategia resultó exitosa y, en términos de número de descargas, el paquete ficticio estuvo solo ligeramente por detrás del original (~111 mil descargas de Rustdecimal 1.23.1 y 113 mil del Rust_decimal 1.23.1 original). . Al mismo tiempo, la mayoría de las descargas eran de un clon inofensivo que no contenía código malicioso. Los cambios maliciosos se agregaron el 25 de marzo en la versión Rustdecimal 1.23.5, que se descargó unas 500 veces antes de que se identificara el problema y se bloqueara el paquete (se supone que la mayoría de las descargas de la versión maliciosa fueron realizadas por bots) y no se utilizó como dependencia de otros paquetes presentes en el repositorio (es posible que el paquete malicioso dependiera de las aplicaciones finales).

Los cambios maliciosos consistieron en agregar una nueva función, Decimal::new, cuya implementación contenía código ofuscado para descargar desde un servidor externo y ejecutar un archivo ejecutable. Al llamar a la función, se verificó la variable de entorno GITLAB_CI y, si estaba configurada, el archivo /tmp/git-updater.bin se descargó del servidor externo. El controlador malicioso descargable admitía su funcionamiento en Linux y macOS (la plataforma Windows no era compatible).

Se supuso que la función maliciosa se ejecutaría durante las pruebas en sistemas de integración continua. Después de bloquear Rustdecimal, los administradores de crates.io analizaron el contenido del repositorio en busca de inserciones maliciosas similares, pero no identificaron problemas en otros paquetes. Se recomienda a los propietarios de sistemas de integración continua basados ​​en la plataforma GitLab que se aseguren de que los proyectos probados en sus servidores no utilicen el paquete Rustdecimal en sus dependencias.

Fuente: opennet.ru

Añadir un comentario