Pacchetti NPM e PyPI malevoli: identificazione, analisi e contromisure
I ricercatori di cybersecurity hanno individuato una serie di pacchetti software malevoli che prendono di mira gli utenti MacOS. Questi pacchetti, presenti su Python Package Index (PyPI) e NPM, sono stati analizzati in dettaglio per rivelarne l’intento malevolo e i meccanismi di attacco sofisticati.
GuardDog: Il Guardiano Contro i Pacchetti Malevoli
Nel tardo 2022, è stato rilasciato uno strumento CLI chiamato GuardDog, che utilizza Semgrep e le heuristiche del metadata dei pacchetti per identificare i pacchetti software malevoli in base a schemi comuni.
Nel 2023, GuardDog è stato scalato per scansionare continuamente PyPI, portando all’identificazione e alla valutazione manuale di quasi 1.500 pacchetti malevoli.
Questo sforzo ha portato alla creazione di uno dei più grandi dataset etichettati di pacchetti malevoli disponibili pubblicamente.
Identificazione dei Pacchetti Malevoli
Il primo segnale di allarme è arrivato da un pacchetto chiamato “reallydonothing”, pubblicato l’8 maggio 2024. Questo pacchetto presentava diverse caratteristiche sospette:
- Descrizione vuota
- Unico file Python
- Sovrascrittura del comando
- Esecuzione di comandi OS
Questi indicatori hanno attivato le regole di GuardDog, richiedendo ulteriori indagini.
Analisi dei Pacchetti Malevoli
I pacchetti malevoli, tra cui “reallydonothing”, “jupyter-calendar-extension”, “calendar-extender”, “ReportGenPub” e “Auto-Scrubber”, condividono una struttura standard.
Sono costituiti da un unico file Python, setup.py, che sovrascrive il comando di installazione per eseguire codice malevolo al momento dell’installazione.
Differenze tra i Pacchetti Malevoli Identificati
I pacchetti malevoli identificati differiscono per quanto riguarda i file abbinati, i valori hardcoded e i percorsi in cui vengono lasciati i binari.
| Nome del Pacchetto | Versione | File abbinati | Valori hardcoded | Percorso del Binary Dropped | File creato dopo infezione riuscita |
| reallydonothing | 0.1 | /Library/Application Support/t*/ O/* | railroad, jewel, drown, archive | ~/.local/bin/donothing | /tmp/testing |
| reallydonothing | 0.3 | /Library/Application Support/t*/ O/* | railroad, jewel, drown, archive | ~/.local/bin/donothing | /tmp/testing |
| jupyter-calendar-extension | 0.1 | /Users/Shared/C*/ r/2*/* | craft, ribbon, effect, jacket | ~/.local/bin/jupyter_calendar | /tmp/21cb7184-5e4e-4041-b6db-91688a974c56 |
| calendar-extender | 0.1 | /Users/Shared/C*/ r/2*/* | craft, ribbon, effect, jacket | ~/.local/bin/calendar_extender | /tmp/9bacc561-8485-4731-9c09-7eb4f3fae355 |
| calendar-extender | 0.2 | /Users/Shared/C*/ r/2*/* | craft, ribbon, effect, jacket | ~/.local/bin/calendar_extender | /tmp/21cb7184-5e4e-4041-b6db-91688a974c56 |
| ReportGenPub | 0.1 | /Users/Shared/P*/ c/R*/* | bench, example, assume, reservoir | ~/.local/bin/report_gen | Nessuno |
| ReportGenPub | 0.2 | /Users/Shared/P*/ c/R*/* | bench, example, assume, reservoir | ~/.local/bin/report_gen | Nessuno |
| Auto-Scrubber | 0.1 | /Users/Shared/Videos/ t/2*/* | liberty, seed, novel, structure | ~/.local/bin/AutoScrub | Nessuno |
Valutazione
Questi pacchetti mirano specificamente ai sistemi MacOS, cercando file in directory standard come /Users/Shared e /Library/Application Support.
Gli obiettivi dell’attaccante rimangono oscuri a causa dell’uso di funzioni di hash a senso unico e percorsi di file segreti, rendendo difficile determinare l’URL del payload senza il percorso del file segreto.
Contromisure e Best Practice
La scoperta di questi pacchetti malevoli sottolinea l’importanza di monitorare e analizzare continuamente i repository software.
Strumenti come GuardDog giocano un ruolo cruciale nell’identificazione e mitigazione di tali minacce.
Gli utenti dovrebbero rimanere vigili e aggiornare regolarmente le loro misure di sicurezza per proteggersi da questi attacchi sofisticati.
Suggerimenti, soluzioni, consigli e best practice:
- Monitoraggio continuo: Monitora attivamente i repository software per identificare tempestivamente i pacchetti sospetti.
- Utilizza strumenti di sicurezza: Strumenti come GuardDog possono aiutare a identificare e mitigare le minacce.
- Aggiorna regolarmente: Mantieni aggiornati i tuoi sistemi e i tuoi software per ridurre al minimo le vulnerabilità.
- Esegui controlli regolari: Esegui controlli regolari per verificare la presenza di pacchetti malevoli nei tuoi sistemi.
- Reporta i pacchetti sospetti: Se identifichi un pacchetto sospetto, segnalalo agli amministratori del repository e alla comunità di sicurezza informatica.
- Educa te stesso e il tuo team: Mantieniti informato sulle ultime minacce e best practice di sicurezza informatica.
- Implementa una strategia di sicurezza: Sviluppa e implementa una strategia di sicurezza informatica completa per proteggere il tuo sistema e i tuoi dati.





