W kliencie rest-client i 10 innych pakietach Ruby wykryto złośliwy kod

W popularnym opakowaniu typu klejnot klient-reszta, łącznie 113 milionów pobrań, zidentyfikowane Zastąpienie złośliwego kodu (CVE-2019-15224), który pobiera wykonywalne polecenia i wysyła informacje do hosta zewnętrznego. Atak został przeprowadzony przez kompromis konto programisty rest-client w repozytorium rubygems.org, po czym 13 i 14 sierpnia napastnicy opublikowali wydania 1.6.10-1.6.13, które zawierały złośliwe zmiany. Zanim szkodliwe wersje zostały zablokowane, udało się je pobrać około tysiąca użytkowników (atakujący wypuścili aktualizacje do starszych wersji, aby nie zwracać na siebie uwagi).

Złośliwa zmiana zastępuje metodę „#authenticate” w klasie
Identity, po czym każde wywołanie metody skutkuje wysłaniem adresu e-mail i hasła przesłanych podczas próby uwierzytelnienia do hosta atakującego. W ten sposób przechwytywane są parametry logowania użytkowników usługi korzystających z klasy Identity i instalujących podatną na ataki wersję biblioteki klienta pozostałego, co opisany jako zależność w wielu popularnych pakietach Ruby, w tym ast (64 miliony pobrań), oauth (32 miliony), fastlane (18 milionów) i kubeclient (3.7 miliona).

Dodatkowo do kodu dodano backdoora, który umożliwia wykonanie dowolnego kodu Ruby poprzez funkcję eval. Kod jest przesyłany za pośrednictwem pliku cookie certyfikowanego kluczem atakującego. Aby poinformować atakujących o instalacji szkodliwego pakietu na zewnętrznym hoście, wysyłany jest adres URL systemu ofiary oraz wybrane informacje o środowisku, takie jak zapisane hasła do systemu DBMS i usług w chmurze. Próby pobrania skryptów do wydobywania kryptowalut były rejestrowane przy użyciu wspomnianego powyżej złośliwego kodu.

Po przestudiowaniu złośliwego kodu okazało się, że tak ujawniłże podobne zmiany zachodzą w 10 pakietów w Ruby Gems, które nie zostały przechwycone, ale zostały specjalnie przygotowane przez atakujących w oparciu o inne popularne biblioteki o podobnych nazwach, w których myślnik został zastąpiony podkreśleniem lub odwrotnie (na przykład na podstawie parser cron utworzono szkodliwy pakiet cron_parser i na jego podstawie doge_coin złośliwy pakiet doge-coin). Pakiety problemów:

Pierwszy szkodliwy pakiet z tej listy został opublikowany 12 maja, ale większość z nich pojawiła się w lipcu. W sumie pakiety te zostały pobrane około 2500 razy.

Źródło: opennet.ru

Dodaj komentarz