banner
Lar / Notícias / VMConnect: Pacotes PyPI maliciosos imitam módulos populares de código aberto
Notícias

VMConnect: Pacotes PyPI maliciosos imitam módulos populares de código aberto

Jul 28, 2023Jul 28, 2023

Início » Calendário Editorial » Segurança da cadeia de suprimentos de software » VMConnect: pacotes PyPI maliciosos imitam módulos populares de código aberto

ReversingLabs identificou vários pacotes Python maliciosos no repositório de código aberto Python Package Index (PyPI). Ao todo, os pesquisadores do ReversingLabs descobriram 24 pacotes maliciosos que imitam três ferramentas Python de código aberto populares: vConnector, um módulo wrapper para ligações pyVmomi VMware vSphere; bem como o eth-tester, uma coleção de ferramentas para testar aplicativos baseados em ethereum; e bancos de dados,uma ferramenta que oferece suporte assíncrono para uma variedade de bancos de dados.

Com base nas observações da equipe de pesquisa, a campanha começou por volta de 28 de julho de 2023, quando o primeiro dos pacotes maliciosos foi publicado. Isso continua até os dias atuais, com novos pacotes PyPI maliciosos postados diariamente, à medida que pacotes anteriores são detectados e removidos.

Em contraste com outras campanhas recentes da cadeia de abastecimento, como a Operação Brainleeches, os pacotes maliciosos que compõem esta campanha mostram evidências de um esforço concertado para enganar os desenvolvedores. Eles conseguem isso implementando toda a funcionalidade dos módulos que estão imitando e levantando projetos GitHub correspondentes e vinculados que omitem a funcionalidade maliciosa encontrada no pacote de lançamento do PyPI.

Esta não é a primeira vez que observamos tal comportamento. Em junho de 2022, por exemplo, descobrimos um pacote malicioso npm, o Maintenancewebsite, que usava uma abordagem semelhante para ocultar recursos de criptomineração. A campanha VMConnect é o exemplo mais recente de módulos de código aberto usados ​​para propagar código malicioso e mais uma evidência de que as avaliações de segurança de repositórios de código aberto podem não perceber esses ataques diferenciados.

A equipe de pesquisa do ReversingLabs monitora continuamente os repositórios de pacotes de código aberto em busca de casos de adulteração de código malicioso, implantação de pacotes ou dependências maliciosas e outras formas de ataques à cadeia de suprimentos de software. Este trabalho envolve varredura e análise automatizada e conduzida por humanos de pacotes publicados nos repositórios de pacotes públicos mais populares, como npm, PyPI, Ruby e NuGet.

Historicamente, a grande maioria das campanhas maliciosas da cadeia de suprimentos que identificamos foi encontrada no repositório de código aberto npm, que abriga a maior parte dos projetos e desenvolvedores de código aberto. No entanto, nos últimos meses, outras plataformas, em particular o Python Package Index (PyPI), registaram um aumento de atividades maliciosas. Em fevereiro, por exemplo, os pesquisadores do ReversingLabs descobriram 41 pacotes PyPI maliciosos se passando por bibliotecas HTTP, alguns deles imitando bibliotecas populares e amplamente utilizadas. Em março, encontramos um pacote PyPI malicioso chamado termcolour, um downloader de três estágios publicado em várias versões que cooptou o nome de um pacote PyPI extinto. Então, em maio, o PyPI parou brevemente de aceitar novos envios depois de ser sobrecarregado com envios maliciosos.

Os pesquisadores de ameaças do ReversingLabs identificaram uma nova campanha PyPI maliciosa que inclui um pacote VMConnect suspeito publicado no repositório PyPI.

Este pacote foi declarado suspeito durante a verificação de rotina da ReversingLabs Titanium Platform, um poderoso mecanismo de análise estática capaz de extrair vários tipos de metadados de uma ampla variedade de formatos de arquivo.

Além dos diversos tipos de metadados, a Plataforma ReversingLabs Titanium também é capaz de extrair indicadores de comportamento, facilitando a compreensão das capacidades funcionais de um arquivo. E foi esse recurso que chamou nossa atenção para o arquivo _init_.py no VMConnect. O código dentro do arquivo __init__.py do VMConnect é capaz de criar um processo, decodificar dados usando o algoritmo Base64 e converter dados binários em sua representação de string – um comportamento comumente usado em ofuscação. Essa combinação de comportamentos foi o que desencadeou a detecção inicial e motivou uma investigação mais aprofundada.

Figura 1: Indicadores de comportamento extraídos do pacote VMConnect.