infostealer-malware-threadfluent-offuscamento-codice

Analisi di un pacchetto malware Infostealer multi-fase

Il pacchetto Python fluente, scoperto su PyPI, è stato identificato come maligno, contenente un malware infostealer convenzionale. Tuttavia, la sua caratteristica distintiva è l'uso di tecniche avanzate di offuscamento del codice che oscurano il suo payload, rendendo l'analisi particolarmente impegnativa. Questo malware utilizza tre livelli di offuscamento in modo iterativo lungo la sua catena di attacco, creando ostacoli significativi per la decostruzione manuale.

Il nostro team Malware Early Warning ha segnalato il pacchetto al team di sicurezza PyPI, che lo ha rapidamente rimosso. In questo articolo spieghiamo le fasi di fluentee i metodi utilizzati per nascondere il suo scopo, concentrandosi su come il malware infostealer e l'offuscamento del codice lavorano insieme.

Cheat Sheet: Malware Infostealer e offuscamento del codice

Che cos'è il malware Infostealer?

Il malware Infostealer agisce come un ladro furtivo nel tuo mondo digitale. Cattura silenziosamente informazioni sensibili, come password, numeri di carte di credito o dati personali, senza che tu te ne accorga. Questi programmi registrano ciò che digiti (keylogging), dirottano il tuo browser o scansionano file sul tuo dispositivo per raccogliere dati preziosi. La parte più spaventosa? Sono eccellenti nel rimanere sotto il radar.

Livelli di offuscamento del malware ThreadFluent Infostealer

1. Tripla crittografia

Il processo di offuscamento inizia con un payload fortemente crittografato incorporato nel fluente.py file. Il processo iniziale di codifica e decifratura può essere riassunto come segue:

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)) ) 

Questo processo di offuscamento comporta:

  • Compressione: Utilizzo di gzip e bzip.
  • Crittografia simmetrica: Crittografia concatenata con ChaCha20, Blowfish e AES.
  • Crittografia asimmetrica: RSA utilizzato per crittografare le chiavi simmetriche.

Il risultato viene codificato in Base64 e inserito come dati_codificatiOgni iterazione si basa sulla precedente, creando una struttura di crittografia nidificata che rende eccezionalmente difficile scoprire il payload effettivo senza reverse engineering.

 

2. Decompressione Gzip

In molti passaggi intermedi, il malware impiega un metodo di offuscamento semplice ma efficace: la compressione Gzip combinata con la codifica Base64. 

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

Questa tecnica garantisce che il payload offuscato rimanga nascosto durante tutte le fasi.

3. Concatenazione del codice e compilazione dinamica

Lo strato finale prevede la suddivisione del payload offuscato su più variabili, che vengono concatenate e decodificate dinamicamente durante l'esecuzione:

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')) 

Questa fase è particolarmente macchinosa da sottoporre a reverse engineering manuale, poiché ogni variabile deve essere decodificata e ricombinata per rivelare il payload successivo.

Combinando queste tecniche di offuscamento, il malware informatico in fluente elude il rilevamento, evidenziando il ruolo critico di Offuscamento del codice negli attacchi informatici moderni.

La catena di attacco multi-fase di ThreadFluent

Migliori fluente malware informatico comprende quattro fasi distinte, ciascuna delle quali introduce ulteriori livelli di Offuscamento del codiceQueste fasi servono non solo a consegnare il carico utile, ma anche a proteggerlo dal rilevamento e dall'analisi.

infostealer-malware-offuscamento-codice-threadfluent

Fase 0: Esecuzione iniziale del codice

Il punto di ingresso è il __init__.py file, che avvia l'esecuzione del payload offuscato in fluente.pyQuesto file utilizza l'offuscamento multistrato (come descritto nei passaggi 1–3) per produrre il contagocce di Fase 1:

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

Fase 1: contagocce iniziale

Il primo dropper, una volta deoffuscato, scarica e incorpora codice dannoso aggiuntivo, mette.py, da un repository GitHub Gambe-rosse-1337/repuests (attenzione: potrebbe contenere codice dannoso). 

Il contagocce si incastra mette.py nell'installazione locale del popolare richieste biblioteca, modificandone la __init__.py file per eseguire la deoffuscazione ed eseguire la fase successiva. Questa deoffuscazione consiste nell'invertire molte applicazioni degli strati di offuscamento 1 … 3.

Fase 2: Secondo contagocce

Il secondo dropper, una volta deoffuscato seguendo lo stesso processo, scarica un altro payload, ssl.py dal repository GitHub, lo rinomina come udp.py, e genera un file di blocco per garantire che il malware non si reinstalli ripetutamente. Quindi viene eseguito per deoffuscarlo, con conseguente esecuzione del payload infostealer finale.

Fase 3: Infostealer finale

La fase finale è un infostealer completamente funzionante che impiega tecniche di evasione avanzate:

  • Funzionalità anti-analisi:
    • Rileva gli strumenti antimalware e termina se vengono rilevati processi, IP, nomi host o ambienti virtuali nella blacklist.
  • Esfiltrazione di dati:
    • Cattura informazioni esaustive. Che vanno da IP, indirizzo Mac, dati VPN, cookie/cronologia del browser, dati della carta di credito e credenziali del portafoglio crittografico, tra gli altri, incluso uno screenshot.
    • Invia dati rubati (criptati) tramite un canale Telegram, utilizzando il modello mostrato qui: 
infostealer-malware-offuscamento-codice-threadfluent

Strategia di deoffuscamento

Per analizzare pacchetti simili, i ricercatori devono invertire sistematicamente i suoi livelli di offuscamento:

  • Emulare i passaggi di offuscamento: Scrivere script per simulare le trasformazioni (ad esempio decrittazione, decompressione) senza eseguire il payload.
  • Livelli di crittografia inversa: Estrarre e decifrare il payload utilizzando le chiavi e gli algoritmi incorporati.
  • Analisi iterativa: Elaborare ogni fase intermedia in modo iterativo per ricostruire il carico utile finale.

Per semplificare questa analisi sono essenziali strumenti automatizzati e ambienti sandbox.

 

Vuoi saperne di più su come prevenire le minacce in tempo reale?

Scarica il nostro whitepaper "Early Warning: rilevamento e definizione delle priorità delle minacce in tempo reale" e scopri come proteggere la tua supply chain software.

L'attore della minaccia

A quanto pare il pacchetto è stato pubblicato da due account PyPI, ABIRROSSAIN10 and anomilano785, attualmente rimosso. 

Esiste un account GitHub (attualmente attivo) denominato ABIRROSSAIN10, che potrebbe essere correlato alla campagna. Il Gambe-rosse-1337 Anche l'utente GitHub proprietario del repository utilizzato per scaricare i payload delle fasi 2 e 3 è sotto analisi.

Sebbene l'attribuzione sia sempre complicata e l'appartenenza a un red team sia una possibilità, il tipo e il volume di informazioni esfiltrate lasciano intendere l'esistenza di un malintenzionato.

Conclusione: il ruolo dell'offuscamento del codice nell'evoluzione del malware

Migliori fluente package esemplifica l'offuscamento del malware moderno nella sua distribuzione multi-fase. Insieme alle tecniche di evasione impiegate, questo pacchetto dimostra un chiaro sforzo per eludere il rilevamento e resistere all'analisi.

Questa analisi sottolinea l'importanza degli sforzi collaborativi e degli strumenti automatizzati nella lotta a tali minacce. Analizzando e comprendendo questi metodi, i professionisti della sicurezza possono sviluppare difese migliori contro malware simili in futuro.

Come il sistema MEW di Xygeni ha impedito al pacchetto threadfluent dannoso di raggiungere la produzione

Quello di Xygeni Allerta precoce sul malware (MEW) il sistema è stato determinante nel fermare il fluente Pacchetto Python, una dipendenza dannosa contenente funzionalità avanzate offuscamento del codice e un multi-stadio malware informatico, prima che potesse compromettere gli ambienti di produzione. Ecco come:

  • Rilevamento tramite analisi statica
    MEW avvistato fluenteil codice nascosto, individuando segnali sospetti come crittografia a strati e attività di dipendenza insolite.
  • Valutazione della raggiungibilità in fase di esecuzione
     Il sistema ha scoperto che il codice del pacchetto poteva essere eseguito durante l'uso, contrassegnandolo come una minaccia seria senza effettivamente eseguirlo.
  • CI/CD Pipeline Marchio
    MEW bloccato fluente in tempo reale, ne ha impedito l'inclusione nelle build e impedito che raggiungesse la produzione. Ha inviato agli sviluppatori avvisi attuabili, risparmiando tempo prezioso.
  • Condivisione dell'intelligence sulle minacce
    Xygeni ha segnalato rapidamente il pacchetto a PyPI e ha condiviso le sue scoperte con la sua rete di sicurezza globale, impedendone l'ulteriore diffusione.

catturando fluente all'inizio, il sistema MEW di Xygeni ha fatto in modo che il codice dannoso non danneggiasse le catene di fornitura del software o CI/CD flussi di lavoro.

Proteggi il tuo CI/CD Pipelines gratis

Prevenire minacce come fluente con il sistema Malware Early Warning di Xygeni. Inizia il tuo prova gratuita oggi stesso e metti in sicurezza la tua supply chain software.

Immagine di Luis Rodríguez

Luis Rodriguez

Luis Rodriguez è un fisicocist + matematico e CISSP. Attualmente co-fondatore e CTO di Xygeni Security. Ha oltre 20 anni di esperienza nella sicurezza software e ha partecipato a progetti come SAST and SCAAttualmente si concentra su software supply chain security.

Immagine di Daniel Martín

Daniel Martin

Daniel Martín è un esperto di sicurezza informatica e membro del team di sicurezza della ricerca Xygeni, specializzato in SDLC sicurezza e mitigazione delle vulnerabilità delle applicazioni.

sca-tools-software-strumenti-di-analisi-della-composizione
Dai priorità, risolvi e proteggi i rischi del tuo software
Crea il tuo account gratuito.
Nessuna carta di credito richiesta.

Proteggi lo sviluppo e la consegna del tuo software

con la suite di prodotti Xygeni