Siber saldırganlar bir kez daha JavaScript geliştiricilerini hedef alıyor — bu sefer GitHub genelinde popüler JavaScript kütüphanesi jQuery için Truva atı haline getirilmiş paketleri dağıtan “karmaşık ve kalıcı bir tedarik zinciri saldırısı” ile. Düğüm Paket Yöneticisi (npm)ve jsDelivr depoları.
Her paket, jQuery’nin küçük bir farkla bir kopyasını içerir: jQuery prototipinin bir parçası olan son işlev, web sitesi form verilerini çıkarmak ve bunları birçok URL’den birine göndermek üzere tasarlanmış ek kötü amaçlı kod içerecek şekilde değiştirilmiştir.
Bu, Phylum Araştırma Ekibi’ne göre; saldırganların, bu tür tipik yazılım tedarik zinciri saldırılarından farklı olarak, belirgin bir adlandırma ve atıf örüntüsü göstermede alışılmadık bir eksiklik gösterdiğini belirten ekip, “bu durum, paketler arasında yüksek değişkenlik nedeniyle öne çıkıyor” diye yazdı. son blog yazısı.
Araştırmaya göre, bilinmeyen saldırganlar 26 Mayıs’tan bu yana düzinelerce kötü amaçlı jQuery paketi yayıyor. Phylum araştırmacıları, ilk kötü amaçlı jQuery varyantını keşfetti npmJavaScript’in çalışma zamanı Node.js için varsayılan paket yöneticisi; bu varyant daha sonra düzinelerce npm paketleri bir aydan fazla bir süre. Daha sonra araştırmacılar, GitHub gibi diğer platformlarda Truva atı haline getirilmiş jQuery’nin örneklerini buldular ve hatta jsDelivr’de içerik dağıtım ağı (CDN) tarafından barındırılan bir kaynakta bir sürüm buldular.
Araştırmacılar, şimdiye kadar yayınlanan paketlerin hacminin “nispeten minimal” olduğunu ve toplamda yaklaşık 68 tane bulunduğunu söyledi. Paketler genellikle jquery.min.js olarak adlandırılırken, registration.min.js, icon.min.js ve fontawesome.js gibi diğer varyasyonları da vardır. Gönderiye göre, “Sızdırma URL’leri her paket için neredeyse benzersizdi ve saldırgan npm’e yeni kullanıcı adları altında yayın yaptı.”
Bazen tek bir kullanıcı birden fazla, ilişkili kötü amaçlı jQuery paketi yayınlarken, diğer zamanlarda saldırganlar aynı proje içinde farklı isimlere sahip birden fazla dosya sürümü içeriyordu. Dahası, hemen hemen her paket npm yayınlarına tipik olarak dahil edilmeyen kişisel dosyalar da içerir, örneğin npm önbellek klasörü, npm günlükleri klasörü ve termux.properties dosyası.
“Genel olarak, bu saldırı bu ölçekte gördüğümüz çoğu saldırıdan farklı, çünkü bunlar genellikle açık, iyi tanımlanmış bir örüntüye ve belirgin bir otomatik yöne sahip,” diye belirtti ekip. “Burada, paketlerin özel doğası ve özel değişkenliği, yayınlandıkları uzun zaman dilimiyle birlikte, her paketin manuel olarak bir araya getirildiğini ve yayınlandığını gösteriyor.”
Hedefli Tedarik Zinciri Saldırı Çabası mı?
Saldırının manuel yapısı, bunun hedefli bir çaba gibi göründüğüne dair kanıtlar sunuyor: Kötü amaçlı yazılımın gerçekleştirebilmesi için kurbanın belirli bir dizi eylem gerçekleştirmesi gerekiyor.
Gönderide, “Kötü amaçlı yazılımın tetiklenmesi için kullanıcının kötü amaçlı paketlerden birini yüklemesi, eklenen truva atı haline getirilmiş jQuery dosyasını kullanması ve ardından end fonksiyonunu veya fadeTo fonksiyonunu çağırması gerekiyor.” ifadeleri yer alıyor.
Bununla birlikte, end fonksiyonu jQuery kullanan geliştirmelerde doğrudan yaygın olarak kullanılmıyor gibi görünse de, jQuery’nin animasyon araç setinden olan fadeTo fonksiyonu bu end metodunu çok daha yaygın olarak kullanıyor, ekip bunu belirtti.
Paylaşımda, “Bu belirli koşullar zinciri, bunun son derece hedefli bir saldırı mı yoksa saldırganın sadece ortama uyum sağlayıp bu paketleri indiren ve kullanan kullanıcıları rastgele mi etkilediğini belirsizleştiriyor” denildi.
Ayrıca, kötü amaçlı yazılımın tetiklenmesi için gereken “dar koşullar kümesine” rağmen, geniş Paketlerin dağıtımı Ekip, saldırının potansiyel olarak “birçok şüphesiz geliştiriciyi” etkileyen geniş bir etkiye sahip olabileceği ve “tedarik zinciri tehdit aktörlerinin artan karmaşıklığını ve geniş erişim potansiyelini” örneklendirebileceği anlamına geldiğini belirtti.
Daha Fazla Dikkat Gerekiyor
Gerçekten de, kötü amaçlı npm ve diğer kod paketlerinin popüler geliştirici depolarına yayınlanması, devlet destekli tehdit aktörleri gibi gerçek bir güvenlik salgını haline geldi. Kuzey Kore’nin Aytaşı Kar Yağışı ve bu taktiği bir yol olarak kullanan diğer tehdit aktörleri zehir Yazılım tedarik zinciri boyunca kodu tarayarak minimum çabayla geniş bir saldırı yüzeyine ulaşabilirsiniz.
Kod depolarını kullanan tedarik zinciri saldırılarındaki artış, yalnızca projeleri yöneten açık kaynak toplulukları içinde değil, aynı zamanda geliştiricilere dağıtılmadan önce geliştirme projelerinde kullanılan herhangi bir kodu taramaları teşvik edilen kuruluşlar arasında da daha fazla dikkat gerektiriyor.
jQuery kullanan geliştiricilerin kötü amaçlı paketleri yüklemesini önlemek için Phylum araştırmacıları, kampanyayla ilgili tüm paketlerin adlarının bir listesini ve bunların yayınlandığı tarihi ve bunları kimin yayınladığıyla ilişkili kullanıcı adını blog yazısına eklediler. Ayrıca kampanyayla ilgili uzun bir alan adı listesi de eklediler.