Azienda ReversingLabs risultati dell'analisi dell'utilizzo nel repository di RubyGems. Di solito, il typo-squatting viene utilizzato per distribuire pacchetti malevoli, contando sul fatto che uno sviluppatore distratto possa commettere un errore di battitura durante la ricerca o non notare la differenza. Durante lo studio sono stati identificati oltre 700 pacchetti i cui nomi sono simili a quelli di pacchetti popolari, differenti solo per piccoli dettagli, come la sostituzione di lettere simili o l'uso di underscore al posto di trattini.
In oltre 400 pacchetti sono stati trovati componenti sospettati di compiere azioni malevole. In particolare, all'interno è stato trovato un file aaa.png contenente codice eseguibile in formato PE. I pacchetti menzionati erano collegati a due account che dal 16 al 25 febbraio 2020 hanno caricato , che sono stati scaricati in totale circa 95mila volte. I ricercatori hanno informato l'amministrazione di RubyGems e i pacchetti malevoli identificati sono già stati rimossi dal repository.
Tra i pacchetti problematici identificati, il più popolare è stato «atlas-client», che a prima vista è praticamente indistinguibile dal pacchetto legittimo ««. Il pacchetto indicato è stato scaricato 2100 volte (mentre il pacchetto normale è stato scaricato 6496 volte, il che significa che gli utenti si sono sbagliati quasi nel 25% dei casi). Gli altri pacchetti sono stati scaricati in media 100-150 volte e si sono camuffati sotto altri pacchetti utilizzando tecniche simili di sostituzione di underscore e trattini (ad esempio, tra : appium-lib, action-mailer_cache_delivery, activemodel_validators, asciidoctor_bibliography, assets-pipeline, apress_validators, ar_octopus-replication-tracking, aliyun-open_search, aliyun-mns, ab_split, apns-polite).
I pacchetti dannosi includevano un file PNG, nel quale invece dell'immagine era presente un file eseguibile per piattaforme Windows. Il file era stato creato utilizzando lo strumento Ocra Ruby2Exe e includeva un archivio autoestraente con uno script Ruby e un interprete Ruby. Durante l'installazione del pacchetto, il file png veniva rinominato in exe e avviato. In fase di esecuzione, veniva creato e aggiunto un file VBScript all'avvio automatico. Questo VBScript dannoso analizzava in un ciclo il contenuto degli appunti alla ricerca di informazioni simili agli indirizzi di portafogli crittografici e, in caso di individuazione, sostituiva il numero del portafoglio, confidando che l'utente non notasse differenze e trasferisse i fondi non nel portafoglio corretto.
La ricerca condotta ha mostrato che non è difficile aggiungere pacchetti dannosi in uno dei repository più popolari e che questi pacchetti possono rimanere inosservati, nonostante un numero significativo di download. È importante notare che il problema per RubyGems e concerne anche altri repository popolari. Ad esempio, l'anno scorso gli stessi ricercatori nel repository NPM è stato trovato un pacchetto malevolo bb-builder, che utilizza una tecnica simile di esecuzione di file per rubare password. Prima di questo, un backdoor è stato in dipendenza dal pacchetto NPM event-stream e il codice malevolo è stato scaricato circa 8 milioni di volte. Anche i pacchetti malevoli nel repository PyPI.
Fonte: opennet.ru
