Özel depolardaki paketlerin varlığını belirlemenizi sağlayan NPM'ye yönelik bir saldırı

NPM'de kapalı depolardaki paketlerin varlığını tespit etmenize olanak tanıyan bir kusur tespit edildi. Sorun, depoya erişimi olmayan bir üçüncü taraftan mevcut ve mevcut olmayan bir paket talep edildiğinde farklı yanıt sürelerinden kaynaklanıyor. Özel depolardaki herhangi bir pakete erişim yoksa, kayıt defteri.npmjs.org sunucusu “404” kodlu bir hata döndürür, ancak istenen adda bir paket varsa hata gözle görülür bir gecikmeyle verilir. Saldırgan, sözlükleri kullanarak paket adlarını arayarak bir paketin varlığını belirlemek için bu özelliği kullanabilir.

Özel depolarda paket adlarının belirlenmesi, genel ve dahili depolardaki bağımlılık adlarının kesişimini manipüle eden bir bağımlılık karıştırma saldırısı gerçekleştirmek için gerekli olabilir. Saldırgan, kurumsal depolarda hangi dahili NPM paketlerinin bulunduğunu bilerek, aynı adlara ve daha yeni sürüm numaralarına sahip paketleri genel NPM deposuna yerleştirebilir. Derleme sırasında dahili kütüphaneler ayarlardaki depolarına açıkça bağlanmamışsa, npm paket yöneticisi genel depoyu daha yüksek öncelikli olarak değerlendirecek ve saldırgan tarafından hazırlanan paketi indirecektir.

GitHub'a sorun Mart ayında bildirildi ancak mimari sınırlamalar nedeniyle saldırıya karşı koruma eklemeyi reddetti. Özel depoları kullanan şirketlerin, genel depoda çakışan adların görünümünü periyodik olarak kontrol etmeleri veya özel depolardaki paketlerin adlarını tekrarlayan adlarla kendi adlarına taslaklar oluşturmaları önerilir; böylece saldırganlar, paketlerini çakışan adlarla yerleştiremez.

Kaynak: opennet.ru

Yorum ekle