Detectouse un paquete malicioso rustdecimal no repositorio de Rust crates.io

Os desenvolvedores da linguaxe Rust advertiron de que se identificou un paquete rustdecimal que contén código malicioso no repositorio crates.io. O paquete baseouse no paquete lexítimo rust_decimal e distribuíuse usando semellanza no nome (typesquatting) coa expectativa de que o usuario non notase a ausencia dun guión baixo ao buscar ou seleccionar un módulo dunha lista.

Cabe destacar que esta estratexia resultou ser exitosa e en canto ao número de descargas, o paquete ficticio estaba só lixeiramente por detrás do orixinal (~ 111 mil descargas de rustdecimal 1.23.1 e 113 mil do orixinal rust_decimal 1.23.1) . Ao mesmo tempo, a maioría das descargas eran dun clon inofensivo que non contiña código malicioso. Os cambios maliciosos engadíronse o 25 de marzo na versión rustdecimal 1.23.5, que se descargou unhas 500 veces antes de que se identificara o problema e bloquease o paquete (suponse que a maioría das descargas da versión maliciosa foron realizadas por bots) e non se utilizou como dependencias doutros paquetes presentes no repositorio (é posible que o paquete malicioso fose unha dependencia das aplicacións finais).

Os cambios maliciosos consistiron en engadir unha nova función, Decimal::new, cuxa implementación contiña código ofuscado para descargar desde un servidor externo e lanzar un ficheiro executable. Ao chamar á función, comprobouse a variable de ambiente GITLAB_CI e, se se estableceu, o ficheiro /tmp/git-updater.bin descargouse do servidor externo. O controlador malicioso descargable admitía o traballo en Linux e macOS (a plataforma Windows non era compatible).

Supoñíase que a función maliciosa sería executada durante as probas en sistemas de integración continua. Despois de bloquear rustdecimal, os administradores de crates.io analizaron o contido do repositorio en busca de insercións maliciosas similares, pero non identificaron problemas noutros paquetes. Recoméndase aos propietarios de sistemas de integración continua baseados na plataforma GitLab que se aseguren de que os proxectos probados nos seus servidores non utilicen o paquete rustdecimal nas súas dependencias.

Fonte: opennet.ru

Engadir un comentario