SSRF
SSRF yani server side request forgery sunucu taraflı istek sahteciliği anlamına gelir bu güvenlik açığı bir uygulamanın dış dünyaya ya da kendi iç ağındaki kaynaklara saldırganın belirlediği şekilde istek göndermesiyle ortaya çıkar normal şartlarda kullanıcı bir urlye erişim sağlayamazken ssrf açığı sayesinde uygulama saldırgan adına gidip bu isteği yapar ve sonucunu geri döndürür
SSRF Nasıl Çalışır
SSRF temelde kullanıcı girdisinin kontrol edilmeden arka uçtaki sunuculara istek yapılmasıyla tetiklenir örnek olarak bir web uygulamasında url parametresi girilerek o adresteki içeriğin önizlemesi alınıyor olsun burada saldırgan kendi urlsi yerine iç ağda erişilmemesi gereken bir servisin adresini girerse uygulama o servise istek gönderir ve cevapları kullanıcıya iletir bu şekilde saldırgan hem dahili servisleri görebilir hem de potansiyel olarak gizli bilgileri elde edebilir
SSRF İle Neler Yapılabilir
- İç Ağ Keşfi/Saldırgan firewall arkasında kalan ip aralıklarını tarayabilir
- Metadata Servislerine Erişim/ Özellikle aws azure gcp gibi bulut ortamlarında metadata endpointleri kritik bilgiler içerir örneğin erişim anahtarları
- Bilgi İfşası/Sunucunun dosya sisteminden ya da servislerinden veri alınabilir
- Dahili Servis İstismarı/Veri tabanı panelleri redis elasticsearch gibi sadece iç ağa açık servisler sömürülebilir
- Zincirleme Saldırılar/SSRF başka açıklarla birleştiğinde uzaktan kod çalıştırmaya kadar gidebilir
SSRF Türleri
Basic SSRF
Saldırgan doğrudan bir urlyi manipüle ederek isteği farklı bir hedefe yönlendirir
Blind SSRF
Saldırgan yanıtı göremez ama hedef sistemin isteği yaptığını biliyordur örneğin dns loglarıyla doğrulanır
Second Order SSRF
Saldırganın ilk denemesi hemen sonuç vermez ama sistem daha sonra saldırganın girdiği url üzerinden istek yapar
SSRF’den Korunma Yöntemleri
Kullanıcıdan alınan url gibi girdileri doğrudan işleme sokmamak
Whitelist yaklaşımıyla sadece güvenilir domainlere istek gönderilmesine izin vermek
Dns çözümlemeleri yaparken yönlendirmeleri dikkatle kontrol etmek
Uygulamanın localhost 127001 ya da dahili ip bloklarına erişimini engellemek
Gereksiz ağ erişimlerini kısıtlayarak uygulamanın sadece ihtiyaç duyduğu servislere çıkmasını sağlamak
SSRF aslında uzun zamandır bilinen bir güvenlik açığıdır ama özellikle bulut teknolojilerinin yaygınlaşmasıyla önemi daha da artmıştır eskiden sadece iç ağ servislerine erişim için kullanılırken artık aws azure gcp gibi büyük servislerde metadata endpointlerinin sömürülmesiyle çok daha kritik hale gelmiştir bu yüzden son yıllarda güvenlik topluluklarında sıkça gündeme gelmiştir
SSRF’nin Bug Bounty’deki Önemi
Bug bounty platformlarında ssrf raporları genellikle high severity yani yüksek önem derecesi taşır çünkü tek başına büyük bilgi sızdırmasa bile zincirleme saldırılara kapı açar özellikle metadata erişimi sağlanırsa ödüller çok yüksek olabilir bu yüzden bounty avcılarının en çok denediği açık türlerinden biridir
Gerçek Hayattan Bir Örnek
Capital One İhlali (2019)
Geçmişte birçok büyük şirkette ssrf kaynaklı zafiyetler raporlanmıştır bunların en bilinenlerinden biri capital one saldırısıdır
Capital one financial bt operasyonlarını buluta taşıdı ve bir web uygulama güvenlik duvarı waf kurdu ancak yanlış yapılandırıldığını fark edemedi saldırganlar bunu fark etti ve wafyi kullanarak dahili bir kimlik ve erişim yönetimi iam hizmetine istek gönderdiler capital oneın bulut sağlayıcısı tarafından iam hizmeti için kullanılan ip adresi bilgisine güveniliyordu bu hizmet bulut dışındaki trafik kaynaklarına erişemiyordu ancak waf dahil olmak üzere dahili ağ unsurlarından gelen isteklere güvenip kabul ediyordu
Saldırganlar wafın işlem örneğine ait kimlik bilgilerini içeren bir yanıt aldılar daha sonra bu kimlik bilgilerini kullanarak bulut depolama kaynaklarını sorguladılar içeriklerini keşfettiler ve verileri sistematik olarak harici bir web deposuna aktardılar
Bu Saldırı Üç Ana Güvenlik Açığından Kaynaklandı
- Waf Yanlış Yapılandırması ilk isteği düzgün şekilde filtrelemedi ve saldırgan iam hizmetine sorgu gönderebildi
- Aşırı İzinler Wafın iam rolü kısıtlı olsaydı saldırgan kimlik bilgileriyle çok fazla şey yapamazdı normalde bir wafın bulut depolama sistemlerine erişmesi gerekmez
- ssrf tespiti yoktu saldırı aylarca fark edilmedi çünkü izleme sistemi bulunmuyordu
Neden Önemli?
SSRF sadece küçük bir açık gibi görünse de aslında en kritik güvenlik açıkları arasında yer alır çünkü saldırgan uygulamanın güvendiği ağ içerisinde dolaşmaya başlar dışarıdan bakıldığında kapalı olan servisler ssrf sayesinde açığa çıkar bu da hem bilgi sızdırılmasına hem de büyük çaplı istismarlara yol açar bu nedenle bug bounty platformlarında ssrf raporları genelde yüksek önem derecesine sahiptir
Özetle ssrf bir uygulamanın kendi kendine saldırgan adına istek yapmasını sağlayan ciddi bir güvenlik açığıdır doğru yönetilmediğinde iç ağ keşfi metadata bilgisi sızması ve zincirleme saldırılarla büyük zararlar ortaya çıkar bu yüzden yazılım geliştiriciler için güvenlik testlerinde dikkat edilmesi gereken konuların başında gelir
Son düzenleme:



