infostealer-malware-threadfluent-código-ofuscação

Dissecando um pacote de malware Infostealer de vários estágios

O pacote Python Fluente em fios, descoberto no PyPI, foi identificado como malicioso, contendo um malware infostealer convencional. No entanto, sua característica definidora é o uso de técnicas avançadas de ofuscação de código que obscurecem sua carga útil, tornando a análise particularmente desafiadora. Este malware utiliza três camadas de ofuscação iterativamente em sua cadeia de ataque, criando obstáculos significativos para a desconstrução manual.

Nossa equipe de Alerta Precoce de Malware relatou o pacote à equipe de segurança do PyPI, que o removeu rapidamente. Neste artigo, explicamos os estágios de Fluente em fiosO ataque do e os métodos que ele usa para esconder seu propósito, com foco em como o malware infostealer e a ofuscação de código trabalham juntos.

Folha de dicas: Malware Infostealer e ofuscação de código

O que é o malware Infostealer?

O malware Infostealer age como um ladrão furtivo no seu mundo digital. Ele pega silenciosamente informações confidenciais, como suas senhas, números de cartão de crédito ou detalhes pessoais, sem que você perceba. Esses programas registram o que você digita (keylogging), sequestram seu navegador ou escaneiam arquivos no seu dispositivo para coletar dados valiosos. A parte mais assustadora? Eles são excelentes em ficar fora do radar.

Camadas de ofuscação do malware ThreadFluent Infostealer

1. Criptografia tripla

O processo de ofuscação começa com uma carga altamente criptografada incorporada no fluente.py arquivo. O processo inicial de codificação e descriptografia pode ser resumido da seguinte forma:

				
					encoded_data = base64_module.b64decode("... BASE-6 with encrypted payload, IV and RSA-encrypted keys…”);
# … Sequential decryption: ChaCha20, Blowfish and AES …
encrypted_payload = AES_Cipher.new(aes_key, AES_Cipher.MODE_CBC, iv=aes_iv).decrypt(encrypted_payload[16:])
final_payload = unpad_function(encrypted_payload, AES_Cipher.block_size)
exec( zlib_module.decompress(bz2_module.decompress(final_payload)) )

				
			

Este processo de ofuscação envolve:

  • Compressão: Usando gzip e bzip.
  • Criptografia simétrica: Criptografia encadeada com ChaCha20, Blowfish e AES.
  • Criptografia assimétrica: RSA usado para criptografar as chaves simétricas.

O resultado é codificado em Base64 e inserido como dados_codificados. Cada iteração se baseia na anterior, criando uma estrutura de criptografia aninhada que torna excepcionalmente difícil descobrir a carga real sem engenharia reversa.

 

2. Descompressão Gzip

Em muitas etapas intermediárias, o malware emprega um método de ofuscação simples, mas eficaz: compactação Gzip combinada com codificação Base64. 

				
					import base64, zlib; eval(zlib.decompress(base64.b64decode(<STR>).decode('utf-8'))

				
			

Essa técnica garante que a carga ofuscada permaneça oculta durante todos os estágios.

3. Concatenação de código e compilação dinâmica

A camada final envolve dividir a carga ofuscada em múltiplas variáveis, que são concatenadas e decodificadas dinamicamente durante a execução:

				
					import base64, zlib

FEQXCBDOZKHVIhT = '...'
# ....(111 other variables with base-64 encoded values) ...

zZytWuvuEdBXSrO =
  eval(<FEQXCBDOZKHVIhT' encoded with '\x>) +
  eval(<next variable, encoded>) +
  eval( ' zlib.decompress(base64.b64decode(<VAR>)).decode('utf-8') ') + ...

eval(compile(base64.b64decode(eval(zZytWuvuEdBXSrO)).decode('utf-8'), ‘<app>', 'exec'))

				
			

Esta etapa é particularmente difícil de ser feita manualmente por meio de engenharia reversa, pois cada variável deve ser decodificada e recombinada para revelar a próxima carga útil.

Ao combinar essas técnicas de ofuscação, o malware infostealer in Fluente em fios evita a detecção, demonstrando o papel crítico da Ofuscação de código em ataques cibernéticos modernos.

A cadeia de ataque multiestágio do ThreadFluent

O Fluente em fios malware infostealer compreende quatro fases distintas, cada uma introduzindo camadas adicionais de Ofuscação de código. Esses estágios servem não apenas para entregar a carga, mas também para protegê-la contra detecção e análise.

infostealer-malware-código-ofuscação-threadfluent

Estágio 0: Execução inicial do código

O ponto de entrada é o __init__.py arquivo, que inicia a execução da carga ofuscada em fluente.py. Este arquivo usa ofuscação multicamadas (conforme descrito nas etapas 1–3) para produzir o conta-gotas do Estágio 1:

				
					import os,threading
def main():
    if os.name == 'nt':
        from . import fluent
        fluent.main()
        
thread = threading.Thread(target=main , daemon=True)
thread.start()

				
			

Estágio 1: Conta-gotas inicial

O primeiro dropper, uma vez desofuscado, baixa e incorpora código malicioso adicional, coloca.py, de um repositório GitHub Red-haired-shanks-1337/repuests (aviso: possível código malicioso aqui). 

O conta-gotas incorpora coloca.py na instalação local do popular pedidos biblioteca, modificando sua __init__.py arquivo para executar a desofuscação e executar o próximo estágio. Essa desofuscação consiste em reverter muitas aplicações das camadas de ofuscação 1 … 3.

Estágio 2: Segundo conta-gotas

O segundo conta-gotas, uma vez desofuscado seguindo o mesmo processo, baixa outra carga útil, ssl.py do repositório GitHub, renomeia-o como udp.py, e gera um lockfile para garantir que o malware não seja reinstalado repetidamente. Então ele é executado para desofuscá-lo, resultando na execução do payload final do infostealer.

Estágio 3: Infostealer final

O estágio final é um infostealer totalmente funcional que emprega técnicas avançadas de evasão:

  • Características anti-análise:
    • Detecta ferramentas antimalware e encerra se quaisquer processos, IPs, nomes de host ou ambientes virtuais na lista negra forem detectados.
  • Exfiltração de dados:
    • Captura informações exaustivas. Variando de IP, endereço Mac, dados de VPN, cookies/histórico do navegador, dados de cartão de crédito e credenciais de carteira criptografada, entre outros, incluindo uma captura de tela.
    • Envia dados roubados (criptografados) por meio de um canal do Telegram, usando o modelo mostrado aqui: 
infostealer-malware-código-ofuscação-threadfluent

Estratégia de Desofuscação

Para analisar pacotes semelhantes, os pesquisadores devem reverter sistematicamente suas camadas de ofuscação:

  • Emular etapas de ofuscação: Escreva scripts para simular as transformações (por exemplo, descriptografia, descompactação) sem executar a carga útil.
  • Camadas de criptografia reversa: Extraia e descriptografe a carga útil usando as chaves e algoritmos incorporados.
  • Análise Iterativa: Processe cada estágio intermediário iterativamente para reconstruir a carga útil final.

Ferramentas automatizadas e ambientes de sandbox são essenciais para otimizar essa análise.

 

Quer saber mais sobre como se antecipar às ameaças em tempo real?

Baixe nosso whitepaper, 'Alerta antecipado: detecção e priorização de ameaças em tempo real', e descubra como proteger sua cadeia de suprimentos de software.

O Ator da Ameaça

Aparentemente o pacote foi publicado de duas contas PyPI, ABIRHOSSAIN10 e anomilano785, atualmente removido. 

Existe uma conta GitHub (atualmente ativa) chamada ABIRHOSSAIN10, que pode estar relacionado à campanha. O Pernas-de-cabelo-ruivo-1337 O usuário do GitHub que possui o repositório usado para baixar as cargas úteis dos estágios 2 e 3 também está sob análise.

Embora a atribuição seja sempre complicada e a participação em uma equipe vermelha seja uma possibilidade, o tipo e o volume de informações vazadas sugerem a presença de um agente malicioso.

Conclusão: O papel da ofuscação de código na evolução do malware

O Fluente em fios pacote exemplifica a ofuscação moderna de malware em sua entrega em vários estágios. Juntamente com as técnicas de evasão empregadas, este pacote demonstra um esforço claro para evitar a detecção e resistir à análise.

Esta análise ressalta a importância de esforços colaborativos e ferramentas automatizadas no combate a tais ameaças. Ao dissecar e entender esses métodos, os profissionais de segurança podem desenvolver melhores defesas contra malwares semelhantes no futuro.

Como o sistema MEW da Xygeni impediu que o pacote malicioso threadfluent chegasse à produção

Xygeni Alerta antecipado de malware (MEW) O sistema foi fundamental para interromper a Fluente em fios Pacote Python, uma dependência maliciosa contendo ofuscação de código e um multi-estágio malware infostealer, antes que pudesse comprometer ambientes de produção. Veja como:

  • Detecção por meio de análise estática
    MEW avistado Fluente em fioscódigo oculto, encontrando sinais suspeitos como criptografia em camadas e atividade de dependência incomum.
  • Avaliação de acessibilidade em tempo de execução
     O sistema descobriu que o código do pacote poderia ser executado durante o uso, marcando-o como uma ameaça séria sem realmente executá-lo.
  • CI/CD Pipeline pós-colheita
    MEW bloqueado Fluente em fios em tempo real, impediu que fosse incluído em builds e impediu que chegasse à produção. Enviou aos desenvolvedores alertas acionáveis, economizando tempo valioso.
  • Compartilhamento de inteligência contra ameaças
    A Xygeni rapidamente relatou o pacote ao PyPI e compartilhou suas descobertas com sua rede de segurança global, impedindo que ele se espalhasse ainda mais.

Pegando Fluente em fios no início, o sistema MEW da Xygeni garantiu que o código malicioso não prejudicasse as cadeias de fornecimento de software ou CI/CD workflows.

Proteja seu CI/CD Pipelines de graça

Prevenir ameaças como Fluente em fios com o sistema de alerta precoce de malware da Xygeni. Comece seu teste grátis hoje e proteja sua cadeia de suprimentos de software.

Imagem de Luis Rodríguez

Luis rodriguez

Luis Rodriguez é um físicocist + matemático e CISSP. Atualmente cofundador e CTO da Xygeni Security. Ele tem mais de 20 anos de experiência em segurança de software e participou de projetos como SAST e SCA. Atualmente ele se concentra em software supply chain security.

Imagem de Daniel Martín

Daniel Martin

Daniel Martín é especialista em segurança cibernética e membro da equipe de pesquisa de segurança da Xygeni, especializado em SDLC segurança e mitigação de vulnerabilidades de aplicativos.

sca-tools-software-composição-análise-ferramentas
Priorize, corrija e proteja seus riscos de software
Crie sua conta gratuita.
Nenhum cartão de crédito é necessário.

Garanta o desenvolvimento e a entrega do seu software.

com o Suíte de Produtos da Xygeni