Firma ReversingLabs wyniki analizy zastosowania w repozytorium RubyGems. Zazwyczaj type squatting stosuje się do rozprzestrzeniania złośliwych pakietów, które celują w niedbałego dewelopera, który podczas poszukiwania popełni literówkę lub nie zauważy różnicy. W trakcie badania odkryto ponad 700 pakietów, których nazwy są podobne do popularnych pakietów i różnią się nieznacznymi detalami, na przykład zamianą podobnych liter lub używaniem podkreślników zamiast myślników.
W ponad 400 pakietach wykryto komponenty podejrzewane o działania złośliwe. W szczególności w środku znajdował się plik aaa.png, zawierający kod wykonywalny w formacie PE. Te pakiety były powiązane z dwiema kontami, przez które od 16 do 25 lutego 2020 roku w RubyGems umieszczono , które łącznie zostały pobrane około 95 tysięcy razy. Naukowcy poinformowali administrację RubyGems, a zidentyfikowane złośliwe pakiety zostały już usunięte z repozytorium.
Spośród wykrytych problematycznych pakietów najbardziej popularny okazał się 'atlas-client', który na pierwszy rzut oka praktycznie nie różni się od legalnego pakietu ''. Wskazany pakiet został pobrany 2100 razy (normalny pakiet został pobrany 6496 razy, co oznacza, że użytkownicy pomylili się w prawie 25% przypadków). Pozostałe pakiety były średnio pobierane 100-150 razy i kamuflowały się pod innymi pakietami z użyciem podobnej techniki zamiany podkreślnika i myślnika (na przykład wśród : 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).
Złośliwe pakiety zawierały plik PNG, w którym zamiast obrazu umieszczono plik wykonywalny dla platformy Windows. Plik został utworzony za pomocą narzędzia Ocra Ruby2Exe i zawierał samorozpakowujący się archiwum z skryptem Ruby oraz interpreteri Ruby. Podczas instalacji pakietu plik PNG był przekształcany w EXE i uruchamiany. W trakcie wykonywania był tworzony i dodawany do autostartu plik VBScript. Wskazany złośliwy VBScript w pętli analizował zawartość schowka pod kątem obecności informacji przypominających adresy portfeli kryptowalutowych, a w przypadku wykrycia zamieniał numer portfela, mając nadzieję, że użytkownik nie zauważy różnicy i przekaże środki na niewłaściwy portfel.
Przeprowadzone badanie wykazało, że nie ma problemu z dodawaniem złośliwych pakietów do jednego z najpopularniejszych repozytoriów i te pakiety mogą pozostawać niezauważone, mimo znacznej liczby pobrań. Warto zauważyć, że problem dla RubyGems i dotyczy innych popularnych repozytoriów. Na przykład, w zeszłym roku ci sami badacze w repozytorium NPM odkryli złośliwy pakiet bb-builder, który używał podobnej techniki uruchamiania pliku wykonywalnego do kradzieży haseł. Wcześniej backdoor został w zależności od pakietu NPM event-stream, a złośliwy kod został pobrany około 8 mln razy. Złośliwe pakiety również w repozytorium PyPI.
Źródło: opennet.ru
