5.6 KiB
Bağımlılık Karışıklığı
htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!
- Bir cybersecurity şirketinde çalışıyor musunuz? Şirketinizi HackTricks'te reklamını görmek ister misiniz? veya PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz? ABONELİK PLANLARINI kontrol edin!
- Özel NFT'lerimizden oluşan PEASS Ailesi'ni keşfedin
- Resmi PEASS & HackTricks ürünlerini edinin
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter'da 🐦@carlospolopm'u takip edin.
- Hacking hilelerinizi hacktricks repo'ya ve hacktricks-cloud repo'ya PR göndererek paylaşın.
Temel Bilgiler
Özet olarak, bir bağımlılık karışıklığı zafiyeti, bir projenin yanlış yazılmış, var olmayan veya belirtilmemiş bir sürümle bir kütüphaneyi kullandığı durumlarda ve kullanılan bağımlılık deposu, güncellenmiş sürümleri halka açık depolardan toplamaya izin veriyorsa ortaya çıkar.
- Yanlış yazılmış:
requests
yerinereqests
içe aktar - Var olmayan: Artık var olmayan bir dahili kütüphane olan
company-logging
i içe aktar - Belirtilmemiş sürüm: Bu örnekte olduğu gibi dahili var olan
company-requests
kütüphanesini içe aktar, ancak depo halka açık depoları kontrol ederek daha büyük sürümler olup olmadığına bakar.
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ış ve Var Olmayan
Şirketinizin dahili olmayan bir kütüphaneyi içe aktarmaya çalıştığı durumlarda, büyük olasılıkla kütüphane deposu bunu halka açık depolarda arayacaktır. Eğer bir saldırgan bunu oluşturmuşsa, kodunuz ve çalışan makineleriniz büyük olasılıkla tehlikeye girecektir.
Belirtilmemiş Sürüm
Geliştiricilerin genellikle kullanılan kütüphanenin herhangi bir 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, python requests
gibi bilinen bir harici kütüphaneyse, bir saldırgan çok fazla bir şey yapamaz, çünkü requests
adında bir kütüphane oluşturamaz (orijinal yazar değilse).
Ancak, bu örnekte olduğu gibi kütüphane dahili ise, requests-company
gibi, eğer kütüphane deposu yeni sürümleri harici olarak kontrol etmeye izin veriyorsa, daha yeni bir sürümü halka açık olarak arayacaktır.
Bu nedenle, bir saldırgan şirketin requests-company
kütüphanesini 1.0.1 sürümünü (küçük güncellemelere izin ver) kullandığını biliyorsa, requests-company
kütüphanesini 1.0.2 sürümünü yayınlayabilir ve şirket dahili olan yerine bu kütüphaneyi kullanacaktır.
AWS Düzeltmesi
Bu zafiyet AWS CodeArtifact'da bulundu (bu blog yazısındaki detayları okuyun).
AWS, dahili bağımlılıkların harici depolardan indirilmesini önlemek için bir kütüphanenin dahili veya harici olup olmadığını belirtmeye izin vererek bunu düzeltti.
Zafiyetli Kütüphaneleri Bulma
Bağımlılık karışıklığı hakkındaki orijinal yazıda yazar, binlerce açığa çıkarılmış 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
htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!
- Bir cybersecurity şirketinde çalışıyor musunuz? Şirketinizi HackTricks'te reklamını görmek ister misiniz? veya PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz? ABONELİK PLANLARINI kontrol edin!
- Özel NFT'lerimizden oluşan PEASS Ailesi'ni keşfedin
- Resmi PEASS & HackTricks ürünlerini edinin
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter'da 🐦@carlospolopm'u takip edin.
- Hacking hilelerinizi hacktricks repo'ya ve hacktricks-cloud repo'ya PR göndererek paylaşın.