Xygeni hà osservatu pocu fà un mudellu preoccupante in u paisaghju di l'attacchi à a catena di furnimentu di software in u 2025., emergendu in dui gestori di pacchetti populari: PyPI e npmCum'è parte di i nostri sforzi cuntinui d'intelligenza di minacce,L'avvisu precoce di malware (MEW) di Xygeni U strumentu hà identificatu un'istanza distinta ma metodologicamente simile di un pacchettu maliziosu caricatu prima in un altru registru. Stu casu mette in risaltu cumu l'attori di minaccia si stanu evolvendu è riutilizendu tecniche d'attaccu in tutti l'ecosistemi, in particulare per mezu di pacchetti Python maliziosi e pacchetti npm maliziosi, ciò chì aumenta u risicu di pacchetti maliziosi chì s'infiltranu in e catene di furnimentu open source.
U MEW di Xygeni: Scopre e similitudini
U strumentu MEW di Xygeni hè custruitu per rilevà è segnalà i pacchetti maliziosi, in particulare quelli ligati à l'attacchi di a catena di furnimentu di software in u 2025, appena sò publicati in i registri open-source. Funziona analizendu i novi pacchetti per cumpurtamenti suspettosi.
In questu casu, hà identificatu dui pacchetti Python maliziosi (graphalgo nantu à PyPI) è pacchetti npm maliziosi (express-cookie-parser nantu à npm).
Pacchetti Python è npm maliziosi in attacchi à a catena di furnimentu di software (2025)
Esploremu e caratteristiche cumune chì anu scatenatu i nostri avvisi:
Typosquatting
Tramindui anu pruvatu à impersonà pacchetti populari esistenti.
- grafalgo (PyPI): "Pacchettu Python per a creazione è a manipulazione di grafici è reti."Caricatu da un utilizatore chjamatu "larrytech" U 13 di ghjugnu di u 2025, stu pacchettu s'hè prisentatu cum'è una alternativa PyPi à u prugettu originale graphalgo micca maliziosu, chì hè statu dopu ribattezzatu graphdict.
- analizzatore di cookie express (npm)Stu pacchettu hà imitatu u pacchettu di cookie-parser ben cunnisciutu, ancu riflettendu u so README.md. Tale impersonificazione hè una tattica classica per sfruttà a fiducia esistente.
L'offuscazione cum'è prima linea di difesa
Tramindui i pacchetti anu offuscatu u so codice maliziosu in i fugliali uriginali. Per graphalgo, u codice offuscatu hè statu trovu in /utils/load_libraries.py. In lu casu di parser di cookie express, cookie-loader.min.js cuntene u payload offuscatu.
Stu stratu iniziale di offuscazione hè tipicamente adupratu per impedisce l'ispezione casuale è l'analisi statica. L'offuscazione era abbastanza simplice: cumpressione ZLib ripetuta più codifica Base64. Stu tipu d'offuscazione indica chjaramente chì u software prova à ammuccià u so cumpurtamentu. Inseme cù altre prove, questu hà permessu à Xygeni MEW di classificà i pacchetti cum'è malware potenziale. Durante a fase di cunferma, i nostri revisori anu preparatu prontamente un script di deoffuscazione chì hà rivelatu a fase di dropper ovviamente maliziosa.
Cunsegna di Caricu Multi-Fase è un Puntu d'Origine Spartitu
Tramindui i pacchetti funzionavanu cum'è iniziali "contagocce", preparendu u terrenu per u veru payload. Anu spartutu un esternu cumunu"sumenteURL di u schedariu:https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example
Stu schedariu di seed esternu identicu hè un indicatore forte di un attore di minaccia spartutu. Hè interessante nutà chì u cuntenutu di stu schedariu di seed pare esse variabili d'ambiente simplici (per esempiu, JWT_SECRET, PORT), chì ponu purtà à ingannà a so funzione attuale.
Risoluzione C2 dinamica cù un DGA
Una tattica sofisticata osservata in questi pacchetti maliziosi hè l'usu di un Algoritmu di Generazione di Domini (DGA) per risolve dinamicamente u servitore di Cumandu è Cuntrollu (C2). Sta tecnica, spessu vista in attacchi avanzati à a catena di furnimentu di software in u 2025, si basa nantu à un hash SHA256 derivatu da u cuntenutu di u schedariu seed, cumminatu cù altri valori codificati. Cusì, l'infrastruttura C2 cambia spessu, rendendu a lista nera tradiziunale assai menu efficace. In questu casu, a variante npm hà utilizatu un valore fissu di 496AAC7E cum'è parte di a so logica DGA.
Stabbilimentu di a persistenza
Tramindui l'attaccanti anu cercatu di stabilisce una presenza durevule nantu à i sistemi affettati. A so strategia implicava di abbandunà un schedariu, startup.py (per PyPi) o startup.js (per npm), in i repertori cumuni di dati d'utilizatori di Google Chrome in diversi sistemi operativi (Windows, Linux, macOS).
Pulizia dopu l'esecuzione
Per minimizà e tracce, i dui script maliziosi anu realizatu operazioni di pulizia. Questu includeva a cancellazione di i so fugliali dropper iniziali (load_libraries.py, cookie-loader.min.js) è mudificà i fugliali di pacchetti legittimi (__init__.py, index.js) per caccià i riferimenti à i cumpunenti avà sguassati.
Indicatori di compromissione in pacchetti Python è npm maliziosi
- Pacchettu PyPI: graphalgo (publicatu da larrytech, u 13 di ghjugnu 2025)
- Pacchettu npmexpress-cookie-parser (in particulare a versione 1.4.12)
- Accessu à l'URL di Seed Sparte:
https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example
- Nomi di schedari persistenti:
startup.py(Python)startup.js(JavaScript) - Percorsi Persistenti Cumuni (dipendenti da u sistema operativu)In i cartulari di dati di l'utilizatori di Google Chrome (per esempiu,
AppData\Local\Google\Chrome\UserData\Scripts\nantu à Windows,~/.config/google-chrome/Scripts/nant'à Linux, ecc.).
Cumu difende si contr'à i pacchetti maliziosi in l'attacchi di a catena di furnimentu di software 2025
Un Approcciu Raccomandatu per i Sviluppatori
Questu incidente serve cum'è un studiu di casu preziosu in u paisaghju di minacce in evoluzione di l'attacchi à a catena di furnimentu di software in u 2025. Mette in risaltu cumu i pacchetti Python maliziosi è i pacchetti npm maliziosi ponu scivulà in ecosistemi di fiducia, spessu sfuggendu à a rilevazione finu à ch'ellu sia troppu tardi. Hè per quessa chì a rilevazione precoce, l'arnesi intelligenti è l'igiene proattiva di u sistema sò avà parti essenziali di qualsiasi flussu di travagliu DevOps sicuru. I sviluppatori sò incuraghjiti à cunsiderà i seguenti:
Revisione di Dipendenza
Sè i vostri prughjetti anu inclusu graphalgo or parser di cookie express, seria prudente di prucede à a so rimuzione.
- Per PyPI:
pip uninstall graphalgo - Per npm:
npm uninstall express-cookie-parser
Igiene di u Sistema
Cunsiderate di fà una scansione cumpleta di u sistema. Hè ancu cunsigliatu di verificà manualmente i percorsi cumuni di u cartulare di dati di l'utilizatori di Chrome per qualsiasi imprevistu. startup.py or startup.js i schedari.
Misure di sicurezza proattive
- Valutà e nuove dipendenzeStabilisce una rutina per valutà accuratamente i novi pacchetti prima di l'integrazione, cuncentrandosi nantu à quelli di editori scunnisciuti.
- Integrazione di strumenti di sicurezzaStrumenti cum'è MEW di Xygeni, inseme cù altre Analisi di Cumposizione di Software (SCA) suluzioni, ponu furnisce un livellu criticu di difesa identificendu cumpurtamenti è vulnerabilità suspetti.
- U minimu privilegiuOperà in ambienti di sviluppu cù u principiu di u minimu privilegiu pò aiutà à limità l'impattu putenziale di una compromissione.
- Cuscenza di a reteU monitoraghju di u trafficu di rete in uscita per cunnessione inusuali pò qualchì volta rivelà cumunicazioni C2 generate da DGA.
Cumpunenti chjave di load_libraries.py (da graphalgo)
download_remote_content(): Gestisce u recuperu di i fugliali da l'URL specificati.run_process()Esegue script Python esterni in modu distaccatu, supprimendu l'output per rimanere discretu.get_output_file_path()Determina a pusizione ideale di u sistema per u schedariu startup.py persistente.remove_self()Orchestra a pulizia dopu l'esecuzione di i fugliali maliziosi iniziali è di e mudificazioni di i pacchetti.simple_shift_encrypt()/simple_shift_decrypt()Funzioni crittografiche persunalizate per oscurà i canali di cumunicazione, cruciali per l'implementazione di DGA.load_libraries()A funzione cintrali chì coordina tuttu u prucessu in parechje tappe, da u scaricamentu iniziale à l'esecuzione finale di u payload è a pulizia.
Ritrattu
Cum'è cù altri pacchetti potenzialmente maliziosi identificati da MEW, u firewall di dipendenza hà prutettu subitu l'utilizatori chì includerianu questi pacchetti maliziosi in e so dipendenze. Dopu a cunferma, avemu seguitu e procedure di notificazione per i dui registri, chì dopu a revisione anu eliminatu i dui pacchetti.





