6.1 KiB
Bağımlılık Karışıklığı
Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
- Bir cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi HackTricks'te reklam görmek ister misiniz? ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? ABONELİK PLANLARINI kontrol edin!
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonu
- Resmi PEASS & HackTricks ürünlerini alın
- Katılın 💬 Discord grubuna veya telegram grubuna veya Twitter'da beni takip edin 🐦@carlospolopm.
- Hacking püf noktalarınızı paylaşarak hacktricks deposuna ve hacktricks-cloud deposuna PR gönderin.
{% embed url="https://websec.nl/" %}
Temel Bilgiler
Özetle, bir bağımlılık karışıklığı zafiyeti, bir proje yanlış yazılmış bir kütüphaneyi kullandığında, mevcut olmayan veya belirtilmemiş bir sürümle ve kullanılan bağımlılık deposunun güncellenmiş sürümleri toplamaya izin verdiğinde meydana gelir.
- Yanlış yazılmış:
requests
yerinereqests
içe aktar - Mevcut olmayan: Artık mevcut olmayan iç bir kütüphane olan
company-logging
i içe aktar - Belirtilmemiş sürüm: Mevcut iç
company-requests
kütüphanesini içe aktar, ancak depo genel depoları kontrol ederek daha büyük sürümlerin olup olmadığını kontrol eder.
Sömürü
{% hint style="warning" %} Tüm durumlarda saldırganın sadece kurban şirketin kullandığı kütüphanelerin adını taşıyan zararlı bir paket yayınlaması yeterlidir. {% endhint %}
Yanlış Yazılmış & Mevcut Olmayan
Şirketinizin iç olmayan bir kütüphaneyi içe aktarmaya çalıştığında, kütüphanelerin deposunun bunu genel depolarda arayacağı oldukça olasıdır. Eğer bir saldırgan bunu oluşturduysa, kodunuz ve çalışan makineleriniz büyük olasılıkla tehlikeye girecektir.
Belirtilmemiş Sürüm
Geliştiricilerin kütüphanenin sürümünü belirtmemesi veya sadece bir ana sürümü belirtmesi çok yaygındır. Ardından, yorumlayıcı bu gereksinimleri karşılayan en son sürümü indirmeye çalışacaktır.
Eğer kütüphane bilinen harici bir kütüphane ise (örneğin python requests
), bir saldırgan pek bir şey yapamaz, çünkü requests
adında bir kütüphane oluşturamaz (orijinal yazar değilse).
Ancak, kütüphane iç ise, bu örnekte olduğu gibi requests-company
, eğer kütüphane deposu dışarıdan yeni sürümleri de kontrol etmeye izin veriyorsa, genelde bulunan yeni bir sürüm arayacaktır.
Bu nedenle, bir saldırganın şirketin requests-company
kütüphanesini 1.0.1 sürümü olarak kullandığını bildiğini varsayalım (küçük güncellemelere izin verir). O, requests-company
kütüphanesini 1.0.2 sürümünü yayınlayabilir ve şirket iç kütüphanenin yerine bu kütüphaneyi kullanacaktır.
AWS Düzeltme
Bu zafiyet, AWS CodeArtifact'da bulundu (detayları bu blog yazısında okuyun).
AWS, iç bağımlılıkların dış depolardan indirilmesini önlemek için bir kütüphanenin içsel veya harici olup olmadığını belirtmeye izin vererek bunu düzeltti.
Zafiyetli Kütüphanelerin Bulunması
Bağımlılık karışıklığı hakkındaki orijinal yazıda yazar, binlerce açıkta kalan package.json dosyasını arayarak javascript projelerinin bağımlılıklarını aradı.
Referanslar
- https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610
- https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d
{% embed url="https://websec.nl/" %}
Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
- Bir cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi HackTricks'te reklam görmek ister misiniz? ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? ABONELİK PLANLARINI kontrol edin!
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonu
- Resmi PEASS & HackTricks ürünlerini alın
- Katılın 💬 Discord grubuna veya telegram grubuna veya Twitter'da beni takip edin 🐦@carlospolopm.
- Hacking püf noktalarınızı paylaşarak hacktricks deposuna ve hacktricks-cloud deposuna PR gönderin.