Siber güvenlik firması JFrog’un yeni bulguları, npm ekosistemini hedefleyen kötü amaçlı yazılımın, npm komut satırı arabirimi (CLI) aracındaki “beklenmedik bir davranıştan” yararlanarak güvenlik kontrollerinden kaçabileceğini gösteriyor.
npm CLI’nin yükleme ve denetleme komutları, bir paketi ve tüm bağımlılıklarını bilinen güvenlik açıklarına karşı kontrol etmek için yerleşik yeteneklere sahiptir ve kusurları vurgulayarak geliştiriciler için etkin bir şekilde bir uyarı mekanizması görevi görür.
Ancak JFrog’un belirlediği gibi, paketler belirli sürüm biçimlerini takip ettiğinde güvenlik tavsiyeleri görüntülenmez, bu da sistemlerine doğrudan veya paketin bağımlılıkları yoluyla kritik kusurların eklenebileceği bir senaryo oluşturur.
Spesifik olarak, sorun yalnızca kurulu paket sürümü bir npm modülünün yayın öncesi sürümünü belirtmek için dahil edilen bir tire (örn. 1.2.3-a) içerdiğinde ortaya çıkar.
Proje sahipleri, normal npm paketi sürümleri ile yayın öncesi sürümler arasındaki tutarsızlığı amaçlanan bir işlevsellik olarak ele alırken, bu aynı zamanda açık kaynak ekosistemini zehirlemek isteyen saldırganlar tarafından suistimal için olgunlaşır.
Or Peles, “Tehdit aktörleri, değerli işlevsellik nedeniyle diğer geliştiriciler tarafından dahil edilecek masum görünen paketlerine kasıtlı olarak savunmasız veya kötü amaçlı kod yerleştirerek veya yazım hatası veya bağımlılık karışıklığı gibi bulaşma tekniklerinden kaynaklanan bir hata olarak bu davranıştan yararlanabilir” dedi. .
Başka bir deyişle, bir rakip, yayın öncesi sürüm biçiminde görünüşte zararsız bir paket yayınlayabilir, bu daha sonra potansiyel olarak diğer geliştiriciler tarafından alınabilir ve aksi yöndeki kanıtlara rağmen paketin kötü niyetli olduğu konusunda uyarılmayabilir.
Geliştirme, yazılım tedarik zincirinin çeşitli taraflar arasında bir güven zinciri olarak nasıl inşa edildiğini ve bir bağlantının uzlaşmasının, hileli üçüncü taraf bağımlılığını tüketen tüm aşağı akış uygulamalarını nasıl etkileyebileceğini bir kez daha yineliyor.
Bu tür tehditlere karşı koymak için, kaynağın tamamen güvenilir olduğu bilinmediği sürece, geliştiricilerin yayın öncesi bir sürümle npm paketleri kurmaktan kaçınmaları önerilir.