Detectados pacotes maliciosos em PyPI contendo técnicas de phishing

Views: 252
0 0
Read Time:6 Minute, 6 Second

Os usuários que instalaram os pacotes de contas foram expostos a um atacante e provavelmente a um PII stealer.

Foto: Canva

Os pesquisadores da Check Point® Software Technologies Ltd. (NASDAQ: CHKP), uma fornecedora líder de soluções de cibersegurança global, detectaram uma conta de phishing maliciosa no PyPI (Python Package Index), repositório de software oficial de terceiros para Python. Os pacotes maliciosos detectados pelos especialistas demonstram como o phishing é outra ferramenta em uso pelos criminosos para esconder a sua intenção. Embora fingindo ser auxiliares relacionados ao async-io, esses pacotes acabaram sendo agentes maliciosos; baixando e executando de maneira oculta código ofuscado como parte de seu processo de instalação. Os especialistas da Check Point Software divulgaram a conta à PyPI e, pouco depois, os pacotes mencionados foram removidos pela equipe da PyPI.

O 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 compartilhar pacotes Python de código aberto com outros. O PyPI é operado pela Python Software Foundation (PSF), e é acessível por meio do programa de instalação de pacotes com ferramenta PIP, que está incluída na maioria das instalações Python.

Os usuários podem procurar pacotes pelo nome ou por uma senha, e podem baixar e instalar pacotes com um único comando. O PyPI acolhe milhares de pacotes Python de código aberto, desde bibliotecas para computação científica e análise de dados, a estruturas para desenvolvimento web e machine learning (ML). Qualquer pessoa pode fazer upload de um pacote para o PyPI, desde que atenda a certos requisitos e diretrizes definidas pelo PSF. Muitas estruturas e ferramentas Python populares, tais como Django, Flask e Pandas, estão disponíveis no PyPI com uma vasta gama de outros pacotes para vários fins, tornando-o um recurso crítico para os desenvolvedores no ecossistema Python.

É importante notar que os atacantes não estão de braços cruzados, pois vemos continuamente novas técnicas e estratégias com as quais eles tentam esconder a sua intenção maliciosa (de utilizar a esteganografia, em direção aos cryptojackers que se apropriam do sistema instalador para extrair a criptomoeda para seu lucro), uma vez que o pacote malicioso em PyPI usa técnicas de phishing.

Os ataques em detalhe

O primeiro pacote avaliado e que chamou a atenção dos pesquisadores da Check Point Software foi o aiotoolsbox; embora parecendo benigno à primeira vista, acabou por ser uma réplica exata do pacote legítimo do aiotools. Enquanto a tipografia (utilizando nomes de pacotes que se assemelham aos benignos populares para enganar os usuários na instalação dos maliciosos) é um ataque bastante comum ao mundo da cadeia de suprimentos, a cópia de identidade do pacote benigno é uma prática menos comum (para a maioria dos casos imitar o nome do pacote é apenas o suficiente), e é de um modo geral aquilo a que assistimos no mundo do phishing. Tal esforço pode indicar uma campanha mais sofisticada, tendo em conta que os responsáveis pela instalação podem ter uma segunda visão dos pacotes que estão prestes a instalar (curiosamente, uma campanha maliciosa semelhante foi previamente identificada pelos modelos de machine learning desses especialistas).

Análise dos metadados dos pacotes: ambos compartilham o mesmo autor enquanto têm um administrador diferente. Baseando-se no fato de que, de acordo com o protocolo de publicação de pacotes PyPI, os campos de autor são texto livre enquanto o administrador é um usuário autenticado, o atacante poderia facilmente imitar o campo de autor, enquanto para os campos do administrador eles precisam confiar em outra coisa.

De acordo com os detalhes do administrador da aiotoolsbox, eles são contribuintes do PyPI desde 2019. Dado o fato de que os únicos dois pacotes que eles têm foram publicados recentemente, é justo supor que essa conta foi violada recentemente. Quanto ao código de configuração da aiotoolsbox, este inclui um estranho fragmento que, como parte do processo de instalação, baixa um zip da web, extrai, executa e, por fim, apaga o seu conteúdo.

O primeiro ponto interessante aqui é o fato de o zip ser baixado de um servidor que é suposto ser “files[.]pythonhosted[.]org” . Isto acaba por ser a segunda camada de phishing do ataque, enquanto o servidor tenta se esconder como o site oficial de alojamento de pacotes PyPI.

Outro ponto interessante é que o nome do arquivo baixado corresponde à versão Python em uso, também conhecido por Python 3.9, que receberá um zip chamado 39[.]zip . Isto parece ser outro nível de phishing, fazendo o usuário comum assumir que se trata de algo legítimo que está vendo, provavelmente algum tipo de fluxo interno PIP.

Ao observar o zip baixado, ele incluía um código ofuscado do pyArmor que dificulta a compreensão de sua intenção maliciosa. No entanto, olhando para os nomes dos arquivos baixados, é justo assumir que o pacote é para roubo de identidade pessoal (um Personally Identifiable Information – PII stealer), com a intenção de coletar e roubar os segredos do instalador. Dado o fato de este zip ter sido baixado de forma oculta durante o processo de instalação, pode-se concluir que este não é um caso benigno.

No que se refere à estrutura do pacote aiotoolsbox, além do referido setup[.]py, o resto dos arquivos parece ter sido retirado do pacote benigno aiotools, fazendo com que o usuário comum obtenha as funcionalidades de base que procurava, sem saber que acabou de instalar um pacote malicioso.

Ao pesquisar as versões anteriores do aiotoolsbox, foi possível notar que ele foi carregado algumas vezes com versões diferentes (primeiro 1.4.7 e só depois 1.4.5 e 1.4.6). Na verificação da diferença entre essas versões, vê-se que tinham a mesma estrutura e a única diferença estava no arquivo setup[.]py, mais especificamente no IP do servidor que utilizam. Ao ver os detalhes do IP, a versão inicial era um IP russo, enquanto a última era da Alemanha. Provavelmente outro nível de ocultação, assumindo que um IP russo será mais alarmante que um alemão.

Finalmente, ao examinar a conta de outro pacote – async-proxy -, no seu setup[.]py menciona aiotoolsbox como o seu único requisito, fazendo com que qualquer pessoa que o instale coloque também a maliciosa aiotoolsbox.

Detecção dos pacotes maliciosos

Os especialistas da Check Point Software realizaram a detecção da conta de phishing maliciosa no PyPI (Python Package Index) por meio da CloudGuard Spectral*, plataforma de segurança da empresa centrada no desenvolvimento de códigos, usando também seus modelos de machine learning.

Com os ataques à cadeia de suprimentos cada vez mais frequentes, é essencial ter uma proteção verificando todos os elementos de software que se utiliza, especialmente aqueles que não são desenvolvidos pelo próprio usuário. A Check Point Software visa construir um processo de desenvolvimento seguro, equipando os desenvolvedores com as ferramentas certas para isso. Para combater pacotes maliciosos que levam a riscos na cadeia de suprimentos, seus pesquisadores estão monitorando atentamente o PyPI e o NPM em busca de entidades maliciosas.

As ferramentas automatizadas da plataforma CloudGuard Spectral se integram às ferramentas dos desenvolvedores para detectar vulnerabilidades de código e identificar segredos e configurações incorretas no código antes da implantação, evitando o uso não autorizado para fins nocivos. Com esta plataforma, as organizações podem impedir a exposição de chaves de API, tokens e credenciais, além de corrigir configurações incorretas de segurança.

FONTE: IT SECTION

POSTS RELACIONADOS