5.9 KiB
Bağımlılık Karışıklığı
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
{% embed url="https://websec.nl/" %}
Temel Bilgiler
Özetle, bir bağımlılık karışıklığı açığı, bir projenin yanlış yazılmış, mevcut olmayan veya belirtilmemiş bir versiyona sahip bir kütüphane kullanması ve kullanılan bağımlılık deposunun güncellenmiş versiyonları kamuya açık depolardan toplamasına izin vermesi durumunda meydana gelir.
- Yanlış yazılmış:
requests
yerinereqests
içe aktarımı - Mevcut olmayan: artık mevcut olmayan bir iç kütüphane olan
company-logging
içe aktarımı - Belirtilmemiş versiyon: mevcut bir
company-requests
kütüphanesini içe aktarmak, ancak repo daha büyük versiyonlar olup olmadığını görmek için kamuya açık repos kontrol eder.
Sömürü
{% hint style="warning" %} Tüm durumlarda, saldırganın sadece kurban şirketin kullandığı kütüphanelerin adıyla kötü niyetli bir paket yayınlaması yeterlidir. {% endhint %}
Yanlış Yazılmış & Mevcut Olmayan
Eğer şirketiniz iç kütüphane olmayan bir kütüphaneyi içe aktarmaya çalışıyorsa, kütüphaneler deposunun kamuya açık depolarda arama yapması muhtemeldir. Eğer bir saldırgan bunu oluşturmuşsa, kodunuz ve çalışan makinelerinizin büyük ihtimalle tehlikeye girecektir.
Belirtilmemiş Versiyon
Geliştiricilerin kullandıkları kütüphanenin herhangi bir versiyonunu belirtmemesi veya sadece bir ana versiyon belirtmesi oldukça yaygındır. Sonra, yorumlayıcı bu gereksinimlere uyan en son versiyonu indirmeye çalışacaktır.
Eğer kütüphane bilinen bir dış kütüphane ise (örneğin python requests
), bir saldırganın yapabileceği pek bir şey yoktur, çünkü requests
adında bir kütüphane oluşturamayacaktır (eğer orijinal yazar değilse).
Ancak, eğer kütüphane içsel ise, bu örnekteki gibi requests-company
, eğer kütüphane reposu yeni versiyonları dışarıdan kontrol etmeye izin veriyorsa, kamuya açık olarak mevcut daha yeni bir versiyonu arayacaktır.
Yani eğer bir saldırgan şirketin requests-company
kütüphanesinin 1.0.1 versiyonunu kullandığını biliyorsa (küçük güncellemeleri kabul eder). O, requests-company
kütüphanesinin 1.0.2 versiyonunu yayınlayabilir ve şirket bu kütüphaneyi iç kütüphanesi yerine kullanacaktır.
AWS Düzeltmesi
Bu açık AWS CodeArtifact'ta bulundu (bu blog yazısında detayları okuyun).
AWS, bir kütüphanenin içsel veya dışsal olup olmadığını belirtmeye izin vererek, iç bağımlılıkların dış reposlardan indirilmesini önleyerek bunu düzeltmiştir.
Açık Kütüphaneleri Bulma
bağımlılık karışıklığı hakkında orijinal yazıda yazar, javascript projelerinin bağımlılıklarını içeren binlerce ifşa edilmiş package.json dosyası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/" %}
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.