Wszyscy wiedzą, jak groźne są ataki na łańcuchy dostaw. Pisaliśmy o tym wielokrotnie. Dzisiaj przeanalizujemy kolejny przykład – tym razem zagrożeni zostali deweloperzy.
Jak podaje Checkmarx, wielu programistów Pythona, w tym opiekun Top.gg, zostało zainfekowanych złośliwym oprogramowaniem. Malware kradł informacje po pobraniu klona bardzo popularnego narzędzia o nazwie Colorama, sprawiającego, iż sekwencje znaków specjalnych ANSI działają w systemie Windows. Jest ono pobierane w ciągu miesiąca ponad 150 milionów razy!
Aby przeprowadzić atak na łańcuch dostaw, hakerzy sklonowali narzędzie, umieścili w nim złośliwy kod i wprowadzili spreparowaną wersję do fałszywej domeny lustrzanej, która opierała się na typosquattingu, aby oszukać programistów, którzy mylili je z legalnym serwerem lustrzanym „files.pythonhosted.org”.
W celu rozprzestrzenienia pakietu zawierającego złośliwe oprogramowanie napastnicy utworzyli repozytoria na swoich własnych kontach i przejęli kontrolę nad kontami o wysokim profilu, w tym „editor-syntax” konta GitHub, administratora platformy wyszukiwania i odkrywania Top.gg dla Discord, która ma wspólnotę liczącą ponad 170 000 członków.
Korzystając z konta „editor-syntax”, napastnicy wprowadzili złośliwe zatwierdzenie do repozytorium top-gg/python-sdk, dodając instrukcje umożliwiające pobranie klona Coloramy i oznaczyli złośliwe repozytoria GitHub gwiazdką, aby zwiększyć ich widoczność.
Najprawdopodobniej ktoś zhakował konto dzięki skradzionych plików cookie, które napastnicy wykorzystali do ominięcia uwierzytelniania i wykonania złośliwych działań bez znajomości hasła do profilu. W rezultacie bezpieczeństwo wielu członków społeczności Top.gg zostało naruszone.
By ukryć swoją działalność w złośliwych repozytoriach, osoby atakujące jednocześnie udostępniały wiele plików, w tym legalne i te zawierające łącze do sklonowanego pakietu Colorama, tak aby te wtapiały się w niezainfekowane oprogramowanie.
„Manipulując procesem instalacji pakietu i wykorzystując zaufanie, jakie użytkownicy pokładają w ekosystemie pakietów Pythona, osoba atakująca zapewniła, iż złośliwy pakiet «colorama» zostanie zainstalowany za każdym razem, gdy w wymaganiach projektu określono szkodliwą zależność” – zauważa Checkmarx.
Aby ukryć złośliwy kod w Coloramie, napastnicy dodali wiele białych znaków, wypychając fragment poza ekran, tak aby trudno było go zauważyć podczas szybkiego przeglądania plików źródłowych. Ustawili także kod, który był wykonywany przy każdym imporcie Coloramy niezależnie od jego użycia.
Po wykonaniu złośliwego kodu proces infekcji był kontynuowany i składał się z kilku dodatkowych kroków, takich jak pobranie i wykonanie dodatkowego kodu w języku Python, pobranie niezbędnych bibliotek i skonfigurowanie trwałości.
Ostatecznie systemy programistów zostały zainfekowane złośliwym oprogramowaniem zdolnym do rejestrowania naciśnięć klawiszy i kradzieży danych z wielu przeglądarek (w tym Brave, Chrome, Edge, Opera, Vivaldi i Yandex), Discorda, portfeli kryptowalutowych, sesji Telegramu oraz Instagrama.
„Skradzione dane są przesyłane na serwer atakującego przy użyciu różnych technik. Kod zawiera funkcje umożliwiające przesyłanie plików do anonimowych usług udostępniania plików, takich jak GoFile i Anonfiles. Wysyła również skradzione informacje na serwer atakującego dzięki żądań HTTP” – twierdzi Checkmarx.