Tentativo di compromissione del codice sorgente del linguaggio PHP

Alcuni cybercriminali non noti hanno cercato di aggiungere una backdoor al codice sorgente del linguaggio di scripting PHP.

Di recente, alcuni cybercriminali sconosciuti hanno provato a eseguire un attacco alla supply-chain su larga scala, introducendo un codice dannoso nel repository GIT ufficiale di PHP. Se gli sviluppatori non avessero notato la backdoor in tempo, sarebbe potuta finire su molti server web e portare al più grande attacco alla supply-chain della storia.

PHP: cosa è successo?

I programmatori che sviluppano il linguaggio PHP apportano modifiche al codice utilizzando un repository comune costruito sul sistema di controllo di versione GIT. Dopo aver implementato le loro integrazioni, il codice viene sottoposto a un’ulteriore revisione. Durante un controllo di routine, uno sviluppatore ha notato un’aggiunta sospetta che nei commenti (attribuiti a Nikita Popov, sviluppatore PHP attivo) veniva indicata come una correzione di un refuso. Un esame più approfondito ha rivelato che si trattava di una backdoor e Popov non era l’autore di tale modifica.

Ulteriori verifiche hanno mostrato che un’altra integrazione simile era stata caricata nel repository, questa volta attribuita a Rasmus Lerdorf. I programmatori se ne sono accorti in poche ore e, grazie alla loro attenzione, il prossimo aggiornamento di PHP 8.1 (la cui release è prevista entro la fine dell’anno) non includerà la backdoor.

Perché si trattava di una modifica pericolosa del codice?

Una backdoor nel repository potrebbe consentire ai criminali informatici di eseguire da remoto un codice dannoso su un server Web, utilizzando la versione compromessa di PHP. Nonostante una certa perdita di popolarità, PHP rimane il linguaggio di scripting più utilizzato per i contenuti web, impiegato da circa l’80% dei server web. Anche se non tutti gli amministratori aggiornano prontamente i propri tool, in molti si preoccupano di aggiornare i propri server per rispettare le norme di sicurezza interne o esterne. Se la backdoor fosse entrata nella nuova versione di PHP, molto probabilmente si sarebbe diffusa sui server web di numerose aziende.

Come hanno fatto i cybercriminali a introdurre la backdoor?

Gli esperti sono certi che l’attacco sia dovuto a una vulnerabilità nel server Git interno e non si tratterebbe di un problema di account compromessi appartenenti agli sviluppatori. In realtà, il rischio che qualcuno attribuisca una modifica a un altro utente è noto da molto tempo, e dopo questo incidente, il team di assistenza di PHP ha smesso di usare il server git.php.net e si è trasferito sul repository del servizio GitHub (che prima era solo un mirror).

Come difendersi?

Gli ambienti di sviluppo sono obiettivi attraenti per i cybercriminali. Se riescono a compromettere il codice di un software di cui i clienti si fidano, possono raggiungere più obiettivi in una volta sola, attraverso un attacco alla supply chain. Milioni di utenti in tutto il mondo usano i progetti più popolari, quindi proteggerli da attacchi esterni è particolarmente importante.

  • Analizzate regolarmente ogni cambiamento del codice, anche se eseguito da programmatori importanti e degni di fiducia;
  • Monitorate la sicurezza dei server e dei servizi usati per lo sviluppo;
  • Utilizzate piattaforme online specializzate per formare i dipendenti, affinché riescano a identificare prontamente le moderne minacce informatiche.
Consigli