Threats

Descobertos pacotes maliciosos no repositório oficial do Python

O primeiro pacote descoberto no Pypil (Python Package Index) foi o aiotoolsbox, que acabou por ser uma réplica exata do pacote legítimo do aiotools

27/03/2023

Descobertos pacotes maliciosos no repositório oficial do Python

Foi descoberta uma conta de phishing maliciosa no PyPI (Python Package Index), o repositório oficial de pacotes de software para a linguagem de programação Python, onde os programadores podem encontrar, instalar, e partilhar pacotes Python de código aberto com outros. Foi detetado pela CloudGuard Spectralops, plataforma de segurança centrada no desenvolvimento de código da Check Point Software Technologies.

O PyPI é operado pela Python Software Foundation e é acessível através do programa de instalação de pacotes pip, que está incluído na maioria das instalações Python. Os utilizadores podem procurar pacotes pelo nome ou por uma palavra-chave, e podem descarregar e instalar pacotes com um único comando.

O primeiro pacote que chamou à atenção foi o aiotoolsbox, que, embora parecendo benigno à primeira vista, acabou por ser uma réplica exata do pacote legítimo do aiotools. Os especialistas indicam que enquanto a tipografia – utilizando nomes de pacotes que se assemelham aos benignos populares para enganar os utilizadores na instalação dos maliciosos – é um ataque bastante comum na cadeia de valor, a cópia de identidade do pacote benigno é uma prática menos comum, uma vez que para a maioria dos casos imitar o nome do pacote é suficiente, e o mais generalizado no mundo do phishing. Assim, o esforço pode indicar uma campanha mais sofisticada, dizem as conclusões dos especialistas.

Ao olhar para a metadata dos pacotes, os investigadores concluíram que ambos partilham o mesmo autor, mas possuem um administrador diferente. Confiando no facto que, de acordo com o protocolo de publicação de pacotes PyPI, os campos de autor serem texto livre enquanto o administrador é um utilizador autenticado, o atacante poderia facilmente imitar o campo de autor enquanto para os campos do administrador precisavam de depender de outra coisa.

De acordo com os detalhes do administrador da aiotoolsbox, são contribuintes do PyPI desde 2019. O código de configuração da aiotoolsbox inclui um estranho fragmento que, como parte do processo de instalação, descarrega um zip da web, extrai, executa e por fim apaga o seu conteúdo. Um ponto relevante é o zip estar a ser descarregado de um servidor que é suposto ser 'files.pythonhosted.org'. Isto acaba por ser a segunda camada de phishing do ataque, enquanto o servidor tenta esconder-se como o site oficial de alojamento de pacotes PyPI.

Outro ponto é que o nome do ficheiro descarregado corresponde à versão python em utilzação, também conhecido por python 3.9, que receberá um zip chamado 39.zip. Isto parece ser outro nível de phishing, fazendo o utilizador comum assumir que se trata de algo legítimo que está a ver, provavelmente algum tipo de fluxo interno pip.

Olhando para o zip descarregado, incluía um código pyArmor oculto, o que torna difícil compreender a sua intenção maliciosa. No entanto, olhando para os nomes dos ficheiros descarregados, os investigadores assumem que o pacote é um ladrão de PII, com a intenção de recolher e roubar os segredos do instalador. Dado que este zip foi descarregado de forma oculta durante o processo de instalação, a Check Point conclui que não é um caso benigno.

Olhando para a estrutura do pacote aiotoolsbox; além do referido setup.py, o resto dos ficheiros parecem ter sido retirados do pacote benigno aiotools, fazendo com que o utilizador comum obtenha as funcionalidades de base que procurava, sem saber que acabou de instalar um pacote malicioso.

Procurando por versões anteriores da aiotoolsbox, podemos notar que foi carregada algumas vezes com versões diferentes (primeiro 1.4.7 e só depois 1.4.5 e 1.4.6). Olhando para a diferença entre essas versões, verifica-se que tinham a mesma estrutura, e a única diferença estava no ficheiro setup.py, mais especificamente no IP do servidor que utilizam. Verificando os detalhes do IP, a versão inicial era um IP russo, enquanto a última era da Alemanha.

Finalmente, examinando a conta de outro pacote async-proxy, na sua setup.py, menciona aiotoolsbox como o seu único requisito, fazendo com que qualquer pessoa que a instale, instale também a maliciosa aiotoolsbox.


NOTÍCIAS RELACIONADAS

RECOMENDADO PELOS LEITORES

REVISTA DIGITAL

IT SECURITY Nº17 Abril 2024

IT SECURITY Nº17 Abril 2024

NEWSLETTER

Receba todas as novidades na sua caixa de correio!

O nosso website usa cookies para garantir uma melhor experiência de utilização.