Un attaccu di dipendenza permette l'esecuzione di codice in PayPal, Microsoft, Apple, Netflix, Uber è altre 30 cumpagnie

Pochi ghjorni fà un metudu sorprendentemente simplice hè statu liberatu chì permette attaccà e dipendenze in l'applicazioni chì sò sviluppati aduprendu repositorii di pacchetti interni. I circadori chì anu identificatu u prublema anu capace di fà corre u vostru còdice nantu à i servitori interni di 35 cumpagnie, cumprese PayPal, Microsoft, Apple, Netflix, Uber, Tesla è Shopify.

I piratoghji sò stati realizati in parte di i prugrammi Bug Bounty, in coordinazione cù e cumpagnie attaccate, è i perpetratori anu digià ricevutu $ 130.000 in bonus per identificà e vulnerabilità.

U metudu hè basatu annantu à u fattu chì parechje cumpagnie utilizanu dipendenze di repositoriu standard di NPM, PyPI è RubyGems in e so applicazioni interne, è dinò dipendenze interne chì ùn sò micca distribuite publicamente o scaricate da i so propri repositori.

U prublema hè chì i gestori di pacchetti cum'è npm, pip è gem pruvanu à scaricà e dipendenze interne di e cumpagnie, ancu da i repositori publichi. Per un attaccu, basta à definisce i nomi di i pacchetti cù dipendenze interne è creà i vostri pacchetti cù i listessi nomi in i repositorii publichi di NPM, PyPI è RubyGems.

U prublema ùn hè micca specificu per NPM, PyPI, è RubyGems, è si manifesta ancu in altri sistemi cum'è NuGet, Maven è Yarn.

L'idea di u metudu prupostu hè stata dopu chì un circadore hà accertatu chì in un codice dispunibule publicamente publicatu in GitHub, parechje cumpagnie ùn eliminanu micca a menzione di dipendenze addiziunali da i so fugliali manifesti adupratu in prughjetti interni o quandu implementanu funzionalità estese. Tracce simili sò state trovate in u codice JavaScript per i servizii web, è ancu in i prughjetti Node.JS, Python è Ruby di parechje cumpagnie.

E perdite principali sò state relative à l'incorporazione di cuntenutu da i fugliali package.json in codice JavaScript dispunibule publicamente durante u prucessu di custruisce, è ancu cù l'usu di elementi di percorsu attuali in chjamate require (), chì ponu esse aduprate per ghjudicà i nomi di dipendenza.

A scansione di parechji milioni di duminii corporativi hà rivelatu diverse migliaia di nomi di pacchetti JavaScript chì ùn eranu micca in u repositoriu NPM. Dopu avè compilatu una basa di dati di nomi di pacchetti interni, u ricercatore hà decisu di fà un esperimentu per pirate l'infrastruttura di e cumpagnie chì participanu à i prugrammi Bug Bounty. I risultati sò stati sorprendentemente efficaci è u circadore hà sappiutu fà corre u so còdice nantu à parechji urdinatori di sviluppu è servitori incaricati di custruisce o di pruvà basatu annantu à sistemi d'integrazione cuntinua.

Quandu si scaricavanu e dipendenze, i gestori di pacchetti npm, pip è gem installavanu principalmente pacchetti da i repositori publici primari NPM, PyPI è RubyGems, chì eranu cunsiderati cum'è una priorità superiore.

A presenza di pacchetti simili cù i listessi nomi in i repositori di l'imprese private hè stata ignorata senza mustrà alcun avvertimentu o causà crash chì puderia attirà l'attenzione di l'amministratori. In PyPI, a priorità di scaricamentu hè stata influenzata da u numeru di versione (indipendentemente da u repositoriu, a versione più recente di u pacchettu hè stata scaricata). In NPM è RubyGems, a priorità era solu dipendente di u repositoriu.

U ricercatore hà piazzatu pacchetti in repositori NPM, PyPI è RubyGems chì si intersecanu cù i nomi di e dipendenze interne trovate, aghjunghjendu codice à u script chì esegue prima l'installazione (preinstallatu in NPM) per raccoglie informazioni nantu à u sistema è invià l'infurmazioni ricevutu à l'ospite esternu.

Per trasmette informazioni nantu à u successu di u pirate, bypassate i firewall chì bluccanu u trafficu esternu, u metudu di urganizazione di cumunicazioni di canali piattati annantu à u protocolu DNS. U codice chì era in esecuzione risolta l'ospite in u duminiu attaccante sottu u cuntrollu di u duminiu attaccante, chì hà permessu di raccoglie informazioni nantu à operazioni riesciute nantu à u servitore DNS. L'infurmazioni nantu à l'ospitu, u nome d'utilizatore è u percorsu attuale sò stati passati.

U 75% di tutte l'esecuzioni di codice arregistrati sò stati assuciati à i download di pacchetti NPM, principalmente per via di u fattu chì ci eranu significativamente più nomi di moduli JavaScript internu chè nomi di dipendenza Python è Ruby.

source: https://medium.com/


U cuntenutu di l'articulu aderisce à i nostri principii di etica edituriale. Per signalà un errore cliccate quì.

Sianu the first to comment

Lasciate u vostru cummentariu

U vostru indirizzu email ùn esse publicatu.

*

*

  1. Responsabile di i dati: Miguel Ángel Gatón
  2. Scopu di i dati: Cuntrolla SPAM, gestione di cumenti.
  3. Legitimazione: U vostru accunsentu
  4. Cumunicazione di i dati: I dati ùn seranu micca cumunicati à terzi, eccettu per obbligazione legale.
  5. Archiviazione di dati: Base di dati ospitata da Occentus Networks (UE)
  6. Diritti: In ogni mumentu pudete limità, recuperà è cancellà e vostre informazioni.