Nel popolare pacchetto gem , che conta un totale di 113 milioni di download, è stata inserita una vulnerabilità (CVE-2019-15224) che carica comandi eseguibili e invia informazioni a un host esterno. L'attacco è stato effettuato attraverso dell'account dello sviluppatore del rest-client nel repository rubygems.org, dopo di che gli aggressori hanno pubblicato le versioni 1.6.10-1.6.13 il 13 e 14 agosto, incluse modifiche dannose. Prima che le versioni malevole venissero bloccate, circa mille utenti le avevano già scaricate (gli aggressori hanno rilasciato aggiornamenti di versioni precedenti per non attirare l'attenzione).
La modifica malevola sovrascrive il metodo «#authenticate» nella classe
Identity, causando che ogni invocazione del metodo invii l'email e la password fornite durante il tentativo di autenticazione all'host degli aggressori. In questo modo si effettua l'intercettazione dei parametri di accesso degli utenti dei servizi che utilizzano la classe Identity e che 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 è stata aggiunta una backdoor che consente di eseguire codice Ruby arbitrario tramite la funzione eval. Il codice viene trasmesso tramite un Cookie, autenticato con la chiave dell'attaccante. Per informare i criminali informatici sull'installazione del pacchetto dannoso su un host esterno, vengono inviati l'URL del sistema della vittima e un insieme di informazioni sull'ambiente, come le password salvate per i database e i servizi cloud. Con l'utilizzo del codice dannoso sopra menzionato sono state registrate tentativi di caricare script per il mining di criptovalute.
Dopo aver esaminato il codice dannoso è stato , che modifiche simili sono presenti anche in in Ruby Gems, che non sono stati compromessi, ma appositamente preparati dai criminali informatici sulla base di altre librerie popolari con nomi simili, in cui il trattino è stato sostituito con un underscore o viceversa (ad esempio, sulla base di è stato creato il pacchetto dannoso cron_parser, e sulla base di 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 della lista è stato caricato il 12 maggio, ma la maggior parte è apparsa a luglio. In totale, i pacchetti indicati sono stati scaricati circa 2500 volte.
Fonte: opennet.ru
