Deweloperzy .NET atakowani przez złośliwe pakiety NuGet

Deweloperzy .NET atakowani przez złośliwe pakiety NuGet

Twórcy .NET celem złośliwych pakietów NuGet PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Tuzin piekarzy pakietów hostowanych w repozytorium NuGet dla twórców oprogramowania .NET to w rzeczywistości złośliwe komponenty trojana, które zagrażają systemowi instalacyjnemu i pobierają złośliwe oprogramowanie kradnące kryptowaluty z funkcją backdoora.

Firma JFrog zajmująca się bezpieczeństwem łańcucha dostaw oprogramowania stwierdziła w analizie opublikowanej 21 marca, że ​​13 pakietów, które zostały usunięte, zostało pobranych ponad 166,000 1 razy i podszywa się pod inne legalne oprogramowanie, takie jak Coinbase i Microsoft ASP.NET. JFrog wykrył atak, gdy badacze firmy zauważyli podejrzaną aktywność, gdy plik — init.psXNUMX — wykonywał się podczas instalacji, a następnie pobierał plik wykonywalny i uruchamiał go.

Odkrycie złośliwego kodu pokazuje, że atakujący coraz bardziej wkraczają w łańcuch dostaw oprogramowania, aby narazić na niebezpieczeństwo nieostrożnych programistów, mimo że .NET i języki programowania C# są mniej znane wśród atakujących, mówi Shachar Menashe, dyrektor ds. JŻaba.

„Techniki wykonywania złośliwego kodu podczas instalacji pakietu NuGet, choć trywialne, są mniej udokumentowane niż w Pythonie czy JavaScript, a niektóre z nich zostały wycofane, więc niektórzy początkujący atakujący mogą pomyśleć, że nie jest to możliwe” — mówi. „I być może NuGet ma lepsze automatyczne filtrowanie złośliwych pakietów”.

Łańcuch dostaw oprogramowania staje się coraz częściej celem atakujących, którzy próbują złamać zabezpieczenia systemów programistów lub rozesłać niezauważony kod do użytkownika końcowego za pośrednictwem aplikacji programistów. Są to ekosystemy Python Package Index (PyPI) i zorientowany na JavaScript Node Package Manager (npm). częsty cele ataków na łańcuch dostaw ukierunkowane na projekty open source.

Atak na ekosystem oprogramowania .NET, na który składa się blisko 350,000 XNUMX unikalnych opakowań, według JFrog po raz pierwszy złośliwe pakiety zaatakowały NuGet, chociaż firma zauważyła, że ​​kampania spamowa miała wcześniej wysyłał linki phishingowe do programistów.

Typosquatting wciąż stanowi problem

Atak podkreśla, że ​​typosquatting nadal stanowi problem. Ten styl ataku polega na tworzeniu pakietów o podobnie brzmiących nazwach — lub o tej samej nazwie z typowymi błędami ortograficznymi — jako prawdziwych, w nadziei, że użytkownik pomyli wspólny pakiet lub nie zauważy błędów.

Deweloperzy powinni dobrze przyjrzeć się nowym pakietom przed włączeniem ich do projektu programistycznego, badacze JFrog Natan Nehorai i Brian Moussalli napisali w internetowym poradniku.

„Mimo że w repozytorium NuGet nie zaobserwowano żadnych wcześniejszych ataków złośliwym kodem, udało nam się znaleźć dowody na co najmniej jedną niedawną kampanię wykorzystującą metody takie jak typosquatting w celu propagowania złośliwego kodu” – napisali. „Podobnie jak w przypadku innych repozytoriów, środki bezpieczeństwa należy podejmować na każdym etapie cyklu tworzenia oprogramowania, aby zapewnić bezpieczeństwo łańcucha dostaw oprogramowania”.

Natychmiastowe wykonanie kodu jest problematyczne

Naukowcy stwierdzili, że pliki, które są automatycznie uruchamiane przez narzędzia programistyczne, stanowią lukę w zabezpieczeniach i powinny zostać wyeliminowane lub ograniczone, aby zmniejszyć powierzchnię ataku. Ta funkcjonalność jest istotnym powodem, dla którego ekosystemy npm i PyPI mają problemy z zatruciem w porównaniu, powiedzmy, z ekosystemem pakietów Go.

„Pomimo faktu, że wykryte złośliwe pakiety zostały od tego czasu usunięte z NuGet, programiści .NET nadal są narażeni na wysokie ryzyko złośliwego kodu, ponieważ pakiety NuGet nadal zawierają narzędzia do uruchamiania kodu natychmiast po instalacji pakietu”, stwierdzili badacze JFrog w poście na blogu . „[A]chociaż jest to przestarzałe, skrypt [inicjalizacyjny] jest nadal honorowany przez Visual Studio i będzie działał bez ostrzeżenia podczas instalowania pakietu NuGet”.

JFrog poradził programistom, aby sprawdzili literówki w importowanych i zainstalowanych pakietach i powiedział, że programiści powinni upewnić się, że „przypadkowo nie zainstalują ich w swoim projekcie ani nie wymienią ich jako zależności”, stwierdziła firma.

Ponadto programiści powinni przeglądać zawartość pakietów, aby upewnić się, że nie ma żadnych plików wykonywalnych, które są pobierane i automatycznie uruchamiane. Chociaż takie pliki są powszechne w niektórych ekosystemach oprogramowania, zwykle wskazują na złośliwe zamiary.

Dzięki różnorodnym środkom zaradczym repozytorium NuGet — podobnie jak npm i PyPI — powoli, ale skutecznie eliminuje słabe punkty bezpieczeństwa, mówi Menashe z JFrog. 

„Nie spodziewam się, że NuGet stanie się większym celem w przyszłości, zwłaszcza jeśli opiekunowie NuGet całkowicie usuną obsługę uruchamiania kodu podczas instalacji pakietu — co już częściowo zrobili” — mówi.

Znak czasu:

Więcej z Mroczne czytanie