Bağımlılık saldırısı PayPal, Microsoft, Apple, Netflix, Uber ve diğer 30 şirkette kod yürütülmesine izin verir

Birkaç gün önce uygulamalarda bağımlılıklara saldırmaya izin veren şaşırtıcı derecede basit bir yöntem piyasaya sürüldü dahili paket depoları kullanılarak geliştirilmiştir. Sorunu belirleyen araştırmacılar kodunuzu çalıştırabildiler PayPal, Microsoft, Apple, Netflix, Uber, Tesla ve Shopify dahil 35 şirketin dahili sunucularında.

Saldırılar, Bug Bounty programlarının bir parçası olarak, saldırıya uğrayan şirketlerle koordineli olarak gerçekleştirildi ve failler, güvenlik açıklarını tespit etmek için şimdiden 130.000 $ bonus aldı.

Yöntem şu gerçeğe dayanmaktadır: birçok şirket dahili uygulamalarında NPM, PyPI ve RubyGems'in standart depo bağımlılıklarını kullanırve kendi depolarından herkese açık olarak dağıtılmayan veya indirilmeyen dahili bağımlılıklar.

Sorun, paket yöneticilerinin npm, pip ve gem gibi Şirketlerin iç bağımlılıklarını halka açık depolardan bile indirmeye çalışıyorlar. Bir saldırı için sadece iç bağımlılıkları olan paketlerin adlarını tanımlayın ve aynı adlarla kendi paketlerinizi oluşturun NPM, PyPI ve RubyGems'in halka açık depolarında.

Sorun NPM, PyPI ve RubyGems'e özgü değildir ve NuGet, Maven ve Yarn gibi diğer sistemlerde de kendini gösterir.

Önerilen yöntem fikri, bir araştırmacının yanlışlıkla GitHub'da yayınlanan halka açık kodda, birçok şirket, manifest dosyalarından ek bağımlılıklardan bahsetmez dahili projelerde veya genişletilmiş işlevleri uygularken kullanılır. Web hizmetleri için JavaScript kodunda ve birçok şirketin Node.JS, Python ve Ruby projelerinde benzer izler bulundu.

Ana sızıntılar içeriğin gömülmesiyle ilgiliydi oluşturma işlemi sırasında genel kullanıma açık JavaScript kodundaki package.json dosyalarından ve bağımlılık adlarını yargılamak için kullanılabilen require () çağrılarında gerçek yol öğelerinin kullanımıyla birlikte.

Birkaç milyon kurumsal alanın taranması, birkaç bin JavaScript paketi adını ortaya çıkardı NPM havuzunda olmayanlar. Dahili paket isimlerinin bir veritabanını derleyen araştırmacı, Bug Bounty programlarına katılan şirketlerin altyapısını kesmek için bir deney yapmaya karar verdi. Sonuçlar şaşırtıcı derecede etkiliydi ve araştırmacı, kodunu, sürekli entegrasyon sistemlerine dayalı olarak inşa etmekten veya test etmekten sorumlu birçok geliştirme bilgisayarında ve sunucusunda çalıştırabildi.

Bağımlılıkları indirirken, paket yöneticileri npm, pip ve gem, daha yüksek öncelik olarak kabul edilen birincil genel depolardan NPM, PyPI ve RubyGems paketlerini kurdu.

Özel şirket depolarında aynı isimlere sahip benzer paketlerin varlığı herhangi bir uyarı gösterilmeden veya çökmelere neden olmadan göz ardı edildi yöneticilerin dikkatini çekebilir. PyPI'de, indirme önceliği sürüm numarasından etkileniyordu (depodan bağımsız olarak, paketin en son sürümü indirildi). NPM ve RubyGems'te, öncelik yalnızca depoya bağlıydı.

Araştırmacı, NPM, PyPI ve RubyGems depolarına, bulunan dahili bağımlılıkların adlarını geçen paketleri yerleştirdi, sistem hakkında bilgi toplamak ve alınan bilgileri yüklemek için kurulumdan önce çalışan komut dosyasına (NPM'ye önceden yüklenmiş) kod ekledi. dış ana bilgisayar.

Saldırının başarısı hakkında bilgi vermek için, DNS protokolü üzerinden gizli kanal iletişimlerini organize etme yöntemi olan harici trafiği engelleyen güvenlik duvarlarını atlayın. Çalışmakta olan kod, saldıran etki alanının kontrolü altındaki saldırgan etki alanındaki ana bilgisayarı çözdü ve bu da DNS sunucusundaki başarılı işlemler hakkında bilgi toplamayı mümkün kıldı. Ana bilgisayar, kullanıcı adı ve mevcut yol hakkındaki bilgiler aktarıldı.

Kaydedilen tüm kod yürütmelerinin% 75'i NPM paketi indirmeleriyle ilişkilendirildi, bunun başlıca nedeni Python ve Ruby bağımlılık adlarından önemli ölçüde daha fazla dahili JavaScript modülü adı olmasıydı.

kaynak: https://medium.com/


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.