Logo Zephyrnet

La catena di fornitura di PHP Packagist è stata avvelenata da un hacker "in cerca di lavoro"

Data:

Abbiamo scritto di PHP Ecosistema pacchettista prima.

Come PyPI per Pythonistas, Gems per i fan di Ruby, NPM per i programmatori JavaScript o LuaRocks per Luaphiles, Packagist è un repository in cui i contributori della community possono pubblicare i dettagli dei pacchetti PHP che hanno creato.

Ciò rende facile per gli altri programmatori PHP entrare in possesso del codice della libreria che desiderano utilizzare nei propri progetti e mantenere tale codice aggiornato automaticamente, se lo desiderano.

A differenza di PyPI, che fornisce i propri server in cui è memorizzato il codice effettivo della libreria (o LuaRocks, che a volte memorizza il codice sorgente del progetto stesso e talvolta si collega ad altri repository), Packagist si collega, ma non ne conserva copie, al codice che si bisogno di scaricare.

C'è un vantaggio nel farlo in questo modo, in particolare che i progetti gestiti tramite servizi di codice sorgente ben noti come GitHub non hanno bisogno di mantenere due copie delle loro versioni ufficiali, il che aiuta a evitare il problema della "deriva della versione" tra il sistema di controllo del codice sorgente e sistema di packaging.

E c'è un aspetto negativo, in particolare che ci sono inevitabilmente due modi diversi in cui i pacchetti potrebbero essere trappole esplosive.

Lo stesso gestore di pacchetti potrebbe essere violato, dove la modifica di un singolo URL potrebbe essere sufficiente per indirizzare erroneamente gli utenti del pacchetto.

Oppure il repository del codice sorgente a cui è collegato potrebbe essere violato, in modo che gli utenti che seguissero quello che sembrava l'URL giusto finissero comunque con contenuti non autorizzati.

Vecchi account considerati dannosi

La sezione attacco (lo chiameremo così, anche se nessun codice esplosivo è stato pubblicato dall'hacker in questione) ha utilizzato quello che si potrebbe chiamare un approccio ibrido.

L'attaccante ha trovato quattro account Packagist vecchi e inattivi per i quali aveva in qualche modo acquisito le password di accesso.

Hanno quindi identificato 14 progetti GitHub a cui erano collegati questi account inattivi e li hanno copiati in un account GitHub appena creato.

Infine, hanno ottimizzato i pacchetti nel sistema Packagist per puntare ai nuovi repository GitHub.

La clonazione dei progetti GitHub è incredibilmente comune. A volte, gli sviluppatori vogliono creare un vero e proprio fork (versione alternativa) del progetto sotto una nuova gestione o che offre funzionalità diverse; altre volte, i progetti biforcuti sembrano essere copiati per quelli che potrebbero essere definiti in modo poco lusinghiero "ragioni volumetriche", facendo sembrare gli account GitHub più grandi, migliori, più occupati e più impegnati con la comunità (se perdonerete il gioco di parole) di quanto non siano in realtà.

Anche se l'hacker potrebbe aver inserito codice canaglia nella sorgente PHP GitHub clonata, come l'aggiunta di tracker, keylogger, backdoor o altri malware, sembra che tutto ciò che hanno modificato sia stato un singolo elemento in ciascun progetto: un file chiamato composer.json.

Questo file include una voce intitolata description, che di solito contiene esattamente ciò che ti aspetteresti di vedere: una stringa di testo che descrive a cosa serve il codice sorgente.

E questo è tutto ciò che il nostro hacker ha modificato, cambiando il testo da qualcosa di informativo, come Project PPP implements the QQQ protocol so you can RRR, così che i loro progetti riportavano invece:

 Pwned da XXX@XXXX.com. Si tratta di applicazioni di sicurezza delle applicazioni, tester di penetrazione, specialista della sicurezza informatica.

La seconda frase, scritta per metà in russo e per metà in inglese, significa:

 Sto cercando un lavoro nella sicurezza delle applicazioni... ecc.

Non possiamo parlare per tutti, ma come vanno i CV (curriculum), non abbiamo trovato questo molto convincente.

Anche il Dice il team di Packagist che tutte le modifiche non autorizzate sono state annullate e che i 14 progetti GitHub clonati non sono stati modificati in nessun altro modo se non per includere la richiesta di assunzione da parte del proprietario.

Per quello che vale, l'account GitHub dell'aspirante esperto di sicurezza delle applicazioni è ancora attivo e contiene ancora quei progetti "forked".

Non sappiamo se GitHub non sia ancora riuscito a eliminare l'account o i progetti o se il sito abbia deciso di non rimuoverli.

Dopotutto, il fork di progetti è comune e consentito (almeno laddove i termini di licenza lo consentono), e sebbene descriva un progetto di codice non dannoso con il testo Pwned by XXXX@XXXX.com è inutile, non è affatto illegale.

Cosa fare?

  • Non farlo. Sicuramente non attirerai l'interesse di alcun datore di lavoro legittimo e (se siamo onesti) non impressionerai nemmeno i criminali informatici là fuori.
  • Non lasciare attivi account inutilizzati se puoi farne a meno. Come abbiamo detto ieri in poi Giornata mondiale della password, valuta la possibilità di chiudere gli account che non ti servono più, sulla base del fatto che meno password hai in uso, meno ce ne sono da rubare.
  • Non riutilizzare le password su più di un account. L'ipotesi di Packagist è che le password abusate in questo caso si trovassero nei record di violazione dei dati di altri account in cui le vittime avevano utilizzato la stessa password del proprio account Packagist.
  • Non dimenticare il tuo 2FA. Packagists esorta tutti i propri utenti ad attivare 2FA, quindi una password da sola non è sufficiente per consentire a un utente malintenzionato di accedere al tuo account e consiglia di fare lo stesso anche sul tuo account GitHub.
  • Non accettare ciecamente gli aggiornamenti della catena di approvvigionamento senza verificarne la correttezza. Se si dispone di una rete complicata di dipendenze dei pacchetti, si è tentati di mettere da parte le proprie responsabilità e lasciare che il sistema recuperi automaticamente tutti gli aggiornamenti, ma ciò mette solo te e i tuoi utenti a valle a un rischio aggiuntivo.

ECCO IL CONSIGLIO DELLA GIORNATA MONDIALE DELLA PASSWORD


spot_img

L'ultima intelligenza

spot_img