Upwind: pacchetti npm AsyncAPI colpiti da attacco alla catena di fornitura
Gli sviluppatori spesso presumono che i pacchetti pubblicati attraverso canali ufficiali abbiano superato un processo di rilascio sicuro. Questa assunzione è fondamentale per lo sviluppo software moderno, dove i componenti open source vengono regolarmente integrati nelle applicazioni attraverso la gestione automatizzata delle dipendenze. Una nuova indagine suggerisce che la fiducia può essere messa in discussione quando gli attaccanti ottengono accesso ai sistemi responsabili della pubblicazione del software.
La società di sicurezza cloud Upwind ha rilasciato i risultati di un'indagine su un attacco coordinato che ha colpito più pacchetti ufficiali AsyncAPI npm. Secondo l'azienda, l'attività si è estesa oltre un singolo pacchetto compromesso e ha coinvolto più repository e pipeline di pubblicazione, consentendo la distribuzione di codice malevolo attraverso canali di rilascio legittimi.
L'indagine ha rivelato più punti di compromesso
La ricerca di Upwind ha scoperto che la campagna ha colpito diverse parti dell'ecosistema AsyncAPI.
I ricercatori hanno confermato che gli attaccanti hanno compromesso due diversi repository GitHub e successivamente hanno identificato una seconda compromissione di repository indipendente. Hanno anche osservato attacchi contro diversi rami di rilascio e l'abuso di diverse identità di pubblicazione OpenID Connect (OIDC) all'interno di un intervallo di tempo relativamente breve.
Presi insieme, questi risultati suggeriscono che gli attaccanti hanno ottenuto accesso a più pipeline di pubblicazione piuttosto che sfruttare una singola vulnerabilità nel processo di rilascio.
L'indagine conclude che l'operazione ha rappresentato una campagna coordinata mirata al processo di rilascio del software stesso piuttosto che a una compromissione occasionale di un pacchetto.
Il codice malevolo è arrivato attraverso flussi di lavoro previsti
Un aspetto della campagna che ha attirato l'attenzione dei ricercatori è stato come il codice malevolo sia stato eseguito dopo che i pacchetti compromessi sono stati utilizzati.
Secondo Upwind, gli attaccanti si sono allontanati da tecniche comunemente associate agli attacchi alla catena di fornitura npm. Invece di utilizzare script preinstall o postinstall, il codice malevolo è stato eseguito durante normali importazioni di pacchetti o attraverso percorsi di esecuzione alternativi.
Poiché queste azioni si sono verificate come parte del comportamento previsto dell'applicazione, l'attività sarebbe stata più difficile da identificare utilizzando strumenti di sicurezza che si concentrano principalmente sul monitoraggio dell'installazione dei pacchetti.
I ricercatori hanno anche osservato che, sebbene i metodi di esecuzione variassero nel corso della campagna, gli attaccanti hanno ripetutamente riutilizzato la stessa infrastruttura e modelli di malware attraverso i repository compromessi e le pipeline di pubblicazione.
Le implicazioni si estendono oltre i manutentori dei pacchetti
I pacchetti colpiti sono stati pubblicati attraverso canali ufficiali e apparivano legittimi per le organizzazioni che si affidavano a pratiche standard di gestione delle dipendenze.
Ciò significa che l'impatto non si è limitato ai repository stessi. Upwind ha dichiarato che le workstation degli sviluppatori e gli ambienti CI/CD che hanno importato i pacchetti colpiti dovrebbero essere trattati come potenzialmente compromessi poiché il codice malevolo era progettato per essere eseguito durante l'uso routine dei pacchetti.
“Questo non era solo un pacchetto malevolo - era una compromissione della fiducia,” ha detto Amiram Shachar, CEO e co-fondatore di Upwind. “Molti pacchetti ufficiali AsyncAPI sono stati pubblicati con codice backdoored proveniente da repository e pipeline di pubblicazione separate, dimostrando che gli attaccanti stanno sempre più mirando al processo di rilascio del software stesso.”
I risultati sottolineano come gli attacchi contro la distribuzione del software possano influenzare gli utenti a valle anche quando ottengono pacchetti da fonti legittime.
Revisione delle dipendenze dopo l'incidente
A seguito dell'indagine, Upwind raccomanda che le organizzazioni rivedano se le versioni dei pacchetti colpiti siano entrate nei loro ambienti di sviluppo.
L'azienda consiglia di verificare le versioni esatte delle dipendenze invece di presumere che le versioni attuali siano sicure. Raccomanda anche di fissare le dipendenze a versioni verificate e di rivedere gli aggiornamenti delle dipendenze, i lockfile e i Software Bills of Materials (SBOM) per eventuali cambiamenti inaspettati.
Le organizzazioni dovrebbero anche considerare le workstation degli sviluppatori e i runner CI/CD che hanno importato i pacchetti colpiti come potenzialmente compromessi e ruotare eventuali credenziali che erano accessibili da quegli ambienti.
Visibilità attraverso il ciclo di vita dello sviluppo
Upwind afferma che l'indagine dimostra perché il monitoraggio del software durante il ciclo di vita dello sviluppo sta diventando sempre più importante. Poiché gli attaccanti si allontanano da tecniche che si eseguono durante l'installazione e invece attivano codice malevolo durante il normale comportamento dell'applicazione, le organizzazioni hanno bisogno di visibilità sul software dopo che è stato introdotto negli ambienti di sviluppo.
L'azienda ha dichiarato di continuare a monitorare la campagna mentre incoraggia le organizzazioni a rafforzare le pratiche di sicurezza della catena di fornitura del software poiché gli attacchi mirati ai processi di rilascio del software continuano a evolversi.
Altri articoli
Upwind: pacchetti npm AsyncAPI colpiti da attacco alla catena di fornitura
Upwind traccia più pacchetti npm AsyncAPI compromessi in un attacco coordinato alla catena di approvvigionamento che mira ai pipeline di rilascio del software e alle identità di pubblicazione.
