infostealer-malware-threadfluent-kodeforvirring

Disseksjon av en flertrinns informasjonstyver-skadevarepakke

Python-pakken trådflytende, oppdaget på PyPI, har blitt identifisert som skadelig, som inneholder en konvensjonell informasjonstyveri-skadevare. Dens definerende kjennetegn er imidlertid bruken av avanserte kodeforvirringsteknikker som skjuler nyttelasten, noe som gjør analysen spesielt utfordrende. Denne skadevaren bruker tre lag med forvirring iterativt på tvers av angrepskjeden, noe som skaper betydelige hindringer for manuell dekonstruksjon.

Vårt team for tidlig varsling av skadelig programvare rapporterte pakken til PyPI-sikkerhetsteamet, som raskt fjernet den. I denne artikkelen forklarer vi trinnene i trådflytendes angrep og metodene det bruker for å skjule formålet, med fokus på hvordan informasjonstyveri og kodeforvirring fungerer sammen.

Jukseark: Skadevare og kodeforvirring for informasjonstyvere

Hva er Infostealer-skadevare?

Infostealer-skadevare fungerer som en snikende tyv i din digitale verden. Den stjeler i stillhet sensitiv informasjon, som passord, kredittkortnumre eller personlige opplysninger, uten at du merker det. Disse programmene registrerer hva du skriver (tastelogging), kaprer nettleseren din eller skanner filer på enheten din for å samle inn verdifulle data. Det skumleste? De utmerker seg ved å holde seg under radaren.

Tilsløringslag av ThreadFluent Infostealer-skadevare

1. Trippelkryptering

Obfuskeringsprosessen begynner med en sterkt kryptert nyttelast innebygd i fluent.py fil. Den første kodings- og dekrypteringsprosessen kan oppsummeres 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 forvirringsprosessen innebærer:

  • KomprimeringBruk av gzip og bzip.
  • Symmetrisk krypteringKjedet kryptering med ChaCha20, Blowfish og AES.
  • Asymmetrisk krypteringRSA brukes til å kryptere de symmetriske nøklene.

Resultatet kodes i Base64 og settes inn som kodede_dataHver iterasjon bygger på den forrige, og skaper en nestet krypteringsstruktur som gjør det usedvanlig vanskelig å avdekke den faktiske nyttelasten uten reverse engineering.

 

2. Gzip-dekompresjon

I mange mellomtrinn bruker skadevaren en enkel, men effektiv obfuskeringsmetode: Gzip-komprimering kombinert med Base64-koding. 

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

Denne teknikken sikrer at den tilslørte nyttelasten forblir skjult gjennom hele stadiene.

3. Kodesammenkobling og dynamisk kompilering

Det siste laget innebærer å dele den obfuskerte nyttelasten på tvers av flere variabler, som dynamisk sammenkobles og dekodes under utførelse:

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 fasen er spesielt tungvint å reversere manuelt, ettersom hver variabel må dekodes og rekombineres for å avsløre neste nyttelast.

Ved å kombinere disse obfuskasjonsteknikkene, den infostealer malware in trådflytende unngår oppdagelse, og viser den kritiske rollen til Kodeobfuskasjon i moderne cyberangrep.

Flertrinns angrepskjeden til ThreadFluent

Ocuco trådflytende infostealer malware består av fire forskjellige trinn, som hver introduserer ytterligere lag av KodeobfuskasjonDisse trinnene tjener ikke bare til å levere nyttelasten, men også til å beskytte den mot deteksjon og analyse.

infostealer-malware-kode-obfuscation- threadfluent

Fase 0: Innledende kodekjøring

Inngangspunktet er __init__.py fil, som starter kjøringen av den obfuskerte nyttelasten i fluent.pyDenne filen bruker flerlags obfuskering (som beskrevet i trinn 1–3) for å produsere trinn 1-dråpetelleren:

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: Innledende dropper

Den første dropperen, når den er deobfuskert, laster ned og bygger inn ytterligere ondsinnet kode, puts.py, fra et GitHub-arkiv Rødhårede-skaft-1337/reputasjoner (advarsel: potensielt skadelig kode her). 

Dropperen legger seg inn puts.py inn i den lokale installasjonen av den populære forespørsler biblioteket, og endrer dets __init__.py filen for å kjøre deobfuskering og utføre neste trinn. Denne deobfuskeringen består av å reversere mange applikasjoner av obfuskeringslagene 1 … 3.

Fase 2: Andre dropper

Den andre dropperen, når den er deobfuskert etter samme prosess, laster ned enda en nyttelast, ssl.py fra GitHub-depotet, omdøper det til udp.py, og genererer en låsefil for å sikre at skadevaren ikke installeres på nytt gjentatte ganger. Deretter kjøres den for å deobfuskere den, noe som resulterer i utførelse av den endelige infostealer-nyttelasten.

Fase 3: Endelig informasjonstyver

Det siste stadiet er en fullt funksjonell infotyver som benytter avanserte unnvikelsesteknikker:

  • Antianalysefunksjoner:
    • Oppdager verktøy for skadelig programvare og avslutter hvis svartelistede prosesser, IP-adresser, vertsnavn eller virtuelle miljøer oppdages.
  • Dataeksfiltrering:
    • Innsamler omfattende informasjon. Alt fra IP, MAC-adresse, VPN-data, informasjonskapsler/historikk for nettleseren, kredittkortdata og påloggingsinformasjon for kryptolommebøker, inkludert et skjermbilde.
    • Sender stjålne data (kryptert) via en Telegram-kanal, ved hjelp av malen vist her: 
infostealer-malware-kode-obfuscation- threadfluent

Strategi for deobfuskering

For å analysere lignende pakker må forskere systematisk reversere obfuskasjonslagene:

  • Emuler obfuskasjonstrinn: Skriv skript for å simulere transformasjonene (f.eks. dekryptering, dekompresjon) uten å kjøre nyttelasten.
  • Omvendte krypteringslag: Pakk ut og dekrypter nyttelasten ved hjelp av de innebygde nøklene og algoritmene.
  • Iterativ analyse: Behandle hvert mellomliggende trinn iterativt for å rekonstruere den endelige nyttelasten.

Automatiserte verktøy og sandkassemiljøer er avgjørende for å effektivisere denne analysen.

 

Vil du lære mer om å ligge i forkant av trusler i sanntid?

Last ned vårt whitepaper, «Tidlig varsling: Trusseldeteksjon og prioritering i sanntid», og oppdag hvordan du kan beskytte programvareforsyningskjeden din.

Trusselaktøren

Pakken ble visstnok publisert fra to PyPI-kontoer, ABIRHOSSAIN10 og anomilano785, for øyeblikket fjernet. 

Det finnes en (for tiden aktiv) GitHub-konto som heter ABIRHOSSAIN10, som kan være relatert til kampanjen. Den Rødhårede-skaft-1337 GitHub-brukeren som eier depotet som brukes til nedlasting av nyttelaster for trinn 2 og 3 er også under analyse.

Selv om attribusjon alltid er komplisert og medlemskap i et rødt team er en mulighet, hinter typen og mengden informasjon som er exfiltrert til en ondsinnet aktør.

Konklusjon: Rollen til kodeforvirring i utviklingen av skadelig programvare

Ocuco trådflytende Pakken eksemplifiserer moderne malware-forvirring i sin flertrinnslevering. Kombinert med unnvikelsesteknikkene som brukes, demonstrerer denne pakken en tydelig innsats for å unngå deteksjon og motstå analyse.

Denne analysen understreker viktigheten av samarbeid og automatiserte verktøy for å bekjempe slike trusler. Ved å dissekere og forstå disse metodene kan sikkerhetseksperter utvikle bedre forsvar mot lignende skadelig programvare i fremtiden.

Hvordan Xygenis MEW-system forhindret den skadelige threadfluent-pakken fra å nå produksjon

Xygenis Tidlig varsling om skadelig programvare (MEW) systemet var avgjørende for å stoppe trådflytende Python-pakke, en ondsinnet avhengighet som inneholder avansert kode forvirring og en flertrinns infostealer malware, før det kunne kompromittere produksjonsmiljøer. Slik gjør du det:

  • Deteksjon gjennom statisk analyse
    MEW oppdaget trådflytendes skjulte kode, og finner mistenkelige tegn som lagdelt kryptering og uvanlig avhengighetsaktivitet.
  • Vurdering av tilgjengelighet under kjøring
     Systemet fant ut at pakkens kode kunne kjøres under bruk, og markerte den som en alvorlig trussel uten at den faktisk ble kjørt.
  • CI/CD Pipeline beskyttelse
    MEW blokkert trådflytende i sanntid, stoppet den fra å bli inkludert i bygg og forhindret den fra å komme i produksjon. Den sendte utviklere handlingsrettede varsler, noe som sparte verdifull tid.
  • Deling av trusselintelligens
    Xygeni rapporterte raskt pakken til PyPI og delte funnene sine med sitt globale sikkerhetsnettverk, noe som forhindret ytterligere spredning.

Ved å fange trådflytende tidlig sørget Xygenis MEW-system for at den ondsinnede koden ikke skadet programvarens forsyningskjeder eller CI/CD arbeidsflyt.

Beskytt din CI/CD Pipelines gratis

Forhindre trusler som trådflytende med Xygenis system for tidlig varsling av skadelig programvare. Start din gratis prøveperiode i dag og sikre programvareforsyningskjeden din.

Bilde av Luis Rodríguez

Luis Rodriguez

Luis Rodriguez er fysioterapeutcist + matematiker og CISSP. For tiden medgründer og teknisk direktør i Xygeni Security. Han har over 20 års erfaring innen programvaresikkerhet og har deltatt i prosjekter som SAST og SCAHan fokuserer for tiden på software supply chain security.

Bilde av Daniel Martín

Daniel Martin

Daniel Martín er en ekspert på cybersikkerhet og medlem av Xygenis forskningssikkerhetsteam, som spesialiserer seg på SDLC sikkerhets- og applikasjonssårbarhetsreduksjon.

sca-tools-programvare-verktøy for komposisjonsanalyse
Prioriter, utbedre og sikre programvarerisikoene dine
Få din gratis konto.
Ingen kredittkort kreves.

Sikre programvareutviklingen og -leveringen din

med Xygeni-produktpakken