.NET-ontwikkelaars getarget met kwaadaardige NuGet-pakketten

.NET-ontwikkelaars getarget met kwaadaardige NuGet-pakketten

.NET-ontwikkelaars doelwit van kwaadaardige NuGet-pakketten PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

De tientallen pakketten van een bakker die worden gehost op de NuGet-repository voor .NET-softwareontwikkelaars, zijn in feite kwaadaardige Trojaanse paarden die het installatiesysteem in gevaar brengen en crypto-stelende malware downloaden met backdoor-functionaliteit.

JFrog, softwareleverancier voor de toeleveringsketen, verklaarde in een op 21 maart gepubliceerde analyse dat de 13 pakketten, die sindsdien zijn verwijderd, meer dan 166,000 keer zijn gedownload en zich voordoen als andere legitieme software, zoals Coinbase en Microsoft ASP.NET. JFrog ontdekte de aanval toen de onderzoekers van het bedrijf verdachte activiteit opmerkten toen een bestand - init.ps1 - werd uitgevoerd bij installatie en vervolgens een uitvoerbaar bestand downloadden en uitvoerden.

De ontdekking van de kwaadaardige code benadrukt dat aanvallers zich steeds verder uitbreiden in de softwaretoeleveringsketen als een manier om onoplettende ontwikkelaars in gevaar te brengen, ook al zijn .NET en de C#-programmeertalen minder bekend onder aanvallers, zegt Shachar Menashe, directeur beveiligingsonderzoek voor Jkikker.

"De technieken om kwaadaardige code uit te voeren bij de installatie van NuGet-pakketten, hoewel triviaal, zijn minder gedocumenteerd dan in Python of JavaScript, en sommige zijn verouderd, dus sommige beginnende aanvallers denken misschien dat het niet mogelijk is", zegt hij. "En misschien heeft NuGet een betere geautomatiseerde filtering van kwaadaardige pakketten."

De toeleveringsketen van software wordt steeds meer het doelwit van aanvallers die proberen de systemen van ontwikkelaars te compromitteren of onopgemerkte code naar de eindgebruiker te verspreiden via de applicaties van ontwikkelaars. De Python Package Index (PyPI) en de JavaScript-gerichte Node Package Manager (npm) ecosystemen zijn dat wel veelvuldig doelen van supply chain-aanvallen gericht op open source-projecten.

De aanval op het .NET-software-ecosysteem, dat bestaat uit bijna 350,000 unieke pakketten, is volgens JFrog de eerste keer dat kwaadaardige pakketten zich op NuGet hebben gericht, hoewel het bedrijf opmerkte dat een spamcampagne eerder gepushte phishing-links naar ontwikkelaars.

Typosquatting nog steeds een probleem

De aanval onderstreept dat typosquatting een probleem blijft. Die aanvalsstijl omvat het maken van pakketten met vergelijkbaar klinkende namen — of dezelfde naam met veelvoorkomende spelfouten — als legitieme, in de hoop dat een gebruiker een veelvoorkomend pakket verkeerd typt of de fouten niet opmerkt.

Ontwikkelaars moeten nieuwe pakketten goed bekijken voordat ze in een programmeerproject worden opgenomen, onderzoekers van JFrog Natan Nehorai en Brian Moussalli schreven in het online advies.

"Hoewel er geen eerdere aanvallen met kwaadaardige code werden waargenomen in de NuGet-repository, konden we bewijs vinden voor ten minste één recente campagne waarbij methoden zoals typosquatting werden gebruikt om kwaadaardige code te verspreiden", schreven ze. "Net als bij andere opslagplaatsen, moeten er bij elke stap van de softwareontwikkelingslevenscyclus veiligheidsmaatregelen worden genomen om ervoor te zorgen dat de softwaretoeleveringsketen veilig blijft."

Onmiddellijke code-uitvoering is problematisch

Bestanden die automatisch worden uitgevoerd door ontwikkelingstools zijn een zwak punt in de beveiliging en zouden moeten worden geëlimineerd of beperkt om het aanvalsgebied te verkleinen, aldus de onderzoekers. Die functionaliteit is een belangrijke reden waarom de npm- en PyPI-ecosystemen vergiftigingsproblemen hebben, in vergelijking met bijvoorbeeld het Go-pakketecosysteem.

"Ondanks het feit dat de ontdekte kwaadaardige pakketten sindsdien uit NuGet zijn verwijderd, lopen .NET-ontwikkelaars nog steeds een hoog risico op kwaadaardige code, aangezien NuGet-pakketten nog steeds faciliteiten bevatten om code onmiddellijk na installatie van het pakket uit te voeren", aldus de JFrog-onderzoekers in de blogpost. . "[A]lhoewel het is verouderd, wordt [een initialisatie]-script nog steeds gehonoreerd door Visual Studio en zal het zonder enige waarschuwing worden uitgevoerd bij het installeren van een NuGet-pakket."

JFrog adviseerde ontwikkelaars om te controleren op typefouten in geïmporteerde en geïnstalleerde pakketten en zei dat ontwikkelaars ervoor moeten zorgen dat ze "ze niet per ongeluk in hun project installeren of ze als een afhankelijkheid vermelden", aldus het bedrijf.

Bovendien moeten ontwikkelaars de inhoud van pakketten bekijken om er zeker van te zijn dat er geen uitvoerbare bestanden zijn die worden gedownload en automatisch worden uitgevoerd. Hoewel dergelijke bestanden veel voorkomen in sommige software-ecosystemen, zijn ze meestal een indicatie van kwaadwillende bedoelingen.

Door middel van verschillende tegenmaatregelen zijn de NuGet-repository — evenals npm en PyPI — langzaam maar zeker bezig de zwakke punten in de beveiliging weg te werken, zegt Menashe van JFrog. 

"Ik verwacht niet dat NuGet in de toekomst meer een doelwit zal worden, vooral niet als de NuGet-beheerders de ondersteuning voor het uitvoeren van code tijdens de pakketinstallatie volledig zouden verwijderen - wat ze al gedeeltelijk hebben gedaan", zegt hij.

Tijdstempel:

Meer van Donkere lezing