Pacchetti Maliziosi Open Source: U Prublema

Pacchetti Maliziosi Open Source: U Prublema

Questu hè u primu episodiu di una seria d'articuli nantu à u tipu più prevalente d'attacchi à a catena di furnimentu di software: quelli chì (abusanu) di un registru publicu di cumpunenti di software, destinati à prughjetti open-source per caricà artefatti chì puderanu esse spartuti cù altri utilizatori. Quandu i malfattori publicanu software maliziosu quì, aduprendu u registru cum'è veiculu per a distribuzione di malware, avemu un attaccu di catena di furnimentu quandu l'urganisazioni vittime installanu o eseguiscenu u cumpunente di software infettatu. 

Per simplificà a discussione, parleremu di pacchetti software:, cumpunenti in una forma imballata pruduciuti da terze parti. Questu include micca solu i cumpunenti utilizati da i gestori di pacchetti cum'è NPM o Poetry, ma ancu cumpunenti di u sistema operativu cumprese biblioteche è binari eseguibili, imagine di cuntenitori, è macchine virtuali, o estensioni di strumenti per strumenti di sviluppu, custruzzione è implementazione. Avemu vistu pacchetti maliziosi in ogni locu. I cibercriminali ùn si ne importanu micca: sò incantati da l'alternative furnite da l'infrastrutture software muderne è utilizanu u registru è u strumentu chì si adatta megliu à a so intenzione. Dunque, ricordate chì i pacchetti software sò una abbreviazione per l'imagine di container, i pacchetti binari, i repositori open-source è l'estensioni o plugin di ogni tipu (IDE, CI/CD sistemi, strumenti di custruzzione). Tutti sò abitualmente attaccati.

A seria averà 5 episodii:

  • Chì ghjè u prublema cù i pacchetti Open Source? Questu hè u tema di stu post. Perchè i criminali di ogni tipu publicanu pacchetti maliziosi? Perchè mi devu preoccupà?
  • Anatomia di i pacchetti maliziosi: Chì sò e tendenze? In questu episodiu, ci cuncentraremu nantu à a minaccia chì monitorizemu cù u nostru sistema MEW, ghjornu dopu ghjornu. Cù un grande rumore di fondu per via di un gran numeru di pacchetti maliziosi chì utilizanu typosquatting o cunfusione di dipendenza, una percentuale più chjuca di attacchi sò assai più insidiosi è rapprisentanu un risicu più grande. Cumu hè cambiatu u cumpurtamentu di i malfattori in quantu à u sistema operativu in u passatu recente? Chì sò i numeri? Chì sò e tattiche, e tecniche è e procedure aduprate, è l'azzioni dannose viste?
  • Prutezzione contr'à i pacchetti maliziosi Open Source: Ciò chì ùn funziona (micca)A maiò parte di i prufessiunali attenti à a sicurità anu idee nantu à cumu trattà sta minaccia. Avemu intesu i gestori di a sicurità dì senza esitazione chì SCA L'arnesi vi dicenu digià quandu una versione di pacchettu hè un malware. O chì dipendenu da cumpunenti software ben cunnisciuti è assai rivisti, induve qualsiasi malware seria rilevatu è eliminatu prontamente. Ch'elli utilizanu versioni minori / patch aperte per ottene automaticamente correzioni di vulnerabilità, è questu hè u modu currettu è cunsigliatu per riduce u risicu nantu à e dipendenze open source, seguendu u principiu "patch prestu, patch spessu". In questu episodiu, rivederemu perchè queste idee sò sbagliate, è cumu tali idee sbagliate cuntribuiscenu à a pupularità di stu mecanismu d'attaccu, è à un risicu schiacciante chì l'urganisazioni stanu sperimentendu. Finiremu cù ciò chì funziona, è quale hè u sforzu è e risorse implicate.
  • Pacchetti Maliziosi Open Source: L'Approcciu XygeniIn questu episodiu, presentemu a strategia chì seguitemu in Xygeni per u nostru sistema di Malware Early Warning (MEW). Cumu funziona stu sistema multi-stadio in tempu reale quandu una nova versione di pacchettu hè publicata, cumu si catturanu evidenze da diverse fonti, cumu si face u triage, quali criteri di classificazione seguitemu, è perchè hè ancu necessaria una analisi manuale per cunfirmà a natura di un candidatu à pacchettu maliziosu? Cumu u feedback da e nostre squadre interne è di registru aiuta u sistema à amparà da l'evidenza passata raccolta per riduce i falsi pusitivi à u minimu. È spiegheremu cumu aiutemu NPM, GitHub, PyPI è altre infrastrutture chjave in l'ecosistemi open source open source à riduce u tempu di permanenza.
  • Sfruttendu l'Open Source: Ciò chì si pò aspettà da i CattiviA seria finisce cuncentrandosi nantu à l'azzioni più recenti chì l'avversarii stanu aduprendu per rende l'attacchi più furtivi, più difficiuli da rilevà, più mirati contr'à industrie specifiche, è estraendu più benefici da sta classa d'attacchi. L'attacchi di ransomware saranu realizati cù questu veiculu? Cumu i cattivi utilizanu strumenti di IA per furnisce pacchetti maliziosi più sofisticati? I prughjetti più populari sò in periculu? Questu hè per dà à i lettori una idea di sta corsa à l'armamenti, è ciò chì si pò aspittà à cortu termine (seconda metà di u 2024) è à mediu termine (2025). Ampareremu cumu attacchi cum'è u recente Porta posteriore XZ-Utils, o l'attaccu di campà fora di a terra contr'à custruttore d'elettroni In marzu 2024 mostranu chì duvemu stà vigilanti nantu à cumu si evolvenu l'avversarii. 

Apremu a scena cù u primu episodiu: Chì succede cù i pacchetti open source maliziosi?

Chì ghjè u prublema cù i pacchetti Open Source?

In l'ultimi anni, i malfattori di ogni tipu anu utilizatu registri di software open source open source per trasmette cumpurtamenti maliziosi. Queste attività sò vechje quant'è l'open source, ma a so frequenza hè esplosa in l'ultimi trè anni. 

Publicazione di cumpunenti maliziosi in registri publichi (attacchi basati nantu à a dipendenza) hè una guerra di guerriglia asimmetrica chì l'attori di minacce utilizanu per distribuisce malware, sfruttendu a fiducia chì l'urganisazioni mettenu in cumpunenti open source chì venenu da sviluppatori scunnisciuti (ricurdatevi di u dipendenza xkcd comic?). Siccomu vi fidate di i pacchetti è ùn vi dispiace micca di rivedere manualmente u cuntenutu di u pacchettu è e so dipendenze, sti attacchi sò straordinariamente efficaci. È l'asimmetria vene perchè ponu esse largamente automatizati è i malfattori ùn anu micca bisognu d'interagisce direttamente cù a vittima. Bastanu à carica u pacchettu in u registru publicu è u lascianu andà.

Pacchetti maliziosi hè cresciutu di 6 volte in u 2022, è hà cuntinuatu à cresce di un fattore 2.5x in u 2023. L'annu scorsu sò stati visti ben 245 000 pacchetti maliziosi, una cifra chì più chè raddoppia u numeru tutale di l'anni precedenti cumminati. Questa hè una crescita esponenziale! Da a rimuzione di pacchetti cum'è malware cunfirmatu in centinaie durante u 2021 è in migliaia durante u 2022, avemu vistu assai più "rumore" di fondu durante u 2023, cù un ritmu simile per questu annu. È piattu in quellu fondu causatu da cibercriminali micca sofisticati chì seguitanu a "via di a minima resistenza", una minurità di attacchi di altu prufilu anu righjuntu i tituli ancu in i media generali.

Perchè questu hè un prublema di tale magnitudine? Ci hè un eccessu di fiducia in tutta a catena. U software open-source hè distribuitu cù u so codice surghjente, è liberatu sottu una licenza data. Iè, qualchissia pò ispezionà u codice surghjente; ma quale u face in generale? Quale, dopu avè ispezionatu chì u software ùn hà micca malware, custruisce u software da i fonti? Quale, prima di passà u cumpunente imballatu (cunnisciutu ancu cum'è a U pacchettu) à valle di u gestore di pacchetti o di u strumentu di compilazione, assicura chì u pacchettu ùn sia micca pienu di malware è currisponde à u codice surghjente suppostu da u quale duveria vene?

Perchè l'infrastruttura permette attacchi cusì faciuli ?

Registri di pacchetti sò aperti, spessu richiedendu una verificazione minima di l'identità di l'editore. "Qualchissia hè benvenutu à pubblicà u so software quì!" L'asticella per l'attaccanti hè bassa: utilizanu indirizzi email dispunibili è conti GitHubgithub dispunibili per creà centinaie di pacchetti maliziosi in campagne brevi, simili à u phishing. Solu per quelli mirati hè necessaria una sofisticazione più alta: Avemu vistu ancu creà un repositoriu di fonte GitHub credibile cù parechje stelle è commits da parechji cuntributori falsi è altre metriche di pupularità è mantenimentu. Uttene osservatori di stelle è reputazione da cuntributi falsi ùn hè micca difficiule d'automatizà. Avemu vistu abusi nantu à l'infrastrutture di software apertu di ogni tipu, micca solu malware, cum'è u incidente di u protocolu di u tè.

I gestori di pacchetti sò stati cuncipiti per a facilità d'usu è micca per a sicurezza.Puderanu eseguisce scripts prima è dopu l'installazione (qualchì volta hè necessariu cumpilà u codice nativu per una biblioteca). Inoltre, Gestori di pacchetti installà pacchetti da parechje fonti, è qualchì volta u predefinitu hè di utilizà registri publichi. Ùn anu micca verificatu una discrepanza trà i metadati in a dumanda di publicazione è i metadati in u pacchettu stessu.

E dipendenze sò annidate è formanu un graficu. In certi ecosistemi cum'è Node (JavaScript), e dipendenze à piccula granularità s'accumulanu à centinaie o migliaia. Una cosa hè di avè un cuntrollu strettu nantu à e dipendenze dirette dichjarate da i mo prughjetti software, ma dipendenze transitive sò più difficiuli da cuntrullà. L'open source hà seguitu "l'amichi di i mo amichi sò i mo amichi". A fratellanza hè a norma in u salvaticu Estremo Oriente! L'attori di minacce sanu questu è nascondenu prufundamente u cumpurtamentu maliziosu in dipendenze oscure chì sò spessu scunnisciute. Questu hè statu u casu cù u flussu d'eventi incidente chì hà cum'è scopu Portafogliu di copagamentu

Cusì hà funzionatu u software open source dapoi a so creazione. Ùn cambierà micca assai. Certi registri di pacchetti esigenu à u megliu l'autenticazione à dui fattori, è spessu solu per i pacchetti i più populari. Certi registri furniscenu scopi, un namespace pussedutu da una urganizazione verificata, ma tragicamente altri ùn a supportanu micca (PyPI) o a rendenu facultativa (NPM).  Hè interessante à nutà chì ancu un schema di screening simplice (basatu annantu à u cuntrollu di u DNS o di u repositoriu/urganizazione GitHub chì currisponde à l'ID di u gruppu) è fà Firme PGP obbligatorie per tutti l'artefatti eccettu i checksum elimina a maiò parte di u "rumore", i pacchetti maliziosi simili à u typosquatting, è limita assai di cunfusione di dipendenzaL'attacchi sofisticati sò pussibuli ma assai più difficiuli, cù solu uni pochi cum'è u com.github.codingandcoding: maven-compiler-plugin cunnisciutu per Maven Central. È micca tutti i registri maven seguitanu e stesse pratiche!

I cuntrolli di sicurezza nantu à i gestori di pacchetti ponu aggravà ma ùn impediscenu micca l'attacchi di dipendenza. U prublema cù l'autenticazione multifattore hè chì per l'automatizazione, e credenziali derivate cum'è i gettoni d'accessu o e chjave APIapi sò generate per i conti da aduprà in e chjamate APIapi fatte da script d'automatizazione, senza alcun supportu di l'utente interattivu chì furnisce un secondu fattore. L'MFA hè bonu per prutege i conti di l'utilizatori da e fughe di password, ma i gettoni d'accessu o e chjave APIapi generati devenu esse prutetti mentre sò attivi, o u so pruprietariu serà impersonatu da l'avversarii. Una grande frazione di e campagne di catena di furnimentu basate nantu à i pacchetti principia cù una chjave/gettoniu filtratu. Basta à ricurdà incidenti cum'è Ledger, 3CX, è assai altri, induve l'autenticazioni micca interattive sò state prima esfiltrate in una intrusione preliminare per lancià l'attaccu à a catena di furnimentu.

A risposta data à sta minaccia ùn hè stata abbastanza robusta. In u terzu episodiu, ci cuncentreremu nantu à ciò chì hà funzionatu, è ciò chì hà fiascatu miseramente. L'industria hà bisognu di travaglià cullettivamente nantu à u standards, prucessi, furmazione è strumenti per mitigà i risichi per e catene di furnimentu mundiali. Questu ùn hè micca un prublema chì una sola urganizazione pò risolve da sola.

Per finisce sta sezione, u malintesi cruciale: parlemu di malicious pacchetti, micca vulnerable quelli. E vulnerabilità venenu da errori di cuncepimentu o di codificazione, introdutti accidentalmente, senza mala intenzione. E vulnerabilità ponu esse sfruttate, ma parechje ùn sò micca. I pacchetti maliziosi sò sempre intenzionali, è ci hè una sfruttabilità di 100% s'elli sò eseguiti. Nisun risicu paragunabile! Dunque Hè paradossale di vede quanti sforzi sò fatti per rilevà è mitigà e vulnerabilità, è a mancanza di misure equivalenti per i cumpunenti maliziosi.

"Pigliemu a sicurità seriamente"

Pacchetti Maliziosi Open Source: U Problema 2

Imaginemu l'abitudine Acme CorporationAcme, un fornitore maiò per WileCoyote.com, hà a maiò parte di u so software chì vene da terze parti, cù più di l'80% da prughjetti open-source. Producenu software per usu internu, ma furniscenu ancu software per i so partenarii, fornitori è clienti / utilizatori finali. Acme hà software scrittu in Go, JavaScript, Java, C# è Python, è esegue a maiò parte di u so software in u cloud, sottu à cluster Kubernetes. Acme custruisce e so immagini persunalizate da immagini di basa pigliate da Docker Hub è altri registri. È spartenu ancu alcune biblioteche, pacchetti è immagini di container in registri publichi.

Acme piglia a sicurità seriamente. Sò abbastanza cuscenti di u prublema di open source security, è u risicu ch'ellu porta. Tutti i sviluppatori, i gestori di sistemi è l'ingegneri DevOpsdevops utilizanu quelle piccule chjave crittografice carine cum'è autenticazione di secondu fattore. Tutti commitI repositori di codice sò firmati, a prutezzione di e branche hè attivata cù revisioni di codice obbligatorie, CI/CD chjusi, sicreti almacenati in una volta secreta, è cù un registru internu chì riflette parzialmente i registri esterni induve sò almacenati solu i cumpunenti permessi, in lista bianca. Hè necessariu chì u software custruitu da Acme pigli dipendenze di terze parti da questu registru. 

Probabilmente a maiò parte di l'urganisazioni si adattanu à questu prufilu. Caru lettore, u vostru si adatta certamente se site digià quì, nò?

Poi un ghjornu sfortunatu, un impurtante sviluppatore frontend à Acme corse npm installà acme-cute-lib, scurdendu chì @acme/cute-lib era a dipendenza cù u scopu ghjustu. L'errore esattu ùn hè micca impurtante, parechje cose ponu andà male ancu quandu si assume un cuntrollu perfettu di u ciclu di vita di u software. U nostru sviluppatore ùn sapia micca chì un gruppu APT stava mirendu Acme è hà publicatu un cumpunente maliziosu sottu quellu nome, in un modu astutu cusì u cumpurtamentu maliziosu si attiva solu quandu u software hè installatu nantu à l'urdinatori Acme. U pacchettu ùn hè statu rilevatu per settimane dopu a so publicazione. 

Un script d'installazione hè eseguitu chì cerca credenziali (ci eranu parechji gettoni d'accessu interessanti in u laptop di u nostru sviluppatore), permettendu l'accessu à i repositori di software interni, è u repositoriu internu sopra menzionatu, chì benintesa hè accessibile solu via VPN. U codice maliziosu hè riesciutu à aduprà a cunnessione VPN esistente è à publicà un cumpunente maliziosu di seconda tappa in u registru internu, affettendu una biblioteca di utilità cumuna spartuta da a maiò parte di u software furnitu da Acme.

Settimane dopu, altre urganisazione chì utilizavanu l'arnesi publicati da Acme anu cuminciatu à vede un trafficu stranu nantu à e so rete, cù u trafficu chì utilizava u protocolu Acme ma direttu à ospiti chì s'assumigliavanu à u duminiu Acme. U trafficu era criptatu, ma l'arnesi di monitoraghju di u sistema anu trovu accessu à fugliali inaspettati è l'esecuzione di prucessi chì parenu cumandamenti di sistema, ma chì finiscenu per eseguisce eseguibili scaricati. 

U restu hè storia: Acme hà prima nigatu chì un tale cumpurtamentu fussi imputabile à elli è chì tutte e misure di sicurezza eranu in piazza. Solu dopu chì i media di cibersecurità anu cuminciatu à dumandà perchè a fonte di u cumpurtamentu rilevatu era urighjinaria da i cumpunenti di Acme, è l'analisi di sicurezza hà publicatu quantu eranu pieni di malware furtivu quelli cumpunenti, Acme hà avutu à ricunnosce l'incidentu è hà chjamatu una sucietà di risposta à l'incidenti. Una campagna di marketing negativa chì hà minatu a fiducia guadagnata duramente in un secondu.Acme era à una installazione npm di distanza da di.saster« era un titulu cumunu. Dopu, e cause è i cuntratti annullati anu seguitu l'esempiu.

Vedete similitudini cù incidenti passati cunnisciuti? Acme hè cascata in un incidente di catena di furnimentu in duie fasi, aduprendu una mistura di cunfusione di dipendenza / typosquatting attacchi chì anu utilizatu una stazione di travagliu di sviluppatore cum'è testa di ponte per infettà cumpunenti chì sò finiti in software utilizatu da terze parti. Cumu si puderia impedisce o mitigà questu? 

Perchè i pacchetti avvelenati sò cusì populari

Questu incidente ipoteticu mostra chì ancu cù un approcciu raghjonevule à a sicurezza open-source, l'urganisazioni anu bisognu di misure specifiche per evità di cascà vittime di malware in i cumpunenti open-source. Schematicamente, l'attore di minaccia pò:

  • Crea un novu pacchettu (seguendu i cunnisciuti percorsi di typosquatting o di cunfusione di dipendenze, questu hè u percorsu u più attraversatu da i cattivi in ​​vulume);
  • Pruvate à infettà unu esistente, sia iniettendulu in u codice surghjente, sia pruvendu à dissimulallu cum'è cuntributore via pull request, o aduprendu l'ingegneria suciale per diventà un mantenitore (cum'è "Jao Tan" hà fattu in XZ Backdoor o right9ctrl L'utilizatore di GitHub hà fattu in u flussu d'eventi incidente in u vaghjimu di u 2018), o ottenendu credenziali di repositoriu open source è impersonendu u mantenitore;
  • Injectà malware durante a compilazione di u pacchettu, sia eseguendu un script di compilazione maliziosu, o interferendu cù i scaricamenti di pacchetti cù intercettazioni man-in-the-middle (fortunatamente, TLS hè avà sempre necessariu in a maiò parte di i registri).
  • Iniettate u cumpunente imballatu direttamente in u registru, tipicamente catturendu e credenziali di u registru (l'alternativa preferita per parechji attacchi sofisticati cum'è quellu di Acme, induve a stazione di travagliu cumprumessa in a prima tappa avia u token d'accessu internu à u registru, per esempiu in u solitu .env or ~/.m2/settings.xml: i malfattori sanu induve circà i sicreti). E vulnerabilità in i registri sò state ancu sfruttate. 

Avvelenà i registri cù malware hè a basa di l'attacchi di dipendenza. Nunda di novu sottu à u sole: a so prevalenza hè splusata, ma e stesse tecniche funzionanu avà cum'è cinque anni fà.  

U pacchettu maliziosu pò operà à l'installazione, durante a custruzzione di u software, o à l'esecuzione. È u cumpurtamentu varieghja da l'esfiltrazione di l'infurmazioni, per esempiu l'estrazione di sicreti per un tentativu di seconda fase, à l'estrazione di u codice surghjente, abbandunendu malware supplementari. In u prossimu episodiu, dissezioneremu i pacchetti maliziosi è cumu sò publicati.

In seguita di lettura

U prossimu episodiu Anatomia di i pacchetti maliziosi: Chì sò e tendenze? Ci cuncentreremu nantu à i casi veri chì monitorizemu cù u nostru sistema di Malware Early Warning, ghjornu dopu ghjornu. Esamineremu quali tipi di malware sò stati visti, è quali tattiche, tecniche è prucedure sò e preferite. Esamineremu l'offuscazione è cumu cercanu di piattassi da i revisori potenziali, e tecniche di evasione per evità a rilevazione, è cumu si evolvenu cù a telemetria è u muvimentu laterale. Per piacè, state sintonizzati! 

Vede ancu

Anatomia di i pacchetti maliziosi: Chì sò e tendenze?

Prutezzione contr'à i pacchetti OSS maliziosi: Ciò chì ùn funziona (micca)

sca-tools-software-strumenti-d'analisi-di-cumpusizione
Priorizà, rimedià è assicurà i vostri risichi di software
Uttene u vostru contu gratuitu.
Nisuna carta di creditu necessaria.

Assicurà u vostru sviluppu è a consegna di software

cù a Suite di Prodotti Xygeni