Pesquisadores de segurança cibernética identificaram um pacote Python malicioso que se passa por um desdobramento da popular biblioteca requests e foi encontrado escondendo uma versão em Golang do framework de controle de comando (C2) Sliver dentro de uma imagem PNG do logotipo do projeto. O pacote que utiliza esse truque esteganográfico é o requests-darwin-lite, que foi baixado 417 vezes antes de ser retirado do registro PyPI. O requests-darwin-lite “parecia ser um fork do sempre popular pacote requests com algumas diferenças-chave, especialmente a inclusão de um binário Go malicioso embutido em uma versão ampliada do logotipo PNG da barra lateral real do requests”, afirmou a empresa de segurança de cadeia de suprimentos de software Phylum. As mudanças foram introduzidas no arquivo setup.py do pacote, configurado para decodificar e executar um comando codificado em Base64 para reunir o Identificador Único Universal do sistema, mas apenas após confirmar que o host comprometido está executando o Apple macOS. A descoberta também vem pouco mais de um mês depois que a empresa descobriu um pacote npm malicioso chamado vue2util, que se passa por uma utilidade auxiliar, mas é projetado para executar um esquema de criptoextração e roubar os tokens USDT de uma vítima. O pacote “explora o mecanismo de aprovação de contrato ERC20 (USDT), concedendo secretamente aprovação ilimitada ao endereço do contrato do atacante, permitindo efetivamente que o atacante drenasse os tokens USDT da vítima”, observou a Phylum. Em um interessante lance, a cadeia de infecção continua apenas se o identificador corresponder a um valor específico, o que significa que o(s) autor(es) por trás do pacote está procurando violar uma máquina específica da qual já possuem o identificador obtido por outros meios. Isso levanta duas possibilidades: Ou é um ataque altamente direcionado ou é algum tipo de processo de teste antes de uma campanha mais ampla. Caso o UUID corresponda, o requests-darwin-lite continua a ler dados de um arquivo PNG chamado “requests-sidebar-large.png”, que apresenta semelhanças com o pacote requests legítimo que vem com um arquivo semelhante chamado “requests-sidebar.png”. A diferença aqui é que, enquanto o logotipo real embutido no requests tem um tamanho de arquivo de 300 kB, o contido no requests-darwin-lite tem cerca de 17 MB. Os dados binários escondidos na imagem PNG é o Sliver baseado em Golang, um framework C2 de código aberto projetado para ser usado por profissionais de segurança em suas operações de equipe vermelha. O objetivo final exato do pacote ainda não está claro, mas o desenvolvimento é mais um sinal de que ecossistemas de código aberto continuam a ser um vetor atraente para distribuir malwares. Com a maioria esmagadora das bases de código dependendo de código aberto, a constante entrada de malwares no npm, no PyPI e em outros registros de pacotes, sem mencionar o recente episódio do XZ Utils, destacou a necessidade de abordar questões de forma sistemática que, de outra forma, podem “descarrilar grandes partes da web”.