.NET yazılım geliştiricileri için NuGet deposunda barındırılan bir fırıncı düzinelerce paket, aslında yükleme sistemini tehlikeye atacak ve arka kapı işleviyle kripto çalan kötü amaçlı yazılımları indirecek kötü amaçlı Truva atı bileşenleridir.

Yazılım tedarik zinciri güvenlik firması JFrog, 21 Mart’ta yayınlanan bir analizde, o zamandan beri kaldırılan 13 paketin 166.000’den fazla indirildiğini ve Coinbase ve Microsoft ASP.NET gibi diğer meşru yazılımların kimliğine büründüğünü belirtti. JFrog saldırıyı, şirketin araştırmacıları kurulum sırasında bir dosya – init.ps1 – yürütüldüğünde şüpheli etkinlik fark ettiğinde ve ardından yürütülebilir bir dosyayı indirip çalıştırdığında tespit etti.

.NET ve C# programlama dilleri saldırganlar arasında daha az bilinmesine rağmen, kötü niyetli kodun keşfi, saldırganların tedbirsiz geliştiricileri tehlikeye atmanın bir yolu olarak yazılım tedarik zincirine daha fazla dallandığını gösteriyor. JFrog.

“NuGet paket kurulumunda kötü amaçlı kod yürütme teknikleri önemsiz olsa da Python veya JavaScript’tekinden daha az belgelenmiştir ve bazıları kullanımdan kaldırılmıştır, bu nedenle bazı acemi saldırganlar bunun mümkün olmadığını düşünebilir” diyor. “Ve belki de NuGet, kötü amaçlı paketleri otomatik olarak daha iyi filtreliyor.”

Yazılım tedarik zinciri, geliştiricilerin sistemlerini tehlikeye atma veya geliştiricilerin uygulamaları aracılığıyla son kullanıcıya fark edilmeyen kod yayma girişimleriyle saldırganlar tarafından giderek daha fazla hedef alınır hale geldi. Python Paket Dizini (PyPI) ve JavaScript odaklı Düğüm Paket Yöneticisi (npm) ekosistemleri, açık kaynak projelerini hedef alan tedarik zinciri saldırılarının sık hedefleridir.

Aşağıdakilerden oluşan .NET yazılım ekosistemine yönelik saldırı yaklaşık 350.000 benzersiz paketJFrog’a göre , kötü amaçlı paketler ilk kez NuGet’i hedef alıyor, ancak şirket daha önce bir spam kampanyasının geliştiricilere kimlik avı bağlantıları aktardığını belirtmişti.

Yazım Hatası Hala Bir Sorun

Saldırı, yazım hatalarının bir sorun olmaya devam ettiğinin altını çiziyor. Bu tür bir saldırı, bir kullanıcının ortak bir paketi yanlış yazacağı veya hataları fark etmeyeceği umuduyla, benzer görünen adlara (veya yaygın yazım hataları olan aynı ada) sahip paketler oluşturmayı içerir.

JFrog araştırmacıları, geliştiricilerin bir programlama projesine dahil etmeden önce yeni paketlere iyi bakmaları gerektiğini söylüyor. Natan Nehorai ve Brian Moussalli çevrimiçi danışmanlıkta yazdı.

“NuGet deposunda daha önce hiçbir kötü amaçlı kod saldırısı gözlemlenmemiş olsa da, kötü amaçlı kodu yaymak için yazım hatası gibi yöntemler kullanan en az bir yeni kampanya için kanıt bulabildik” diye yazdılar. “Diğer depolarda olduğu gibi, yazılım tedarik zincirinin güvenli kalmasını sağlamak için yazılım geliştirme yaşam döngüsünün her adımında güvenlik önlemleri alınmalıdır.”

Anında Kod Yürütme Sorunlu

Araştırmacılar, geliştirme araçları tarafından otomatik olarak yürütülen dosyaların bir güvenlik zayıflığı olduğunu ve saldırı yüzey alanını azaltmak için ortadan kaldırılması veya sınırlandırılması gerektiğini belirtti. Bu işlevsellik, örneğin Go paketi ekosistemiyle karşılaştırıldığında npm ve PyPI ekosistemlerinin zehirlenme sorunları yaşamasının önemli bir nedenidir.

JFrog araştırmacıları, blog gönderisinde “Keşfedilen kötü amaçlı paketlerin NuGet’ten kaldırılmış olmasına rağmen, NuGet paketleri hala paket kurulumundan hemen sonra kod çalıştırma olanakları içerdiğinden, .NET geliştiricileri kötü amaçlı kodlara karşı yüksek risk altındadır.” . “[A]reddedilmiş olsa da, [an initialization] komut dosyası hala Visual Studio tarafından onurlandırılmaktadır ve bir NuGet paketi kurulurken herhangi bir uyarı olmadan çalışacaktır.”

JFrog, geliştiricilere içe aktarılan ve kurulan paketlerdeki yazım hatalarını kontrol etmelerini tavsiye etti ve geliştiricilerin bunları “yanlışlıkla projelerine yüklememelerini veya bir bağımlılık olarak bahsetmemelerini” sağlamaları gerektiğini söyledi.

Ek olarak, geliştiriciler, indirilmekte olan ve otomatik olarak yürütülen yürütülebilir dosya olmadığından emin olmak için paketlerin içeriğini görüntülemelidir. Bu tür dosyalar bazı yazılım ekosistemlerinde yaygın olmakla birlikte, genellikle kötü niyetli niyetin bir göstergesidir.

JFrog’dan Menashe, çeşitli karşı önlemler yoluyla, NuGet deposunun yanı sıra npm ve PyPI’nin yavaş ama emin adımlarla güvenlik zayıflıklarını ortadan kaldırdığını söylüyor.

“NuGet’in gelecekte daha fazla bir hedef haline gelmesini beklemiyorum, özellikle de NuGet bakımcıları paket kurulumunda kod çalıştırma desteğini tamamen kaldırırlarsa – ki bunu zaten kısmen yapmışlar” diyor.



siber-1