Nel popolare pacchetto gem , che conta in totale 113 milioni di download, l'inserimento di codice dannoso (CVE-2019-15224), che carica comandi eseguibili e invia informazioni a un host esterno. L'attacco è stato realizzato tramite di un account sviluppatore di rest-client nel repository rubygems.org, dopo di che i malintenzionati hanno pubblicato il 13 e il 14 agosto le versioni 1.6.10-1.6.13, contenenti modifiche dannose. Prima della rimozione delle versioni dannose, circa mille utenti le hanno scaricate (gli attaccanti per non attirare l'attenzione hanno rilasciato aggiornamenti di versioni precedenti).
La modifica dannosa sovrascrive il metodo «#authenticate» nella classe
Identity, dopodiché ogni chiamata al metodo porta all'invio dell'email e della password fornita durante il tentativo di autenticazione all'host dei malintenzionati. In questo modo si effettua un intercettazione dei parametri di accesso degli utenti di servizi che utilizzano la classe Identity e hanno installato una versione vulnerabile della libreria rest-client, che come dipendenza in molti pacchetti Ruby popolari, tra cui ast (64 milioni di download), oauth (32 milioni), fastlane (18 milioni) e kubeclient (3,7 milioni).
Inoltre, nel codice è stato aggiunto un backdoor che consente di eseguire codice Ruby arbitrario tramite la funzione eval. Il codice viene trasmesso tramite cookie, firmati con la chiave dell'attaccante. Per informare i malintenzionati dell'installazione del pacchetto dannoso su un host esterno, viene inviatato un URL del sistema della vittima e un insieme di informazioni sull'ambiente, come password salvate per database e servizi cloud. Utilizzando il suddetto codice dannoso, sono state registrate tentativi di caricare script per il mining di criptovalute.
Dopo aver analizzato il codice dannoso, è emerso , che modifiche simili sono presenti in in Ruby Gems, che non sono stati catturati, ma preparati appositamente dai malintenzionati sulla base di altre librerie popolari con nomi simili, in cui il trattino è stato sostituito con un sottolineato o viceversa (ad esempio, sulla base di è stato creato il pacchetto dannoso cron_parser, mentre sulla base di è stato creato il pacchetto dannoso doge-coin). Pacchetti problematici:
- : 4.2.2, 4.2.1
- : 0.0.6, 0.0.7
- : 1.18.0
- : 1.0.2
- : 0.5.5
- : 4.3.3
- : 0.0.3
- : 0.2.8
- : 1.0.1
- : 1.0.12, 1.0.13, 0.1.4
Il primo pacchetto dannoso di questo elenco è stato pubblicato il 12 maggio, ma la maggior parte è apparsa a luglio. In totale, i pacchetti indicati sono stati scaricati circa 2500 volte.
Fonte: opennet.ru
