Pacote malicioso Rustdecimal detectado no repositório Rust crates.io

Os desenvolvedores da linguagem Rust alertaram que um pacote rustdecimal contendo código malicioso foi identificado no repositório crates.io. O pacote foi baseado no pacote legítimo rust_decimal e foi distribuído usando similaridade de nome (typesquatting) com a expectativa de que o usuário não notasse a ausência de sublinhado ao pesquisar ou selecionar um módulo em uma lista.

Vale ressaltar que esta estratégia acabou dando certo e em termos de número de downloads, o pacote fictício ficou apenas um pouco atrás do original (~111 mil downloads do Rustdecimal 1.23.1 e 113 mil do Rust_decimal 1.23.1 original) . Ao mesmo tempo, a maioria dos downloads era de um clone inofensivo que não continha código malicioso. As alterações maliciosas foram adicionadas em 25 de março na versão ferrugemdecimal 1.23.5, que foi baixada cerca de 500 vezes antes que o problema fosse identificado e o pacote fosse bloqueado (presume-se que a maioria dos downloads da versão maliciosa foram feitos por bots) e não foi utilizado como dependência de outros pacotes presentes no repositório (é possível que o pacote malicioso fosse uma dependência das aplicações finais).

As mudanças maliciosas consistiram na adição de uma nova função, Decimal::new, cuja implementação continha código ofuscado para download de um servidor externo e lançamento de um arquivo executável. Ao chamar a função, a variável de ambiente GITLAB_CI foi verificada e, se definida, o arquivo /tmp/git-updater.bin foi baixado do servidor externo. O manipulador malicioso para download suportava o trabalho em Linux e macOS (a plataforma Windows não era compatível).

Foi assumido que a função maliciosa seria executada durante os testes em sistemas de integração contínua. Após bloquear o Rustdecimal, os administradores do crates.io analisaram o conteúdo do repositório em busca de inserções maliciosas semelhantes, mas não identificaram problemas em outros pacotes. Proprietários de sistemas de integração contínua baseados na plataforma GitLab são aconselhados a garantir que os projetos testados em seus servidores não utilizem o pacote rustdecimal em suas dependências.

Fonte: opennet.ru

Adicionar um comentário