Node.js JavaScript çalışma zamanı ortamı için npm kaydı, adı verilen şeye karşı hassastır. açık kafa karışıklığı potansiyel olarak tehdit aktörlerinin proje bağımlılıklarında kötü amaçlı yazılımları gizlemesine veya kurulum sırasında rastgele komut dosyası yürütmesine izin verebilecek bir saldırı.
Eski bir GitHub ve npm mühendislik yöneticisi olan Darcy Clarke, “Bir npm paketinin bildirimi, tarball’ından bağımsız olarak yayınlanır”, söz konusu geçen hafta yayınlanan teknik bir yazıda. “Bildiriler, tarball’ın içeriğine göre asla tam olarak doğrulanmaz.”
Clarke, “Ekosistem, genel olarak manifesto ve tarball’ın içeriğinin tutarlı olduğunu varsaymıştır” diye ekledi.
Sorun, özünde, bildirim ve paket meta verilerinin ayrıştırılmış olması ve hiçbir zaman birbirleriyle çapraz referanslandırılmaması, dolayısıyla bir uyumsuzluk olduğunda beklenmedik davranışlara ve kötüye kullanıma yol açmasından kaynaklanmaktadır.
Sonuç olarak, bir tehdit aktörü, gizli bağımlılıklar içeren bir bildirim dosyasına (package.json) sahip bir modülü yayınlamak ve yükleme komut dosyalarını çalıştırmak için bu boşluktan yararlanabilir ve bu daha sonra bir tedarik zinciri saldırısına ve zehirlenmeye yol açabilir. bir geliştiricinin ortamı.
Sonatype araştırmacısı ve gazeteci Axe Sharma, “Etkili DevSecOps iş akışları ve araçları olmadan geliştirme ortamlarında, özellikle de uygulamalar körü körüne açık kaynak paketlerinde bulunan gerçek (savunmasız veya kötü amaçlı) dosyalardan ziyade uygulama bildirimlerine güvendiğinde, açık kafa karışıklığı sorunlu hale geliyor.” söz konusu.
Bulgu, açık kaynak havuzundan bir paket indirirken tek başına paket bildirim dosyalarında bulunan meta verilere güvenilemeyeceğinin altını çiziyor ve bu da kullanıcıların paketleri tara herhangi bir anormal özellik ve istismar için.
Clarke’a göre GitHub’ın sorunun en azından Kasım 2022’nin başından beri farkında olduğu söyleniyor ve Microsoft yan kuruluşu, Mart 2023 itibarıyla sorunu dahili olarak çözmeyi planladığını belirtiyor. Ancak sorun bugüne kadar çözülmedi.
Resmi bir düzeltmenin yokluğunda, güvenlik araştırmacısı Felix Pankratz bir Python betiği npm modüllerindeki bildirimler arasındaki uyumsuzlukları test etmek için kullanılabilir.
Geliştirme aynı zamanda geliştirici güvenlik şirketi Snyk’in Redhunt Labs ile ortaklaşa 11.900 deposunu incelemesiyle geldi. ilk 1.000 GitHub kuruluşu güvensiz bağımlılıklar için, 15.584 savunmasız bağımlılık dosyasında 1.229.601 kusurun ortaya çıkarılması.
“Güvenilmeyen verilerin seri hale getirilmesi Java havuzlarında 130.831 vaka ile en yaygın güvenlik açığı türüydü ve bu, tanımlanan toplam güvenlik açıklarının yüzde 40’ını oluşturuyor.” söz konusu.
JavaScript tabanlı projelerde, prototip kirliliği 343.332 olayla önde gelen eksiklik olarak ortaya çıktı. Hizmet reddi (DoS) açıkları, sırasıyla 19.652 ve 56.331 oluşumla Python ve Ruby projelerinde en çok katkıda bulundu.
Güvenlik araştırmacıları Umair Nehri ve Vandana Verma Sehgal, “Yazılım tedarik zincirlerinin güvenlik durumunu bozan savunmasız bağımlılık tehdidi kalıcıdır” dedi. “Bu nedenle geliştiriciler, projelerinde kullandıkları bağımlılıklara dikkat etmeli ve bilinen herhangi bir güvenlik açığından yamalanmış halde tutmak için onları güncel tutmalıdır.”