Pobrany 417 razy, zanim został usunięty
Badacze zajmujący się cyberbezpieczeństwem zidentyfikowali złośliwy pakiet Pythona, który rzekomo jest odgałęzieniem popularnej biblioteki żądań. Odkryto, że kryje on wersję Golang platformy dowodzenia i kontroli (C2) Sliver w obrazie PNG logo projektu.
Pakiet wykorzystujący tę steganograficzną sztuczkę to request-darwin-lite, który został pobrany 417 razy, zanim został usunięty z rejestru Python Package Index (PyPI). Requests-darwin-lite „wydawał się rozwidleniem zawsze popularnego pakietu żądań z kilkoma kluczowymi różnicami, w szczególności dołączeniem złośliwego pliku binarnego Go spakowanego w dużą wersję rzeczywistego logo PNG na pasku bocznym żądań” – powiedziała firma Phylum zajmująca się bezpieczeństwem łańcucha dostaw.
Zmiany wprowadzono w pliku setup.py pakietu, który został skonfigurowany do dekodowania i wykonywania polecenia zakodowanego w formacie Base64 w celu zebrania uniwersalnego unikalnego identyfikatora systemu (UUID), ale dopiero po potwierdzeniu, że na zaatakowanym hoście działa system Apple macOS.
Miesiąc po odkryciu fałszywego pakietu
Do odkrycia doszło także nieco ponad miesiąc po tym, jak firma odkryła fałszywy pakiet npm o nazwie vue2util, który podszywa się pod narzędzie pomocnicze, ale ma na celu przeprowadzanie schematu cryptojackingu i kradzież tokenów USDT ofiary.
Pakiet „wykorzystuje mechanizm zatwierdzania kontraktu ERC20 (USDT), w tajemnicy udzielając nieograniczonej zgody na adres kontraktu atakującego, skutecznie umożliwiając atakującemu wyssanie tokenów USDT ofiary” – zauważył Phylum.
Co ciekawe, łańcuch infekcji przebiega tylko wtedy, gdy identyfikator odpowiada określonej wartości, co oznacza, że autorzy pakietu chcą złamać określoną maszynę, na której już posiadają identyfikator uzyskany w inny sposób. Nasuwają się dwie możliwości: albo jest to wysoce ukierunkowany atak, albo jest to swego rodzaju proces testowy poprzedzający szerszą kampanię.
Jeśli identyfikator UUID jest zgodny…
Jeśli identyfikator UUID jest zgodny, request-darwin-lite kontynuuje odczytywanie danych z pliku PNG o nazwie „requests-sidebar-large.png”, który wykazuje podobieństwa z legalnym pakietem żądań dostarczanym z podobnym plikiem o nazwie „requests-sidebar. png.” Różnica polega na tym, że podczas gdy prawdziwe logo osadzone w żądaniach ma rozmiar pliku 300 kB, to zawarte w żądaniach-darwin-lite ma około 17 MB.
Dane binarne ukryte w obrazie PNG to oparty na Golang Sliver, framework C2 o otwartym kodzie źródłowym, zaprojektowany do użytku przez specjalistów ds. bezpieczeństwa w operacjach czerwonego zespołu.
Dokładny cel końcowy pakietu jest obecnie niejasny, ale jego rozwój po raz kolejny jest oznaką, że ekosystemy open source w dalszym ciągu są atrakcyjnym wektorem dystrybucji szkodliwego oprogramowania.
Zdecydowana większość baz kodów opiera się na kodzie typu open source, stały napływ złośliwego oprogramowania do npm, PyPI i innych rejestrów pakietów, nie wspominając o niedawnym odcinku XZ Utils, uwydatnił potrzebę systematycznego rozwiązywania problemów, które w przeciwnym razie może „wykoleić duże obszary sieci”.