3 puan yazan GN⁺ 2025-10-31 | Henüz yorum yok. | WhatsApp'ta paylaş
  • NPM deposunda kimlik bilgisi hırsızlığı için hazırlanmış 100’den fazla kötü amaçlı paketin ağustostan bu yana tespit edilmeden yüklendiği ve toplamda 86 binden fazla kez indirildiği doğrulandı
  • Güvenlik şirketi Koi, 'PhantomRaven' adını verdiği saldırı kampanyasının NPM’in Remote Dynamic Dependencies (RDD) özelliğini kötüye kullanarak 126 kötü amaçlı paket dağıttığını bildirdi
  • RDD, paketlerin güvenilmeyen alan adlarından bağımlılık kodunu dinamik olarak indirmesine olanak tanıyan bir yapı ve bu nedenle statik analiz araçları tarafından tespit edilmiyor
  • Saldırganlar bu özelliği kullanarak HTTP bağlantısı üzerinden kötü amaçlı kod indirdi; paket meta verilerinde ise “0 Dependencies” olarak göründüğü için geliştiriciler ve güvenlik tarayıcıları bunu fark etmedi
  • Bu yapısal zafiyet, NPM ekosistemindeki güvenlik yönetiminin sınırlarını ve otomatik kurulum mekanizmasının risklerini ortaya koyuyor

NPM deposunda kötü amaçlı paketlerin yayılması

  • Saldırganlar, NPM kod deposundaki yapısal zayıflıkları kullanarak ağustostan bu yana 100’den fazla kimlik bilgisi hırsızlığı amaçlı paket yükledi
    • Paketlerin çoğu tespit edilmeden dağıtıldı ve toplam indirilme sayısı 86.000’in üzerine çıktı
  • Güvenlik şirketi Koi, bu saldırıyı PhantomRaven kampanyası olarak adlandırdı ve NPM’in belirli bir özelliğinin kötüye kullanıldığını analiz etti
    • Koi’ye göre 126 kötü amaçlı paketin yaklaşık 80’i, haberin yazıldığı sırada hâlâ NPM’de bulunuyordu

Remote Dynamic Dependencies (RDD) yapısındaki zafiyet

  • RDD, paketlerin harici web sitelerinden bağımlılık kodunu dinamik olarak indirmesine izin veren bir özellik
    • Normalde bağımlılıklar NPM’in güvenilir altyapısından indirilir; ancak RDD, HTTP gibi şifrelenmemiş bağlantılar üzerinden indirmeye de izin veriyor
  • PhantomRaven saldırganları bu özelliği kullanarak kodun kötü amaçlı URL’lerden indirilmesini sağladı (ör. http://packages.storeartifact.com/npm/unused-imports)
    • Bu tür bağımlılıklar geliştiriciler ve güvenlik tarayıcıları tarafından görünmez kalıyor ve paket bilgilerinde “0 Dependencies” olarak listeleniyor
  • NPM’in otomatik kurulum özelliği nedeniyle bu tür 'görünmez' bağımlılık kodları otomatik olarak çalıştırılıyor

Güvenlik araçlarının tespit sınırları

  • Koi’den Oren Yomtov, “PhantomRaven, mevcut güvenlik araçlarının kör noktalarını ustalıkla kötüye kullanan bir örnek” dedi
    • RDD, statik analiz araçları tarafından tespit edilmiyor
  • Bu sayede saldırganlar güvenlik doğrulamalarını atlatıp kötü amaçlı kod dağıtabildi

Ek zafiyet unsurları

  • Koi, RDD ile indirilen bağımlılıkların her kurulumda saldırganın sunucusundan yeniden indirildiğini açıkladı
    • Önbellek veya sürüm yönetimi olmadığı için, aynı paket kurulsa bile her seferinde farklı kötü amaçlı kodun enjekte edilmesi mümkün
  • Bu dinamik indirme yapısı, paket bütünlüğünün doğrulanmasını zorlaştırıyor

NPM’in yapısı ve arka plan

  • NPM, JavaScript için bir paket yöneticisi olup GitHub iştiraki npm, Inc. tarafından yönetiliyor
    • Node.js’in varsayılan paket yöneticisidir ve bir komut satırı istemcisi ile npm registry'den oluşur
    • registry, herkese açık ve ücretli özel paketleri barındırır; ayrıca web sitesi üzerinden aranabilir
  • Bu olay, NPM’in otomatik bağımlılık yönetimi yapısının saldırılar için kötüye kullanılabildiğini gösteren bir örnek olarak değerlendiriliyor

Diğer notlar

  • Haberin sonunda gereksiz JavaScript çalıştırmanın engellenmesi gerektiği yönünde bir görüşe yer verildi
    • Ancak bu saldırı, zorunlu JavaScript kodunun bile kötüye kullanılabildiğini gösteren bir örnek olarak işaret ediliyor

Henüz yorum yok.

Henüz yorum yok.