6 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 siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını 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 PLANLARI'na göz atın!
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuzu
- Resmi PEASS & HackTricks ürünlerini edinin
- 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, var 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 - Var olmayan: Artık var olmayan bir iç kütüphane olan
company-logging
i içe aktar - Belirtilmemiş sürüm: Var olan iç
company-requests
kütüphanesini içe aktar, ancak depo genel depolardan daha büyük sürümler var mı diye 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 kötü amaçlı bir paket yayınlaması yeterlidir. {% endhint %}
Yanlış Yazılmış & Var 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. 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 oldukça 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 (asıl yazar değilse).
Ancak, kütüphane içsel ise, bu örnekte olduğu gibi requests-company
gibi, eğer kütüphane deposu dışarıdan da yeni sürümleri kontrol etmeye izin veriyorsa, genelde bulunan daha 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ü olarak yayınlayabilir ve şirket iç kütüphanenin yerine bu kütüphaneyi kullanacaktır.
AWS Düzeltmesi
Bu zafiyet, AWS CodeArtifact'ta bulundu (detayları bu blog yazısında okuyun).
AWS, iç bağımlılıkları dış depolardan indirmeyi ö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ı buldu.
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 siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını 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 PLANLARI'na göz atın!
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuzu
- Resmi PEASS & HackTricks ürünlerini edinin
- 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.