Ponad 20000 złośliwych pakietów NPM zostało spreparowanych w celu wykradania danych osobowych (PII) programistów.
Badacze bezpieczeństwa z firmy JFrog twierdzą, że zidentyfikowali zakrojony na szeroką skalę atak na łańcuch dostaw, którego celem są programiści Azure.
Azure to usługa chmury obliczeniowej, której operatorem jest Microsoft. Programiści piszący kod dla środowiska chmury Azure często korzystają z NPM, publicznego rejestru oprogramowania.
Badacze z firmy JFrog zauważyli automatyczne alerty dotyczące zestawu pakietów w rejestrze NPM. Ręczna inspekcja ujawniła ogromny wzrost liczby zainfekowanych pakietów.
“Po ręcznym sprawdzeniu niektórych z tych pakietów okazało się, że był to atak ukierunkowany na cały zakres @azure npm, przeprowadzony przez hackera, który wykorzystał automatyczny skrypt do utworzenia kont i przesłania złośliwych pakietów obejmujących cały ten zakres” – powiedzieli badacze z firmy JFrog.
Jak wynika z ich dochodzenia, złośliwym ładunkiem tych pakietów były programy wykradające informacje osobiste. Badacze twierdzą, że poinformowali opiekunów NPM o problemie, a złośliwe pakiety zostały usunięte.
Autorzy raportu twierdzą jednak, że każdy ze złośliwych pakietów był pobierany średnio 50 razy. W sumie zidentyfikowano co najmniej 218 złośliwych pakietów.
Jak to zrobili?
Badacze zidentyfikowali atak jako “typosquatting”, w którym napastnicy tworzą złośliwe pakiety o takiej samej nazwie jak istniejący pakiet Azure scope, pomijając nazwę scop.
“Atakujący wykorzystuje fakt, że niektórzy programiści mogą błędnie pominąć prefiks @azure podczas instalowania pakietu. Przykładem może być omyłkowe uruchomienie polecenia npm install core-tracing, zamiast prawidłowego polecenia – npm install @azure/core-tracing” – twierdzą autorzy raportu.
Równocześnie, próbowali przeprowadzić atak polegający na “pomyleniu zależności”. Wszystkie złośliwe pakiety otrzymały wysoki numer wersji, aby oszukać deweloperów i przekonać ich, że są to legalnie zaktualizowane wersje.
Analiza złośliwego payloadu wykazała, że celem atakujących było zebranie nazw użytkowników, katalogów domowych, katalogów roboczych, adresów IP i innych informacji.
Badacze sugerują zabezpieczenie pakietów NPM za pomocą mechanizmu CAPTCHA, aby zapobiec masowemu tworzeniu złośliwych pakietów przez użytkowników.
“Ze względu na gwałtowny wzrost liczby ataków na łańcuchy dostaw, szczególnie za pośrednictwem repozytoriów pakietów NPM i PyPI, wydaje się, że należy wprowadzić więcej kontroli i zabezpieczeń” – twierdzą badacze.