W RubyGems zidentyfikowano 724 złośliwe pakiety

Firma ReversingLabs opublikowała wyniki analizy zastosowania type squatting 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 724 złośliwe pakiety, 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 'atlas_client'. 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 złośliwych pakietów: 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 nie jest specyficzny do dla RubyGems i dotyczy innych popularnych repozytoriów. Na przykład, w zeszłym roku ci sami badacze ujawnili 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ł znaleziony 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ż okresowo pojawiają się w repozytorium PyPI.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster