Firma ReversLabs опубликовала wyniki analizy aplikacji typkucanie w repozytorium RubyGems. Zwykle typosquatting służy do dystrybucji złośliwych pakietów, których celem jest spowodowanie, aby nieuważny programista popełnił literówkę lub nie zauważył różnicy podczas wyszukiwania. W badaniu zidentyfikowano ponad 700 pakietów o nazwach podobnych do popularnych pakietów, różniących się jednak drobnymi szczegółami, takimi jak podstawienie podobnych liter czy użycie podkreśleń zamiast myślników.
Komponenty podejrzane o wykonywanie szkodliwych działań znaleziono w ponad 400 pakietach. W szczególności znajdował się plik aaa.png, który zawierał kod wykonywalny w formacie PE. Pakiety te były powiązane z dwoma kontami, za pośrednictwem których RubyGems został wysłany w okresie od 16 lutego do 25 lutego 2020 r. 724 złośliwych pakietów, które w sumie pobrano około 95 tysięcy razy. Badacze poinformowali administrację RubyGems, a zidentyfikowane szkodliwe pakiety zostały już usunięte z repozytorium.
Spośród zidentyfikowanych problematycznych pakietów najpopularniejszym był „atlas-client”, który na pierwszy rzut oka praktycznie nie różni się od legalnego pakietu „klient atlas„. Określony pakiet został pobrany 2100 razy (zwykły pakiet został pobrany 6496 razy, co oznacza, że użytkownicy mylili się w prawie 25% przypadków). Pozostałe pakiety były pobierane średnio 100-150 razy i były zakamuflowane jak inne pakiety przy użyciu podobnej techniki zastępowania podkreśleń i myślników (np. złośliwe pakiety: 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).
Szkodliwe pakiety zawierały plik PNG, który zamiast obrazu zawierał plik wykonywalny dla platformy Windows. Plik został wygenerowany przy użyciu narzędzia Ocra Ruby2Exe i zawierał samorozpakowujące się archiwum ze skryptem Ruby i interpreterem Ruby. Podczas instalacji pakietu nazwa pliku png została zmieniona na exe i uruchomiona. Podczas wykonywania został utworzony plik VBScript i dodany do autorun. Podany złośliwy skrypt VBScript w pętli analizował zawartość schowka pod kątem obecności informacji przypominających adresy portfeli kryptowalutowych i w przypadku wykrycia podmieniał numer portfela z oczekiwaniem, że użytkownik nie zauważy różnic i przeleje środki do niewłaściwego portfela .
Badanie wykazało, że dodanie szkodliwych pakietów do jednego z najpopularniejszych repozytoriów nie jest trudne, a pakiety te mogą pozostać niewykryte pomimo znacznej liczby pobrań. Należy zauważyć, że problem niekonkretnydla RubyGems i obejmuje inne popularne repozytoria. Na przykład w zeszłym roku ci sami badacze ujawnił w repozytorium NPM znajduje się szkodliwy pakiet o nazwie bb-builder, który wykorzystuje podobną technikę uruchamiania pliku wykonywalnego w celu kradzieży haseł. Wcześniej istniały tylne drzwi znaleziony w zależności od pakietu NPM strumienia zdarzeń złośliwy kod został pobrany około 8 milionów razy. Również złośliwe pakiety cykliczniewyskoczyć w repozytorium PyPI.