Pacotes PyPI maliciosos usando código Python compilado para burlar a detecção
2 de Junho de 2023

Pesquisadores descobriram um novo ataque no repositório do Python Package Index (PyPI) que utiliza código Python compilado para contornar a detecção de ferramentas de segurança de aplicativos.

"Pode ser o primeiro ataque de cadeia de suprimentos a aproveitar o fato de que os arquivos de bytecode Python (PYC) podem ser executados diretamente", disse o analista da ReversingLabs, Karlo Zanki, em um relatório compartilhado com o The Hacker News.

O pacote em questão é o fshec2, que foi removido do registro de software de terceiros em 17 de abril de 2023, após divulgação responsável no mesmo dia.

Os arquivos PYC são arquivos de bytecode compilados que são gerados pelo interpretador Python quando um programa Python é executado.

Quando um módulo é importado pela primeira vez (ou quando o arquivo de origem foi alterado desde que o arquivo compilado atual foi criado), um arquivo .pyc contendo o código compilado deve ser criado em um subdiretório __pycache__ do diretório que contém o arquivo .py, explica a documentação do Python.

O pacote, segundo a empresa de segurança da cadeia de suprimentos de software, contém três arquivos - _init_.py, main.py e full.pyc - este último contém funcionalidade maliciosa.

"O ponto de entrada do pacote foi encontrado no arquivo __init__.py, que importa uma função do outro arquivo de texto simples, main.py, que contém código-fonte Python responsável pelo carregamento do módulo compilado Python localizado em um dos outros arquivos, full.pyc", apontou Zanki.

Isso, por sua vez, é alcançado usando o pacote importlib (em vez de uma importação regular) para carregar e executar o código presente no arquivo .pyc.

Uma análise da versão de engenharia reversa do arquivo PYC revela que ele está configurado para coletar nomes de usuário, nomes de host e listas de diretórios, além de buscar comandos a serem executados no host de um servidor codificado (13.51.44[.]246).

A ReversingLabs disse que também observou o módulo baixar e executar outro script Python que é responsável por buscar novos comandos colocados dentro de um arquivo que pode ser ajustado à vontade pelo ator da ameaça para emitir diferentes instruções.

Uma análise adicional do servidor de comando e controle descobriu uma configuração incorreta que tornou possível baixar arquivos por ID, que são numerados em ordem sequencial (a partir de 1), sem autorização.

Isso indica que o ataque provavelmente não foi orquestrado por um ator sofisticado.

O desenvolvimento é uma continuação dos esforços por parte de atores de ameaças para adotar diferentes técnicas de ofuscação a fim de evitar a detecção de soluções de segurança.

"Scripts de carregador como os descobertos no pacote fshec2 contêm uma quantidade mínima de código Python e realizam uma ação simples: carregamento de um módulo Python compilado", disse Zanki.

"Acontece que é apenas um módulo malicioso."

Publicidade

Aprenda hacking e pentest na prática com esse curso gratuito

Passe por todas as principais fases de um pentest, utilizando cenários, domínios e técnicas reais utilizados no dia a dia de um hacker ético. Conte ainda com certificado e suporte, tudo 100% gratuito. Saiba mais...