Ehi, comunità di sviluppatori! Non appena hai bandito l'ultimo spettro dal codice, il prossimo incubo bussa alla porta sotto forma di un Una versione più aggressiva di famigerati vermi npm, Questa volta, l'analista di sicurezza in nome di Shai-Hulud 2.0 battezzati.
E questa volta non è solo più veloce, ma ha anche una preda ancora più grande nel suo mirino: A proposito di 27.000 dati di accesso sono già stati rubati, e il verme sta ora anche attaccando prominente Piattaforme low-code Come Zapier e Postman. Sembra che gli aggressori abbiano imparato dai loro errori e abbiano elegantemente circumnavigato tutti i colli di bottiglia della prima ondata.
Diamo un'occhiata a ciò che sta succedendo (di nuovo) nell'ecosistema npm, quali pacchetti sono interessati e cosa devi fare ora per impedire a questo sandworm di strappare le credenziali.
collo di bottiglia eliminato: La seconda ondata è più aggressiva
Gli stessi aggressori dietro Shai-Hulud 2.0 Proprio come la prima volta, non è ancora chiaro, ma il risultato è lo stesso: Una massiccia infestazione di pacchetti npm.
Lunedì pomeriggio erano secondo heise.de già Più di 425 npm pacchetti infetti, che insieme 100 milioni di download mensili Andiamo, andiamo. Tra questi ci sono pesci molto spessi, come pacchetti di:
- AsyncAPI
- Domini ENS (Servizio di denominazione Ethereum)
- Varie API, piattaforme low e no-code, in particolare Zapier e postino (Guarda la lista qui sotto, è terribile.)
Il worm è apparso nel fine settimana (21-23 novembre), con i pacchetti go-template e vari repository sotto AsyncAPI colpiti per primi.
Come ha fatto a rubare i segreti?
Il genio (e l'orrore!) di questa nuova versione sta nel modo in cui vengono pubblicate le credenziali rubate:
- Il malware prende il controllo di un repository.
- Cerca i dati di accesso (segreti).
- I dati rubati saranno Pubblicato direttamente sotto l'account della vittima su Github.
Il nuovo repository dove la terra dei Segreti porta l'inconfondibile titolo "Sha1-Hulud: la Seconda Venuta». Così, gli aggressori hanno bypassato il più grande punto debole dell'ultima epidemia: A quel tempo, hanno utilizzato una piattaforma webhook, il cui endpoint è stato rapidamente bloccato. Ora usano Github stesso come luogo di stoccaggio centrale, che rende il lavoro di pulizia per Github una battaglia contro i mulini a vento, poiché vengono costantemente create nuove directory di codice. Lunedì pomeriggio erano già oltre 27.800!
Le tattiche: Flussi di lavoro usurati e server C&C
Shai-Hulud 2.0 è abbastanza intelligentemente costruito e utilizza diversi meccanismi per rimanere bloccato:
- Backdoor per C&C: Diversi flussi di lavoro Github sono responsabili dell'intercettazione dei dati di accesso e dell'installazione di Backdoor sulla macchina infetta. Questa backdoor è controllata dal Funzione di discussione nei repository infetti, un server Command&Control self-hosted (C&C) direttamente su Github!
- Il «codice formatore»: Un secondo flusso di lavoro con il nome dal suono innocuo "Code Formatter" cerca i segreti dell'account Github attaccato e li carica nel Formato JSON in alto.
- Multipiattaforma: Il worm non è schizzinoso e appare con codice dannoso personalizzato Linux, Windows e macOS per sostenere.
A proposito, il tempismo è notevole: L'attacco arriva pochi giorni prima di npm am 9. dicembre Abolire i "token classici" per l'autenticazione. Gli sviluppatori di Sha1-Hulud probabilmente volevano prestare nuovamente attenzione prima che questo cambiamento di sicurezza entrasse in vigore.
Misure di emergenza: Cosa devi fare ora
La pulizia è in pieno svolgimento, ma tutti devono essere vigili e agire ora! Wizz, Koi e Aikido hanno rapidamente segnalato la minaccia.
1. Test e Smaltimento
- Controlla la tua infrastruttura: Controllare l'intera infrastruttura di sviluppo per segni sospetti e, soprattutto, per l'uso di quelli qui sotto. Pacchetti infetti noti.
- Smaltire immediatamente: Se si utilizza uno dei pacchetti: Smaltirlo immediatamente dal tuo progetto.
- Aggiornamenti da: Disattivare gli aggiornamenti automatici dei pacchetti fino a quando la situazione non si calma.
2. Ruota tutto (importante!)
Se hai il minimo sospetto di un'infezione o hai usato un pacchetto interessato, questo è assolutamente fondamentale:
- Ruota tutti i dati di accesso! Ciò non vale solo per Github e npm, ma anche per gli account con iperscalatori come GCP, AWS e Azure. Tutti i segreti devono essere nuovi!
Gli specialisti sono ancora cauti sull'attribuzione, ma i metodi sono simili al predecessore. E' ora di mettere gli scudi!
Elenco dei pacchetti interessati (selezione & più importante)
Per aiutarti a verificare rapidamente se sei interessato, ecco una selezione dei pacchetti infetti più importanti e importanti segnalati lunedì pomeriggio:
- @asyncapi/ (molti pacchetti interessati)
- @ensdomains/ (Quasi tutti i pacchetti interessati!)
- @posthog/ (Molti pacchetti interessati!)
- @postman/ (Molti pacchetti interessati!)
- @trigo/ (Molti pacchetti interessati!)
- @zapier/ (molti pacchetti interessati, incl.
zapier-platform-cli) go-templateposthog-js- ...e sfortunatamente molti, molti Di più!
L'elenco completo è enorme! Assicurati di controllarli se usi una di queste tecnologie:
Collegamento a koi.ai, in alternativa Collegamento a aikido.dev Certo, ma i più importanti finora sono menzionati sopra. Dovresti confrontare le tue dipendenze con l'elenco ufficiale e attuale da solo!
contromisure
TL: RD
Lista di controllo di emergenza Shai-Hulud 2.0 per i team di sviluppatori
Questi passaggi sono fondamentali per fermare un'infezione in corso e prevenire ulteriori danni.
I. Rilevazione & Isolamento
| azione | dettaglio |
| Controlla tutte le dipendenze | Come quello attualmente in uso npm Pacchetti contenenti l'elenco completo dei pacchetti infetti (in particolare go-template, AsyncAPI, ENS, postino, Zapier pacchetti). |
| Isolare i pacchetti infetti | Tutti i pacchetti infetti immediatamente Rimuovi dalle dipendenze del progetto. |
| Interrompere gli aggiornamenti automatici | Disabilita temporaneamente tutti gli aggiornamenti automatici dei pacchetti per prevenire la reinfezione. |
| Eseguire la scansione del sistema | Esegue scansioni di virus sulle macchine di sviluppo mentre il worm installa backdoor. |
II. Rotazione critica dei dati di accesso (segreti)
Adozione: Supponendo che tutti i segreti utilizzati da una macchina infetta o in un deposito infetto, compromesso lo sono.
| Piattaforma/servizio | Cosa ruotare? |
| npm | Tutti token npm i membri del team, in particolare i token di pubblicazione. |
| GitHub/GitLab/Bitbucket | Tutti Token di accesso personale (PAT) e Chiave di SSH gli utenti interessati. |
| Strumenti CI/CD | Tutti i segreti utilizzati nei flussi di lavoro o nelle pipeline (GitHub Azioni Segreti, Jenkins, variabili CI di GitLab, ecc.). |
| Fornitore di servizi cloud | Tutti Chiavi API, Chiavi di accesso, Chiavi segrete (ad esempio AWS, GCP, Azure) devono essere rinnovati. |
| Servizi interni | Tutte le credenziali del database, i token Slack o altre chiavi API interne archiviate sui sistemi interessati. |
III. Recupero del sistema & prevenzione
| azione | dettaglio |
| Reinstallazione di sistemi | Idealmente, reinstallare tutte le macchine di sviluppo interessate per assicurarsi che le backdoor vengano rimosse. |
| Autenticazione a più fattori (MFA) | Verifica che l'assistenza macrofinanziaria sia abilitata e applicata su tutti gli account critici (npm, GitHub, Cloud). |
| Principio del privilegio minimo | Assicura che solo i token CI/CD e i token personali Diritti minimamente necessari hanno. |
| Fonti di monitoraggio | Guarda gli aggiornamenti ufficiali da npm, GitHub e ricercatori di sicurezza (Wizz, Koi, Aikido). |
Ti senti familiare? Il giorno delle Marmotte? E' perché abbiamo l'intero Ne ho avuto uno a settembre. Dopo tutto, questo e simili infestazioni finisce al più tardi dopo il 9. dicembre, quando Github implementa le misure di sicurezza annunciate.
Prepara il tuo team per iniziare con questa lista.
Stai al sicuro e controlla i tuoi deps! Il fine settimana potrebbe essere finito, ma il lavoro per gli sviluppatori non si ferma mai nella crisi della sicurezza quasi permanente.