martedì 30 marzo 2021

Hackerato il server Git di PHP: l'aggiunta di una backdoor nel codice sorgente di PHP ha fatto tremare il web

E' ormai uno scenario col quale non si può più fare a meno di confrontarsi quello degli attacchi cosiddetti "supply chain", ovvero gli attacchi che non colpiscono direttamente l'obiettivo primario ma la catena di distribuzione: gli eventi che hanno riguardato SolarWind e Microsoft Exchange hanno riportato in primo piano un dibattito che era un pç sopito, ma che, incalzato dagli eventi, è divenuto irrimandabile e ormai si è reso evidente come sia urgente prendere le giuste contromisure rispetto ai cosiddetti "software supply chain attack". 

Ora ci risiamo, di nuovo, e anche questo evento ha un potenziale di compromissione molto esteso: la repository ufficiale Git di PHP è stata hackerata e il codice sorgente è stato manomesso. Due giorni fa infatti due commit dannosi sono stati "spinti" nella repository php-src GIT gestita dal team PHP sul loro server git.php.net. Gli attaccanti, ad ora sconosciuti, hanno firmato questi commit come se i loro autori fossero noti sviluppatori e manutentori PHP, ovvero Rasmus Lerdord e Nikita Popov. Per rendersi conto della portata di questo attacco, fortunatamente sventato, basta dire che PHP rimane il linguaggio di programmazione lato server più usato, alimentando più del 79% dei siti web in Internet.   

Il comunicato ufficiale spiega che un attaccante è riuscito ad inserire il codice dannoso, ma non è chiaro se sia riuscito nel suo intendo compromettendo il server stesso o gli account dei due sviluppatori.  Popov ha però escluso seccamente la possibilità di aver subito una violazione del proprio account.

I due commit sono disponibili qui e qui: questi sono stati inseriti come "fix typo", cioè gli attaccanti hanno provato a camuffarli da semplici correzioni ortografiche apportate dagli sviluppatori. 

E' stato Popov stesso a rendersi conto della modifica, pur in apparenza assai banale: già alla prima verifica l'amministratore del server Git ha riscontrato una modifica alla linea 370 del codice. Modifica che appariva a firma di Lerdof e che inseriva l'istruzione zend_eval_string necessaria all'attaccante per installare una backdoor tramite la quale eseguire codice da remoto (RCE) su qualunque sito web avesse eseguito il codice manomesso anziché quello pulito. 

In particolare, la riga di codice aggiunta eseguiva codice PHP nell'intestazione HTTP useragent nel caso in cui la stringa stessa fosse iniziata con zerodium. Non è chiaro il motivo dietro alla scelta di zerodium, che altro non è che una nota società di cybersecurity americana del tutto estranea, ovviamente, all'attacco. Il secondo commit dannoso invece è stato individuato da un altro sviluppatore, Michael Voříšek. 

La celere individuazione dei due commit dannosi nel codice PHP ha scongiurato il peggio e non è esagerato dire che ha salvato il web, evitando un attacco le cui dimensioni avrebbero rischiato di essere incalcolabili.

Popov ha anche fatto sapere che l'evento ha spinto i gestori del server PHP a spostare il repository su GitHub: "mantenere la nostra infrastruttura Git è un rischio non necessario" ha dichiarato. Le nuove regole parlano chiaro: chi vorrà contribuire al progetto PHP d'ora in poi dovrà creare un account GitHub attivando l'autenticazione a due fattori. 

Nessun commento:

Posta un commento