Python pakotne pavedienu plūstamība, kas atklāts PyPI, ir identificēts kā ļaunprātīgs, kas satur tradicionālu informācijas zagšanas ļaunprogrammatūru. Tomēr tās raksturīgā iezīme ir uzlabotu koda slēpšanas metožu izmantošana, kas slēpj tās lietderīgo slodzi, padarot analīzi īpaši sarežģītu. Šī ļaunprogrammatūra iteratīvi izmanto trīs koda slēpšanas slāņus visā uzbrukuma ķēdē, radot ievērojamus šķēršļus manuālai dekonstrukcijai.
Mūsu ļaunprogrammatūras agrīnās brīdināšanas komanda ziņoja par pakotni PyPI drošības komandai, kas to ātri noņēma. Šajā rakstā mēs izskaidrojam procesa posmus. pavedienu plūstamībauzbrukumu un metodes, ko tas izmanto, lai slēptu savu mērķi, koncentrējoties uz to, kā informācijas zagšanas ļaunprogrammatūra un koda slēpšana darbojas kopā.
Špikerlapa: Informācijas zagšanas ļaunprogrammatūra un koda obfuskācija
Kas ir Infostealer ļaunprogrammatūra?
Informācijas zagļu ļaunprogrammatūra darbojas kā viltīgs zaglis jūsu digitālajā pasaulē. Tā nemanāmi, jums nepamanot, notver sensitīvu informāciju, piemēram, jūsu paroles, kredītkaršu numurus vai personas datus. Šīs programmas reģistrē jūsu rakstīto informāciju (taustiņu nospiešanas reģistrācija), nolaupa jūsu pārlūkprogrammu vai skenē failus jūsu ierīcē, lai apkopotu vērtīgus datus. Visbiedējošākā daļa? Tās izceļas ar to, ka paliek nepamanītas.
Kas ir koda obfuskācija?
Koda slēpšana būtībā ir lietu slēpšanas māksla, ko hakeri bieži izmanto, lai padarītu savu ļaunprātīgo kodu grūtāk pamanāmu vai saprotamu. Iedomājieties, ka kāds raksta kodu tādā veidā, kas ir apzināti mulsinošs, šifrē tā daļas vai sajauc tā izskatu, lai maldinātu pretvīrusu rīkus vai pētniekus. Tā ir gudra, bet nomācoša taktika, kas palīdz ļaunprogrammatūrai ilgāk saglabāt aktivitāti un izvairīties no atklāšanas.
Aptumšošanas slāņi ThreadFluent Infostealer ļaunprogrammatūra
1. Trīskārša šifrēšana
Aptumšošanas process sākas ar stipri šifrētu vērtumu, kas iegults fluent.py fails. Sākotnējo kodēšanas un atšifrēšanas procesu var apkopot šādi:
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)) ) Šis aptumšošanas process ietver:
- SaspiešanaIzmantojot gzip un bzip.
- Simetriskā šifrēšanaĶēdes šifrēšana ar ChaCha20, Blowfish un AES.
- Asimetriskā šifrēšanaRSA, ko izmanto simetrisko atslēgu šifrēšanai.
Rezultāts tiek kodēts Base64 formātā un ievietots kā kodētie_datiKatra iterācija balstās uz iepriekšējo, izveidojot ligzdotu šifrēšanas struktūru, kas ārkārtīgi apgrūtina faktiskās vērtuma atklāšanu bez reversās inženierijas.
2. Gzip dekompresija
Daudzos starpposmos ļaunprogrammatūra izmanto vienkāršu, bet efektīvu slēpšanas metodi: Gzip saspiešanu apvienojumā ar Base64 kodēšanu.
import base64, zlib; eval(zlib.decompress(base64.b64decode(<STR>).decode('utf-8')) Šī metode nodrošina, ka apmulsinātā lietderīgā slodze visos posmos paliek paslēpta.
3. Koda konkatenācija un dinamiska kompilācija
Pēdējais slānis ietver apmulsinātās lietderīgās slodzes sadalīšanu vairākos mainīgajos, kas izpildes laikā tiek dinamiski apvienoti un dekodēti:
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')) Šo posmu ir īpaši apgrūtinoši manuāli reversēt, jo katrs mainīgais ir jāatšifrē un jāpārkombinē, lai atklātu nākamo lietderīgo slodzi.
Apvienojot šīs slēpšanas metodes, infostealer ļaunprogrammatūra in pavedienu plūstamība izvairās no atklāšanas, demonstrējot kritisko lomu Koda apmulsināšana mūsdienu kiberuzbrukumos.
ThreadFluent daudzpakāpju uzbrukuma ķēde
The pavedienu plūstamība infostealer ļaunprogrammatūra ietver četrus atšķirīgus posmus, katrs no tiem ievieš papildu slāņus Koda apmulsināšanaŠie posmi kalpo ne tikai derīgās kravas piegādei, bet arī tās aizsardzībai pret atklāšanu un analīzi.

0. posms: Sākotnējā koda izpilde
Ieejas punkts ir __init__.py fails, kas uzsāk apmulsinātās lietderīgās slodzes izpildi fluent.pyŠajā failā tiek izmantota daudzslāņu obfuskācija (kā aprakstīts 1.–3. darbībā), lai izveidotu 1. posma pilinātāju:
import os,threading def main(): if os.name == 'nt': from . import fluent fluent.main() thread = threading.Thread(target=main , daemon=True) thread.start() 1. posms: Sākotnējais pilinātājs
Pirmais droppers, tiklīdz tas ir atmaskots, lejupielādē un iegulst papildu ļaunprātīgu kodu, puts.py, no GitHub repozitorija Red-haired-shanks-1337/repuests (brīdinājums: šeit var būt ļaunprātīgs kods).
Pilinātāja iegulšana puts.py populārās mūzikas vietējā instalācijā pieprasījumi bibliotēka, modificējot to __init__.py failu, lai palaistu deobfuskāciju un izpildītu nākamo posmu. Šī deobfuskācija ietver daudzu obfusācijas slāņu 1… 3 lietojumprogrammu apvēršanu.
2. posms: Otrais pilinātājs
Otrais pilinātājs, pēc tā paša procesa atšifrēšanas, lejupielādē vēl vienu vērtumu, ssl.py no GitHub repozitorija pārdēvē to par udp.pyun ģenerē bloķēšanas failu, lai nodrošinātu, ka ļaunprogrammatūra netiek atkārtoti instalēta. Pēc tam tas tiek palaists, lai to deobfusētu, kā rezultātā tiek izpildīta galīgā infostealer vērtuma slodze.
3. posms: pēdējais informācijas zaglis
Pēdējais posms ir pilnībā funkcionējošs informācijas zaglis, kas izmanto uzlabotas izvairīšanās metodes:
- Antianalīzes funkcijas:
- Atklāj ļaunprogrammatūras apkarošanas rīkus un pārtrauc darbību, ja tiek atklāti melnajā sarakstā iekļauti procesi, IP adreses, resursdatora nosaukumi vai virtuālās vides.
- Datu eksfiltrācija:
- Ietver izsmeļošu informāciju. Sākot ar IP adresi, Mac adresi, VPN datiem, pārlūkprogrammas sīkfailiem/vēsturi, kredītkaršu datiem un kriptovalūtas maka akreditācijas datiem, tostarp ekrānuzņēmumu.
- Nosūta nozagtus datus (šifrētus), izmantojot Telegram kanālu, izmantojot šeit parādīto veidni:

Deobfuscācijas stratēģija
Lai analizētu līdzīgas pakotnes, pētniekiem sistemātiski jāmaina tās apmulsināšanas slāņi:
- Emulēt obfuskācijas soļus: Rakstiet skriptus, lai simulētu transformācijas (piemēram, atšifrēšanu, dekompresiju), neizpildot lietderīgo slodzi.
- Reversās šifrēšanas slāņi: Izvilkt un atšifrēt lietderīgo slodzi, izmantojot iegultās atslēgas un algoritmus.
- Iteratīvā analīze: Apstrādājiet katru starpposmu iteratīvi, lai rekonstruētu galīgo lietderīgo slodzi.
Lai racionalizētu šo analīzi, ir svarīgi automatizēti rīki un smilškastes vides.
Vai vēlaties uzzināt vairāk par to, kā reāllaikā novērst draudus?
Lejupielādējiet mūsu informatīvo dokumentu “Agrīna brīdināšana: reāllaika apdraudējumu noteikšana un prioritāšu noteikšana” un uzziniet, kā aizsargāt savu programmatūras piegādes ķēdi.
Draudu aktieris
Acīmredzot pakotne tika publicēta no diviem PyPI kontiem, ABIRHOSSAINS10 un anomilano785, pašlaik noņemts.
Pašlaik ir aktīvs GitHub konts ar nosaukumu ABIRHOSSAINS10, kas varētu būt saistīts ar kampaņu. Rudmatainie-stilbi-1337 Tiek analizēts arī GitHub lietotājs, kuram pieder repozitorijs, kas tiek izmantots 2. un 3. posma vērtumu lejupielādei.
Lai gan attiecināšana vienmēr ir sarežģīta un piederība sarkanajai komandai ir iespējama, izfiltrētās informācijas veids un apjoms norāda uz ļaunprātīgu personu.
Secinājums: koda slēpšanas loma ļaunprogrammatūras evolūcijā
The pavedienu plūstamība Šī pakotne ar savu daudzpakāpju piegādi iemieso mūsdienīgu ļaunprogrammatūras slēpšanu. Apvienojumā ar izmantotajām apiešanas metodēm šī pakotne demonstrē skaidrus centienus izvairīties no atklāšanas un pretoties analīzei.
Šī analīze uzsver sadarbības centienu un automatizētu rīku nozīmi šādu draudu apkarošanā. Analizējot un izprotot šīs metodes, drošības speciālisti nākotnē var izstrādāt labāku aizsardzību pret līdzīgu ļaunprogrammatūru.
Kā Xygeni MEW sistēma neļāva ļaunprātīgajai threadfluent pakotnei sasniegt ražošanas vidi
Ksigēni Ļaunprogrammatūras agrīnā brīdināšana (MEW) sistēmai bija liela nozīme, lai apturētu pavedienu plūstamība Python pakotne, ļaunprātīga atkarība, kas satur uzlabotu koda apmulsēšana un daudzpakāpju infostealer ļaunprogrammatūra, pirms tas varētu apdraudēt ražošanas vidi. Lūk, kā:
- Noteikšana, izmantojot statisko analīzi
MEW pamanīts pavedienu plūstamībaslēpto kodu, atrodot aizdomīgas pazīmes, piemēram, slāņveida šifrēšanu un neparastu atkarību aktivitāti. - Izpildes laika sasniedzamības novērtējums
Sistēma konstatēja, ka pakotnes kods var darboties lietošanas laikā, atzīmējot to kā nopietnu apdraudējumu, to faktiski nepalaižot. - CI/CD Pipeline aizsardzība
MEW bloķēts pavedienu plūstamība reāllaikā apturēja tā iekļaušanu versijās un neļāva tam nonākt ražošanas vidē. Tas nosūtīja izstrādātājiem rīcības brīdinājumus, ietaupot vērtīgu laiku. - Draudu informācijas apmaiņa
Xygeni ātri ziņoja par pakotni PyPI un kopīgoja savus atklājumus ar savu globālo drošības tīklu, apturot tās tālāku izplatīšanos.
Noķerot pavedienu plūstamība sākumā Xygeni MEW sistēma nodrošināja, ka ļaunprātīgais kods nekaitē programmatūras piegādes ķēdēm vai CI/CD darbplūsmas.
Aizsargājiet savu CI/CD Pipelines par brīvu
Novērst tādus draudus kā pavedienu plūstamība ar Xygeni ļaunprogrammatūras agrīnās brīdināšanas sistēmu. Sāciet savu bezmaksas izmēģinājuma versija jau šodien un nodrošiniet savu programmatūras piegādes ķēdi.
Luiss Rodrigess
Luiss Rodrigess ir fizioterapeits.cist + matemātiķis un CISSP. Pašlaik Xygeni Security līdzdibinātājs un tehnoloģiju direktors. Viņam ir vairāk nekā 20 gadu pieredze programmatūras drošības jomā, un viņš ir piedalījies tādos projektos kā SAST un SCAViņš pašlaik koncentrējas uz software supply chain security.
Daniels Martins
Daniels Martins ir kiberdrošības eksperts un Xygeni pētniecības drošības komandas loceklis, kas specializējas SDLC drošības un lietojumprogrammu ievainojamību mazināšana.






