S'ha detectat un paquet maliciós rustdecimal al dipòsit de Rust crates.io

Els desenvolupadors del llenguatge Rust han advertit que s'ha identificat un paquet rustdecimal que conté codi maliciós al repositori crates.io. El paquet es basava en el paquet legítim rust_decimal i es distribuïa utilitzant la similitud de nom (typesquatting) amb l'esperança que l'usuari no notaria l'absència de guió baix quan cerquessin o seleccionessin un mòdul d'una llista.

Cal destacar que aquesta estratègia va tenir èxit i, pel que fa al nombre de descàrregues, el paquet fictici només estava lleugerament per darrere de l'original (~ 111 mil descàrregues de rustdecimal 1.23.1 i 113 mil de rust_decimal 1.23.1 original) . Al mateix temps, la majoria de descàrregues eren d'un clon inofensiu que no contenia codi maliciós. Els canvis maliciosos es van afegir el 25 de març a la versió rustdecimal 1.23.5, que es va descarregar unes 500 vegades abans que s'identifiqués el problema i es bloquegés el paquet (se suposa que la majoria de les descàrregues de la versió maliciosa van ser fetes per robots) i no es va utilitzar com a dependències d'altres paquets presents al repositori (és possible que el paquet maliciós fos una dependència de les aplicacions finals).

Els canvis maliciosos van consistir en afegir una nova funció, Decimal::new, la implementació de la qual contenia codi ofuscat per descarregar des d'un servidor extern i llançar un fitxer executable. Quan es va cridar la funció, es va comprovar la variable d'entorn GITLAB_CI i, si s'ha establert, el fitxer /tmp/git-updater.bin es va descarregar del servidor extern. El controlador maliciós descarregable admet el treball a Linux i macOS (la plataforma Windows no era compatible).

Es va suposar que la funció maliciosa s'executaria durant les proves en sistemes d'integració contínua. Després de bloquejar rustdecimal, els administradors de crates.io van analitzar el contingut del dipòsit per a insercions malicioses similars, però no van identificar problemes en altres paquets. Es recomana als propietaris de sistemes d'integració contínua basats en la plataforma GitLab que s'assegurin que els projectes provats als seus servidors no utilitzen el paquet rustdecimal a les seves dependències.

Font: opennet.ru

Afegeix comentari