Xygeni huet viru kuerzem e besuergnësserreegend Muster an der Landschaft vun den Attacken op Software-Supply Chain am Joer 2025 observéiert., déi iwwer zwee populäre Paketmanager erauskënnt: PyPI an npmAls Deel vun eise lafende Beméiungen zur Geforeninformatioun,Xygeni seng Malware Early Warning (MEW) D'Tool huet eng eenzegaarteg, awer methodesch ähnlech Instanz vu béiswëllege Pakett identifizéiert, déi virdru schonn an eng aner Registrierung eropgeluede gouf. Dëse Fall weist, wéi sech Bedrohungsakteuren entwéckelen an Attacktechniken iwwer Ökosystemer nei benotzen, besonnesch duerch béiswëlleg Python-Paketen an béiswëlleg npm-Paketen, wat de Risiko erhéicht, datt béiswëlleg Paketen an Open-Source-Liwwerketten infiltréieren.
Xygeni's MEW: D'Ähnlechkeeten entdecken
Den MEW-Tool vun Xygeni ass entwéckelt fir béiswëlleg Paketen z'entdecken an ze markéieren, besonnesch déi, déi mat Software Supply Chain Attacks am Joer 2025 verbonne sinn, soubal se an Open-Source-Registrierunge publizéiert ginn. Et funktionéiert andeems et nei Paketen op verdächtegt Verhalen analyséiert.
An dësem Fall huet et zwou identifizéiert béiswëlleg Python-Paketen (graphalgo op PyPI) an béiswëlleg npm-Paketen (express-cookie-parser op npm).
Béiswëlleg Python- an npm-Pakete bei Software-Supply Chain-Attacken (2025)
Loosst eis déi gemeinsam Charakteristiken entdecken, déi eis Alarmer ausgeléist hunn:
Schreifweis
Si hunn allebéid probéiert, populär existent Paketen ze imitéieren.
- Graphalgo (PyPI): "Python-Paket fir d'Erstelle a Manipuléiere vu Grafiken a Netzwierker.„Eropgelueden vun engem Benotzer mam Numm „larrytech“ Den 13. Juni 2025 huet sech dëse Pak als eng PyPi-Alternativ zum ursprénglechen net-béiswëllege Graphalgo-Projet presentéiert, deen spéider a graphdict ëmbenannt gouf.
- Express-Cookie-Parser (npm)Dëse Pak huet dat bekannt Cookie-Parser-Paket imitéiert, souguer säin eegent. README.md. Sou eng Imitatioun ass eng klassesch Taktik fir existent Vertrauen ze notzen.
Verdunkelung als éischt Verteidegungslinn
Béid Paketen hunn hire béiswëllege Code an den Originaldateien verschleiert. Graphalgo, de verschleierte Code gouf dobannen fonnt /utils/load_libraries.py. Am Fall vun Express-Cookie-Parser, cookie-loader.min.js déi verschleiert Notzlaascht enthale huet.
Dës éischt Schicht vun der Obfuskatioun gëtt typescherweis benotzt fir eng geleeëntlech Inspektioun an eng statesch Analyse ze behënneren. D'Obfuskatioun war zimmlech einfach: widderholl ZLib-Kompressioun plus Base64-Kodéierung. Dës Zort vun Obfuskatioun weist kloer drop hin, datt d'Software probéiert hiert Verhalen ze verstoppen. Zesumme mat anere Beweiser huet dëst et Xygeni MEW erlaabt, d'Packagen als potenziell Malware ze klasséieren. Wärend der Bestätegungsphase hunn eis Rezensenten direkt en Deobfuskatiounsskript virbereet, deen déi offensichtlech béiswëlleg Dropper-Phase opgedeckt huet.
Méistufeg Notzlaaschtliwwerung an e gemeinsamen Urspronkpunkt
Béid Pakete hunn als initial "Drëpsen„, wat d'Bühn fir déi richteg Notzlaascht virbereet huet. Si hunn eng gemeinsam extern „Som"Datei-URL:https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example
Dës identesch extern Seed-Datei ass e staarken Indikator fir e gemeinsamen Akteur vun der Bedrohung. Interessanterweis schéngt den Inhalt vun dëser Seed-Datei einfach Ëmweltvariablen ze sinn (z.B. JWT_SECRET, PORT), wat d'Inspektioun potenziell iwwer hir tatsächlech Funktioun verfälscht.
Dynamesch C2-Opléisung mat enger DGA
Eng sophistikéiert Taktik, déi an dëse béiswëllege Paketen observéiert gëtt, ass d'Benotzung vun engem Domain Generation Algorithmus (DGA) fir de Command and Control (C2) Server dynamesch opzeléisen. Dës Technik, déi dacks a fortgeschrattene Software-Supply Chain-Attacken am Joer 2025 ze gesinn ass, baséiert op engem SHA256-Hash, deen aus dem Inhalt vun der Seed-Datei ofgeleet ass, kombinéiert mat anere fest kodéierte Wäerter. Doduerch ännert sech d'C2-Infrastruktur dacks, wouduerch traditionell Blacklisting vill manner effektiv ass. An dësem Fall huet d'npm-Variant e fixe Wäert vun ... benotzt. 496AAC7E als Deel vun senger DGA-Logik.
Persistenz opzebauen
Béid Attacker wollten eng dauerhaft Präsenz op de betraffene Systemer opbauen. Hir Strategie huet doranner bestanen, eng Datei ze läschen, startup.py (fir PyPi) oder startup.js (fir npm), an allgemeng Google Chrome Benotzerdatenverzeichnisser iwwer verschidde Betribssystemer (Windows, Linux, macOS).
Reinigung no der Ausféierung
Fir Spueren ze minimiséieren, hunn déi zwou béiswëlleg Scripten d'Opraumaktiounen duerchgefouert. Dëst huet och d'Läschen vun hiren initialen Dropper-Dateien abegraff (load_libraries.py, cookie-loader.min.js) a legitim Paketdateien änneren (__init__.py, index.js) fir d'Referenzen op déi elo geläschte Komponenten ze läschen.
Indikatoren fir Kompromësser a béiswëllege Python- an npm-Packagen
- PyPI-Paket: graphalgo (verëffentlecht vum larrytech, 13. Juni 2025)
- npm-Paketexpress-cookie-parser (spezifesch Versioun 1.4.12)
- Zougang zu der gemeinsamer Seed-URL:
https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example
- Persistent Dateinimm:
startup.py(Python)startup.js(JavaScript) - Gemeinsam persistent Weeër (OS-ofhängeg)An de Benotzerdatenverzeichnisser vu Google Chrome (z.B.
AppData\Local\Google\Chrome\UserData\Scripts\op Windows,~/.config/google-chrome/Scripts/op Linux, etc.).
Wéi ee sech géint béiswëlleg Paketen a Software-Supply Chain-Attacken 2025 verdeedege kann
E recommandéierte Wee fir Entwéckler
Dësen Incident déngt als wäertvoll Fallstudie an der sech entwéckelnder Bedrohungslandschaft vu Software-Supply Chain-Attacken am Joer 2025. En ënnersträicht, wéi béiswëlleg Python-Pakete a béiswëlleg NPM-Pakete a vertrauenswürdeg Ökosystemer agefall kënne ginn, an dacks der Detektioun entgoe kënnen, bis et ze spéit ass. Dofir sinn fréi Detektioun, intelligent Tools a proaktiv Systemhygiene elo essentiell Deeler vun all sécherem DevOps-Workflow. Entwéckler gi geroden, folgend Punkten ze berécksiichtegen:
Ofhängegkeetsiwwerpréiwung
Wann Är Projeten abegraff hunn Graphalgo or Express-Cookie-Parser, wier et klug, mat hirer Entfernung weiderzemaachen.
- Fir PyPI:
pip uninstall graphalgo - Fir npm:
npm uninstall express-cookie-parser
Systemhygiene
Iwwerleet Iech e komplette Systemscan duerchzeféieren. Et ass och ubruecht, d'Pfade vum übleche Chrome-Benotzerdatenverzeichnis manuell op onerwaart Feeler ze kontrolléieren. startup.py or startup.js Fichieren.
Proaktiv Sécherheet Mesuren
- Nei Ofhängegkeeten evaluéierenEtabléiert eng Routine fir nei Paketen grëndlech virun der Integratioun ze evaluéieren, mat engem Fokus op déi vun onbekannte Verleeger.
- Integratioun vu SécherheetsinstrumenterTools wéi Xygeni säin MEW, zesumme mat anere Software Composition Analysis (SCA) Léisunge kënnen eng kritesch Verteidegungsschicht ubidden, andeems se verdächteg Verhalen a Schwachstelle identifizéieren.
- Mannste PrivilegD'Bedreiwe vun Entwécklungsumgebungen mam Prinzip vun de klengste Privilegien kann hëllefen, déi potenziell Auswierkunge vun engem Kompromëss ze limitéieren.
- Reseau SensibiliséierungD'Iwwerwaachung vum ausgehende Netzwierkverkéier op ongewéinlech Verbindungen kann heiansdo DGA-generéiert C2-Kommunikatiounen opdecken.
Schlëssel Komponente vun load_libraries.py (vu Graphalgo)
download_remote_content(): Hält d'Ofrufung vu Dateien vun spezifizéierten URLen.run_process(): Féiert extern Python-Skripter op eng distanzéiert Manéier aus, andeems d'Ausgab ënnerdréckt gëtt fir diskret ze bleiwen.get_output_file_path(): Bestëmmt déi ideal Systemplaz fir déi persistent startup.py Datei.remove_self()Orchestréiert d'Botzen vun den initialen béiswëllege Dateien a Pakmodifikatiounen no der Ausféierung.simple_shift_encrypt()/simple_shift_decrypt()Benotzerdefinéiert kryptographesch Funktiounen fir d'Verdeckung vu Kommunikatiounskanäl, entscheedend fir d'DGA-Ëmsetzung.load_libraries(): Déi zentral Funktioun, déi de gesamte Méistufprozess koordinéiert, vum éischten Download bis zur definitiver Payload-Ausféierung an der Reinigung.
Nozekommen
Wéi bei anere potenziell béiswëllege Paketen, déi vum MEW identifizéiert goufen, huet d'Ofhängegkeets-Firewall direkt Benotzer geschützt, déi dës béiswëlleg Paketen an hir Ofhängegkeeten abannen. No der Bestätegung hu mir d'Notifikatiounsprozedure fir béid Registrierungen gefollegt, wouduerch no der Iwwerpréiwung béid Paketen ewechgeholl goufen.





