Yeni bir NuGet yazım hatası kampanyası, kodu yürütmek ve kötü amaçlı yazılımları gizlice yüklemek için Visual Studio’nun MSBuild entegrasyonunu kötüye kullanan kötü amaçlı paketleri gönderiyor.
NuGet, geliştiricilerin projeleri için çalışmaya hazır .NET kitaplıklarını indirmelerine ve dahil etmelerine olanak tanıyan açık kaynaklı bir paket yöneticisi ve yazılım dağıtım sistemidir.
Npm ve PyPI gibi yazılım dağıtım sistemlerini hedef alan tehdit aktörleri, son dönemde ağırlıklı olarak Windows kullanıcılarını hedef alan ve yazılım geliştiriciler arasında oldukça popüler hale gelen NuGet’e ilgi gösteriyor.
MSBuild ile kodu gizleme
En son NuGet kampanyası, 15 Ekim 2023’te ReversingLabs tarafından tespit edildi ve kötü amaçlı yazılım yüklemek için farklı yazım hatası paketleri kullanıldı.
Bu kampanyada görülen paketlerden bazıları şunlardır:
- CData.NetSuite.Net.Framework
- CData.Salesforce.Net.Framework
- Chronos.Platformlar
- DiscordsRpc
- Kraken.Değişim
- KucoinExchange.Net
- MinecraftPocket.Sunucu
- Monero
- Pathoschild.Stardew.Mod.Build.Config
- SolanaCüzdan
- ZendeskApi.Client.V2
Bu kampanyadaki yeni unsur, indiricileri kurulum komut dosyalarına dahil etme şeklindeki standart yaklaşımı kullanmak yerine, bu paketlerin kod yürütme için NuGet’in MSBuild entegrasyonunu kullanmasıdır.
NuGet’in MSBuild entegrasyonları, yerel projeleri desteklemek, derleme ve test sürecini otomatikleştirmek ve geliştiricilere özel eylemler tanımlama ve bağımlılıkları çözme yeteneği vermek amacıyla NuGet v2.5’te sunulan bir özelliktir.
NuGet ‘\build’ klasörü içeren bir paket yüklediğinde otomatik olarak bir MSBuild ekler
Yazılım projelerinin oluşturma ve paketleme sürecini geliştirmek için eklenmesine rağmen bu yeni NuGet entegrasyonu, bir paket yüklendiğinde komut dosyalarını otomatik olarak çalıştırmak için yeni bir yöntem eklemesi nedeniyle getirdiği güvenlik etkileriyle ilgili endişeleri artırdı.
ReversingLabs tarafından tespit edilen vakada, kötü amaçlı kod, Paketlerin önceki sürümlerinde kullanılan PowerShell betiklerinin işlevselliğini uygulayan özellik.
Çalıştırıldıktan sonra kod, harici bir adresten yürütülebilir bir dosya alır ve onu yeni bir süreçte çalıştırır.
Bu teknik ilk olarak 2019 yılında bir güvenlik araştırmacısı tarafından, NuGet paketleri yüklendiğinde MSBuild işleminin kod çalıştırmak için nasıl kötüye kullanılabileceğini göstermek amacıyla tanıtıldı.
ReversingLab’dan Karlo Zanki, BleepingComputer ile paylaşılan bir raporda “Öncelikle, dosyanın ilk satırındaki ‘IAmRootDemo’ dize yapısı bizi bu yürütme tekniğinin köküne götürdü” diye açıklıyor.
“Birkaç yıl önce, 2019’da IAmRoot paketi C. Augusto Proiete tarafından yayınlandı. Paketin amacı: ‘Herhangi bir NuGet paketinin makinenizde rastgele kod çalıştırabileceğini göstermek.'”
Ancak bu, tehdit aktörlerinin kötü amaçlı NuGet paketlerinde bu özelliği kullandığı belgelenen ilk vakadır.
Mevcut kampanyaların gelişimi
ReversingLabs, tespit ettikleri ve kaldırılan NuGet paketlerinin Ağustos 2023’te başlayan ve devam eden bir kampanyanın parçası olduğunu bildirdi.
Ancak Ekim ortasına kadar MSBuild entegrasyonlarını kötüye kullanmadı.
Önceki sürümler, kötü amaçlı yazılım yükünü GitHub deposundan almak için PowerShell komut dosyalarını (‘init.ps1’) kullanıyordu.
Bu, saldırganların saldırılarını daha gizli hale getirmek için tekniklerini sürekli olarak geliştirdiklerini gösteriyor.
Analistler ayrıca Phylum tarafından ayın başında bildirilen ve saldırganların kripto projelerini taklit etmek ve SeroXen RAT sunmak için yazım hatası kullandığı bir kampanyayla güçlü bağların gözlemlendiğini de bildirdiler.
ReversingLabs, tehdit aktörlerinin önceki paketler kaldırıldıktan hemen sonra yeni paketler yüklemeye çalıştığını ve kampanyayı sürdürme niyetini gösterdiğini bildirdi.