Bağımlılık Karışıklığı
Reading time: 3 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
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ış:
reqests
yerinerequests
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 iç
company-requests
kütüphanesini içe aktarmak, ancak repo kamuya açık repos kontrol ederek daha büyük versiyonlar olup olmadığını kontrol eder.
Sömürü
warning
Tüm durumlarda, saldırganın sadece kurban şirketin kullandığı kütüphanelerin adıyla kötü niyetli bir paket yayınlaması yeterlidir.
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ı yüksek ihtimaldir. Eğer bir saldırgan bunu oluşturduysa, 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 çok 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 deposu yeni versiyonları dışarıdan kontrol etmeye izin veriyorsa, kamuya açık olarak mevcut olan daha yeni bir versiyonu arayacaktır.
Yani eğer bir saldırgan şirketin requests-company
kütüphanesinin versiyon 1.0.1 (küçük güncellemeleri kabul eder) kullandığını biliyorsa, requests-company
versiyon 1.0.2 kütüphanesini 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ışarıdan depolardan indirilmesini önleyerek bunu düzeltti.
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
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.