El paquet Python fils fluents, descobert a PyPI, ha estat identificat com a maliciós, que conté un programari maliciós convencional de robatori d'informació. Tanmateix, la seva característica definidora és l'ús de tècniques avançades d'ofuscació de codi que oculten la seva càrrega útil, cosa que fa que l'anàlisi sigui particularment difícil. Aquest programari maliciós utilitza tres capes d'ofuscació de manera iterativa al llarg de la seva cadena d'atac, creant obstacles significatius per a la deconstrucció manual.
El nostre equip d'avís precoç de programari maliciós va informar del paquet a l'equip de seguretat de PyPI, que el va eliminar ràpidament. En aquest article, expliquem les etapes de fils fluentsL'atac de i els mètodes que utilitza per ocultar el seu propòsit, centrant-se en com funcionen conjuntament el programari maliciós d'infostealer i l'ofuscació de codi.
Full de trucs: programari maliciós d'infostealer i ofuscació de codi
Què és el programari maliciós Infostealer?
El programari maliciós Infostealer actua com un lladre furtiu al vostre món digital. Accepteu discretament informació confidencial, com ara les vostres contrasenyes, números de targeta de crèdit o dades personals, sense que us n'adoneu. Aquests programes registren el que escriviu (keylogging), segresten el vostre navegador o escanegen fitxers del vostre dispositiu per recopilar dades valuoses. La part més espantosa? Sobresurten a mantenir-se desapercebuts.
Què és l'ofuscació de codi?
L'ofuscació de codi és bàsicament l'art d'amagar les coses a plena vista, sovint utilitzada pels pirates informàtics per fer que el seu codi maliciós sigui més difícil de detectar o entendre. Imagineu-vos algú escrivint codi d'una manera deliberadament confusa, xifrant-ne parts o alterant-ne l'aspecte per despistar les eines antivirus o els investigadors. És una tàctica intel·ligent però frustrant que ajuda el programari maliciós a mantenir-se actiu durant més temps i evitar la detecció.
Capes d'ofuscació del programari maliciós ThreadFluent Infostealer
1. Triple xifratge
El procés d'ofuscació comença amb una càrrega útil fortament xifrada integrada al fluent.py fitxer. El procés inicial de codificació i desxifratge es pot resumir de la manera següent:
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)) ) Aquest procés d'ofuscació implica:
- CompressióÚs de gzip i bzip.
- Xifrat simètricXifratge encadenat amb ChaCha20, Blowfish i AES.
- Xifratge asimètric: RSA utilitzat per xifrar les claus simètriques.
El resultat es codifica en Base64 i s'insereix com a dades_codificadesCada iteració es basa en l'anterior, creant una estructura de xifratge imbricada que fa que sigui excepcionalment difícil descobrir la càrrega útil real sense enginyeria inversa.
2. Descompressió de Gzip
En molts passos intermedis, el programari maliciós utilitza un mètode d'ofuscació senzill però eficaç: la compressió Gzip combinada amb la codificació Base64.
import base64, zlib; eval(zlib.decompress(base64.b64decode(<STR>).decode('utf-8')) Aquesta tècnica garanteix que la càrrega útil ofuscada romangui oculta durant totes les etapes.
3. Concatenació de codi i compilació dinàmica
La capa final implica dividir la càrrega útil ofuscada en múltiples variables, que es concatenen i descodifican dinàmicament durant l'execució:
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')) Aquesta etapa és particularment feixuga de aplicar enginyeria inversa manualment, ja que cada variable s'ha de descodificar i recombinar per revelar la següent càrrega útil.
Combinant aquestes tècniques d'ofuscació, el programari maliciós infostealer in fils fluents evita la detecció, mostrant el paper crític de Ofuscació del codi en els ciberatacs moderns.
La cadena d'atac multietapa de ThreadFluent
L' fils fluents programari maliciós infostealer consta de quatre etapes diferents, cadascuna de les quals introdueix capes addicionals de Ofuscació del codiAquestes etapes serveixen no només per lliurar la càrrega útil, sinó també per protegir-la contra la detecció i l'anàlisi.

Etapa 0: Execució inicial de codi
El punt d'entrada és el __init__.py fitxer, que inicia l'execució de la càrrega útil ofuscada a fluent.pyAquest fitxer utilitza ofuscació multicapa (tal com es descriu als passos 1–3) per produir el comptagotes de la 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() Etapa 1: Comptagotes inicial
El primer dropper, un cop desofuscat, descarrega i incrusta codi maliciós addicional, puts.py, des d'un repositori de GitHub Canes-rojes-1337/respostes (avís: possible codi maliciós aquí).
El comptagotes s'incrusta puts.py a la instal·lació local del popular peticions biblioteca, modificant-la __init__.py fitxer per executar la desofuscació i la següent etapa. Aquesta desofuscació consisteix a invertir moltes aplicacions de les capes d'ofuscació 1 … 3.
Etapa 2: Segona dosi de gotes
El segon dropper, un cop desofuscat seguint el mateix procés, descarrega una altra càrrega útil, ssl.py del repositori de GitHub, el canvia de nom com a udp.pyi genera un fitxer de bloqueig per garantir que el programari maliciós no es reinstal·li repetidament. A continuació, s'executa per desofuscar-lo, cosa que resulta en l'execució de la càrrega útil final de l'infostealer.
Etapa 3: Infostealer final
L'etapa final és un infostealer completament funcional que utilitza tècniques d'evasió avançades:
- Funcions antianàlisi:
- Detecta eines antimalware i finalitza si es detecta algun procés, IP, nom d'amfitrió o entorn virtual a la llista negra.
- Exfiltració de dades:
- Captura informació exhaustiva. Des de l'IP, l'adreça Mac, les dades de VPN, les galetes/historial del navegador, les dades de la targeta de crèdit i les credencials de la cartera criptogràfica, entre d'altres, inclosa una captura de pantalla.
- Envia dades robades (xifrades) a través d'un canal de Telegram, utilitzant la plantilla que es mostra aquí:

Estratègia de desofuscació
Per analitzar paquets similars, els investigadors han d'invertir sistemàticament les seves capes d'ofuscació:
- Passos per emular l'ofuscació: Escriviu scripts per simular les transformacions (per exemple, desxifratge, descompressió) sense executar la càrrega útil.
- Capes de xifratge invers: Extreu i desxifra la càrrega útil utilitzant les claus i els algoritmes incrustats.
- Anàlisi iterativa: Processar cada etapa intermèdia iterativament per reconstruir la càrrega útil final.
Les eines automatitzades i els entorns de prova són essencials per optimitzar aquesta anàlisi.
Voleu saber-ne més sobre com mantenir-vos per davant de les amenaces en temps real?
Baixeu el nostre informe tècnic "Avís precoç: detecció i priorització d'amenaces en temps real" i descobriu com protegir la vostra cadena de subministrament de programari.
L'actor amenaçador
Pel que sembla, el paquet es va publicar des de dos comptes de PyPI, ABIRHOSSAIN10 i anomilano785, actualment eliminat.
Hi ha un compte de GitHub (actualment actiu) anomenat ABIRHOSSAIN10, que podria estar relacionat amb la campanya. El/La Canes-pel-rojes-1337 L'usuari de GitHub propietari del repositori utilitzat per descarregar les càrregues útils de les etapes 2 i 3 també està sota anàlisi.
Tot i que l'atribució sempre és complicada i la pertinença a un equip vermell és una possibilitat, el tipus i el volum d'informació exfiltrada suggereixen un actor maliciós.
Conclusió: El paper de l'ofuscació del codi en l'evolució del programari maliciós
L' fils fluents El paquet exemplifica l'ofuscació moderna de programari maliciós en el seu lliurament en diverses etapes. Juntament amb les tècniques d'evasió emprades, aquest paquet demostra un clar esforç per evadir la detecció i resistir l'anàlisi.
Aquesta anàlisi subratlla la importància dels esforços col·laboratius i les eines automatitzades per combatre aquestes amenaces. Analitzant i comprenent aquests mètodes, els professionals de la seguretat poden desenvolupar millors defenses contra programari maliciós similar en el futur.
Com el sistema MEW de Xygeni va impedir que el paquet maliciós de threadfluent arribés a producció
Xygeni's Alerta precoç de programari maliciós (MEW) el sistema va ser fonamental per aturar el fils fluents Paquet Python, una dependència maliciosa que conté informació avançada ofuscació del codi i una etapa múltiple programari maliciós infostealer, abans que pogués comprometre els entorns de producció. A continuació s'explica com:
- Detecció mitjançant anàlisi estàtica
MEW detectat fils fluentsel codi ocult de , trobant signes sospitosos com ara xifratge per capes i activitat de dependències inusual. - Avaluació de l'accessibilitat en temps d'execució
El sistema va trobar que el codi del paquet podia executar-se durant l'ús, marcant-lo com una amenaça greu sense executar-lo realment. - CI/CD Pipeline protecció
MEW bloquejat fils fluents en temps real, va impedir que s'inclogués a les compilacions i va impedir que arribés a la producció. Va enviar alertes accionables als desenvolupadors, estalviant un temps valuós. - Compartició d'intel·ligència sobre amenaces
Xygeni va informar ràpidament del paquet a PyPI i va compartir les seves troballes amb la seva xarxa de seguretat global, evitant que es propagués més.
Atrapant fils fluents al principi, el sistema MEW de Xygeni es va assegurar que el codi maliciós no perjudiqués les cadenes de subministrament de programari ni CI/CD fluxos de treball
Protegiu el vostre CI/CD Pipelines de franc
Prevenir amenaces com ara fils fluents amb el sistema d'alerta precoç de programari maliciós de Xygeni. Comença el teu prova gratuïta avui mateix i assegureu la vostra cadena de subministrament de programari.
Luis Rodríguez
Luis Rodríguez és un metgecist + matemàtic i CISSP. Actualment cofundador i director tècnic de Xygeni Security. Té més de 20 anys d'experiència en seguretat de programari i ha participat en projectes com SAST i SCAActualment se centra en software supply chain security.
Daniel Martín
Daniel Martín és expert en ciberseguretat i membre de l'equip de recerca en seguretat de Xygeni, especialitzat en SDLC seguretat i mitigació de vulnerabilitats de les aplicacions.






