infostealer-malware-threadfluent-kodeforvirring

Dissektion af en flertrins infostealer-malwarepakke

Python-pakken trådflydende, opdaget på PyPI, er blevet identificeret som ondsindet, der indeholder en konventionel infostealer-malware. Dens definerende karakteristika er dog brugen af ​​avancerede kodeforsløringsteknikker, der skjuler dens nyttelast, hvilket gør analyse særligt udfordrende. Denne malware bruger tre lag af forsløring iterativt på tværs af sin angrebskæde, hvilket skaber betydelige hindringer for manuel dekonstruktion.

Vores Malware Early Warning-team rapporterede pakken til PyPI-sikkerhedsteamet, som hurtigt fjernede den. I denne artikel forklarer vi trinene i trådflydende's angreb og de metoder, det bruger til at skjule sit formål, med fokus på, hvordan infostealer-malware og kodeforvirring fungerer sammen.

Snydeark: Infostealer-malware og kodeforvirring

Hvad er Infostealer-malware?

Infostealer-malware fungerer som en lusket tyv i din digitale verden. Den stjæler stille og roligt følsomme oplysninger, såsom dine adgangskoder, kreditkortnumre eller personlige oplysninger, uden at du bemærker det. Disse programmer registrerer, hvad du skriver (keylogging), hijacker din browser eller scanner filer på din enhed for at indsamle værdifulde data. Den mest skræmmende del? De udmærker sig ved at holde sig under radaren.

Tilsløringslag af ThreadFluent Infostealer Malware

1. Tredobbelt kryptering

Forvirringsprocessen begynder med en stærkt krypteret nyttelast indlejret i fluent.py fil. Den indledende kodnings- og dekrypteringsproces kan opsummeres som følger:

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

Denne forvirringsproces involverer:

  • CompressionBrug af gzip og bzip.
  • Symmetrisk krypteringKædet kryptering med ChaCha20, Blowfish og AES.
  • Asymmetrisk krypteringRSA bruges til at kryptere de symmetriske nøgler.

Resultatet kodes i Base64 og indsættes som kodede_dataHver iteration bygger videre på den foregående og skaber en indlejret krypteringsstruktur, der gør det exceptionelt vanskeligt at afdække den faktiske nyttelast uden reverse engineering.

 

2. Gzip-dekomprimering

I mange mellemliggende trin anvender malwaren en ligetil, men effektiv tilsløringsmetode: Gzip-komprimering kombineret med Base64-kodning. 

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

Denne teknik sikrer, at den tilslørede nyttelast forbliver skjult gennem alle etaperne.

3. Kodesammenkædning og dynamisk kompilering

Det sidste lag involverer opdeling af den obfuskerede nyttelast på tværs af flere variabler, som dynamisk sammenkædes og afkodes under udførelsen:

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

Denne fase er særligt besværlig at reverse engineere manuelt, da hver variabel skal afkodes og rekombineres for at afsløre den næste nyttelast.

Ved at kombinere disse obfuskeringsteknikker, infostealer malware in trådflydende undgår opdagelse, hvilket viser den afgørende rolle, som Kode sløring i moderne cyberangreb.

ThreadFluents flertrins angrebskæde

trådflydende infostealer malware består af fire forskellige faser, der hver især introducerer yderligere lag af Kode sløringDisse faser tjener ikke blot til at levere nyttelasten, men også til at beskytte den mod detektion og analyse.

infostealer-malware-kode-sløring- threadfluent

Trin 0: Indledende kodeudførelse

Indgangspunktet er __init__.py fil, som starter udførelsen af ​​den obfuskerede nyttelast i fluent.pyDenne fil bruger flerlags obfuskation (som beskrevet i trin 1-3) til at producere Stage 1-dråbetælleren:

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

Trin 1: Indledende dropper

Den første dropper, når den er deobfuskeret, downloader og integrerer yderligere ondsindet kode, puts.py, fra et GitHub-arkiv Rødhårede-skafter-1337/repuests (advarsel: potentiel skadelig kode her). 

Dropperen indlejres puts.py ind i den lokale installation af den populære anmodninger bibliotek, ændrer dets __init__.py fil for at køre deobfuskation og udføre det næste trin. Denne deobfuskation består i at vende mange anvendelser af obfuskationslagene 1 ... 3 om.

Fase 2: Anden dropper

Den anden dropper, når den er deobfuskeret efter samme proces, downloader endnu en nyttelast, ssl.py fra GitHub-arkivet, omdøber det til udp.py, og genererer en låsefil for at sikre, at malwaren ikke geninstalleres gentagne gange. Derefter køres den for at deobfuscere den, hvilket resulterer i udførelse af den endelige infostealer-nyttelast.

Fase 3: Sidste infostyver

Den sidste fase er en fuldt funktionel infostealer, der anvender avancerede undvigelsesteknikker:

  • Anti-analysefunktioner:
    • Registrerer antimalware-værktøjer og afslutter, hvis der registreres sortlistede processer, IP-adresser, værtsnavne eller virtuelle miljøer.
  • Dataeksfiltrering:
    • Indsamler omfattende oplysninger. Lige fra IP-adresse, Mac-adresse, VPN-data, browsercookies/historik, kreditkortdata og loginoplysninger til krypto-wallets, inklusive et skærmbillede.
    • Sender stjålne data (krypteret) via en Telegram-kanal ved hjælp af skabelonen vist her: 
infostealer-malware-kode-sløring- threadfluent

Deobfuskeringsstrategi

For at analysere lignende pakker skal forskere systematisk vende deres tilsløringslag om:

  • Emulér obfuskationstrin: Skriv scripts til at simulere transformationerne (f.eks. dekryptering, dekomprimering) uden at udføre nyttelasten.
  • Omvendte krypteringslag: Udpak og dekrypter nyttelasten ved hjælp af de integrerede nøgler og algoritmer.
  • Iterativ analyse: Behandl hvert mellemliggende trin iterativt for at rekonstruere den endelige nyttelast.

Automatiserede værktøjer og sandbox-miljøer er afgørende for at strømline denne analyse.

 

Vil du lære mere om at være på forkant med trusler i realtid?

Download vores whitepaper, 'Tidlig advarsel: Trusselsdetektion og prioritering i realtid', og find ud af, hvordan du beskytter din softwareforsyningskæde.

Trusselskuespilleren

Tilsyneladende blev pakken udgivet fra to PyPI-konti, ABIRHOSSAIN10 og anomilano785, i øjeblikket fjernet. 

Der er en (i øjeblikket aktiv) GitHub-konto med navnet ABIRHOSSAIN10, hvilket kunne være relateret til kampagnen. Den Rødhårede-skafter-1337 GitHub-brugeren, der ejer det repository, der bruges til at downloade fase 2- og 3-nyttelaster, er også under analyse.

Selvom tilskrivning altid er kompliceret, og medlemskab af et rødt hold er en mulighed, antyder typen og mængden af ​​information, der er blevet udfiltreret, en ondsindet aktør.

Konklusion: Kodeforvirringens rolle i malwareudviklingen

trådflydende Pakken eksemplificerer moderne malware-tilsløring i sin flertrinslevering. Kombineret med de anvendte undvigelsesteknikker demonstrerer denne pakke en klar indsats for at undgå detektion og modstå analyse.

Denne analyse understreger vigtigheden af ​​samarbejde og automatiserede værktøjer i bekæmpelsen af ​​sådanne trusler. Ved at dissekere og forstå disse metoder kan sikkerhedsprofessionelle udvikle bedre forsvar mod lignende malware i fremtiden.

Hvordan Xygenis MEW-system forhindrede den skadelige threadfluent-pakke i at nå produktion

Xygenis Tidlig advarsel om malware (MEW) systemet var afgørende for at stoppe trådflydende Python-pakke, en ondsindet afhængighed, der indeholder avanceret kode sløring og en flertrins infostealer malware, før det kunne kompromittere produktionsmiljøer. Sådan gør du:

  • Detektion gennem statisk analyse
    MEW set trådflydende's skjulte kode, og finder mistænkelige tegn som lagdelt kryptering og usædvanlig afhængighedsaktivitet.
  • Vurdering af tilgængelighed under kørsel
     Systemet fandt ud af, at pakkens kode kunne køre under brug, hvilket markerede den som en alvorlig trussel uden rent faktisk at køre den.
  • CI/CD Pipeline Beskyttelse
    MEW blokeret trådflydende i realtid, forhindrede det i at blive inkluderet i builds og forhindrede det i at nå produktion. Det sendte udviklere handlingsrettede advarsler, hvilket sparede værdifuld tid.
  • Threat Intelligence Sharing
    Xygeni rapporterede hurtigt pakken til PyPI og delte sine fund med sit globale sikkerhedsnetværk og forhindrede dermed den i at sprede sig yderligere.

Ved at fange trådflydende Tidligt sørgede Xygenis MEW-system for, at den ondsindede kode ikke skadede softwareforsyningskæder eller CI/CD arbejdsgange.

Beskyt din CI/CD Pipelines gratis

Forebyg trusler som f.eks. trådflydende med Xygenis system til tidlig varsling af malware. Start din gratis prøveversion i dag og sikr din softwareforsyningskæde.

Billede af Luis Rodríguez

Luis Rodriguez

Luis Rodriguez er fysioterapeutcist + matematiker og CISSP. I øjeblikket medstifter og CTO hos Xygeni Security. Han har over 20 års erfaring inden for softwaresikkerhed og har deltaget i projekter som f.eks. SAST og SCAHan fokuserer i øjeblikket på software supply chain security.

Billede af Daniel Martín

Daniel Martin

Daniel Martín er cybersikkerhedsekspert og medlem af Xygenis forskningssikkerhedsteam med speciale i SDLC sikkerheds- og applikationssårbarhedsreduktion.

sca-tools-software-kompositionsanalyseværktøjer
Prioriter, afhjælp og sørg for dine softwarerisici
Få din gratis konto.
Der kræves ikke noget kreditkort.

Sikr din softwareudvikling og -levering

med Xygeni-produktsuite