Sunucu Taraflı İstek Sahteciliği: SSRF

Sunucu Taraflı İstek Sahteciliği: SSRF

 OWASP İLK 10 VE SSRF

OWASP’ın açılımı Open Web Application Security Project yani Açık Web Uygulama Güvenliği Projesi anlamına gelmektedir. OWASP 10 en kritik ve en yaygın 10 web uygulaması güvenlik açıklarını içerir ve Web uygulamalarındaki güvenlik açıklarının kapatılması ve bu uygulamaların güvenli bir şekilde korunmasını sağlamak için çalışmalar yapan özgür bir topluluktur. OWASP listesi her üç ile dört yılda bir güncellenir. En son 2021’de yayınlandı. Top 10 listesinin inceleyecek olursak;

  • A1Broken Access Control
  • A2Cryptographic Failures
  • A3Injection
  • A4Insecure Design
  • A5Security Misconfiguration
  • A6Vulnerable and Outdated Components
  • A7Identification and Authentication Failures
  • A8Software and Data Integrity Failures
  • A9Security Logging and Monitoring Failures
  • A10Server-Side Request Forgery
  1. sırada SSRF’nin yer aldığını görmekteyiz. Tam olarak istenilen veri toplanamamış olsa da, OWASP bu saldırı tipine dikkat çekmek için listeye eklemiştir. Hem ağ hem de uygulama katmanını hedef alan SSRF atakları için basitçe ağ güvenlik duvarı ürününüzde ki kuralları gözden geçirmeniz önerilmektedir. Aşağıdaki resimde de OWASP'ın 201'deki TOP 10'u ile 2021'deki TOP 10'unun farkları gösterilmekte.

SSRF NEDİR? (Server Side Request Forgery)

Türkçesi sunucu taraflı istek sahteciliği olan bu güvenlik açıklığı, saldırgana güvenlik açığı bulunan sunucudan istek oluşturması veya buradan gelen istekleri kontrol edebilmesi için web uygulamasındaki bir parametreyi değiştirmesine izin verir. Başka bir değişle saldırganın doğrudan yapamadığı işlemleri sunucuya yaptırarak saldırganın sunucuyu sömürmesi de diyebiliriz. 

Web uygulamaları, genellikle yazılım güncellemeleri gibi uzak kaynakları almak veya bir URL’den ya da diğer web uygulamalarından içeriye veri aktarmak için yapılan sunucular arası istekleri tetikleyebilir. Bu tür sunucular arası istekler, genelde güvenli olsa da implementasyon doğru yapılmadığı takdirde SSRF zafiyetine yol açabilirler.

 

Bir web uygulamasındaki bilgiler, başka bir web sitesinden gelen harici bir kaynaktan alınmak zorundaysa, sunucu tarafı istekleri kaynağı alıp web uygulamasına dahil etmek için kullanılır. Bu şekilde sunucuda kendi isteklerimizi çalıştırabildiğimizde açıklıktan etkinlenen sunucu ve sunucunun bulunduğu networkde büyük risk oluşturabilmektedir. Zafiyetten eetkilenen sunucuyu proxy olarak kullanarak internal network e erişim sağlayabilriz. SSRF kullanarak Cross Site Port Attack (XSPA) saldırısı yapmamıza olanarak sağlamaktadır.

WEB UYGULAMALARINDA SSRF ZAFİYETLERİNİ TESPİT ETMEK

Web uygulamalarında SSRF zafiyetini tespit etme işlemi için otomatize araçlar (Acunetix, Netsparker vb.) kullanılması önerilir. Ya da yarı otomatik scriptler kullanılarak belirli algoritmik mantıklar ile kullanıcıdan alına tüm input alanlarının teste tabi tutulması gerekir.

SSRF ZAFİYETİNİN ETKİLERİ NELERDİR?

Saldırganların, SSRF zafiyeti kullanarak yapabilecekleri bir çok şey vardır. Bunların bazıları çok ciddi sonuçlar doğurabilmektedir. Harici üçüncü taraf sistemlere bağlantılara neden olan bir SSRF istismarı, güvenlik açığı bulunan uygulamayı barındıran kuruluştan geliyormuş gibi görünen kötü niyetli saldırılara neden olabilir. Ayrıca;

  • Intranet veya public bir ağdan normal olarak erişilemeyen iç ağlarda port servis vb.

keşif ve saldırı işlemleri,

  • Siteler arası betik çalıştırma, (SSRF to Reflected XSS)
  • Server içerisinde uzaktan kod çalıştırma, (SSRF to RCE)
  • Sunucuda kritik dosyaların içeriğinin okunması, (SSRF to LFI)
  • URL şemaları kullanarak sunucuya işlem yaptırılması, (ftp://, dict://, http://, gopher://, file:// vb.)
  • Cloud servislerin meta-data bilgilerinin çekilmesi,
  • Whitelist ve DNS çözümlemelerinin aşılması gibi faaliyetler de bulunulabilir.
  • Daha fazla keşif yapmanıza izin veren Gopher gibi bazı protokollerle etkileşime izin verir.
  • Bir reverse proxy’nin arkasındaki sunucuların IP adreslerini tespit edebilir.
  • Bu ana makinelerde çalışan hizmetleri numaralandırmak ve saldırmak
  • Host-Based tabanlı kimlik doğrulama hizmetlerinden faydalanarak authentication bypass

Gibi etkileri vardır.

 

 

4- SSRF ZAFİYETİNİN YANSIMALARI

  • 4,1- Etkilenen sunucuya duyulan güvenin kötüye kullanımı

Sunucular, verileri kolayca paylaşmak ve yönetimsel görevlere izin vermek için genellikle diğer makinelerle güven ilişkisine sahiptir. Ağ seviyesinde güven ise  şu anlama gelir: Bir güvenlik duvarı, eğer erişim talep eden makine aynı yerel ağda bulunuyorsa veya makinenin IP adresine güveniliyorsa, sadece belirli portlara erişim izni verir. Yazılım düzeyinde güven de şu şekilde olabilir: IP adresi 127.0.0.1 olduğu sürece veya yerel ağın içindeyse, bazı yönetimsel görevler için kimlik doğrulama gerekli değildir. Bu tür bir güven, bir saldırganın parolayı bildiği halde yerel ağa erişim olmadan giriş yapamamasını sağlamak için ek bir güvenlik önlemi olarak da kullanılabilir.

Saldırgan, SSRF’ten yararlanarak yukarıdaki kısıtlamaları atlatabilir ve örneğin; etkilenen makineye güvenen diğer sunucuları sorgulayabilir veya dış ağdan erişilemeyen bazı portlarla etkileşim kurmak için kötü amaçlı isteklerde bulunabilir. Saldırgan, bu şekilde dışarıdan yapılması mümkün olmayan kötü amaçlı eylemleri sunucunun kendisini kullanarak sunucu üzerinde gerçekleştirebilir

  • 4,2- Yerel veya Harici Ağların Taranması

Saldırganlar genellikle bir sayfanın yüklenme süresini, sayfadaki hata mesajını veya hedefledikleri araştırmadan cevap alıp alamadıklarını belirlemek ve test edilen portun açık olup olmadığını doğrulamak için sorguladıkları banner bilgisini kullanırlar.

 

  • SSRF ZAFİYETİ SÖMÜRÜ YÖNTEMLERİ NELERDİR?
  • 5,1- İç Ağda Keşif ve Saldırı

SSRF açıklığı kullanılarak iç ağda keşif ve saldırı yapılabilir.  Hatta güncellenmemiş bir zafiyet varsa bu zafiyetten faydalanılıp komut çalıştırma işlemi bile yapılabilir. 

  • 5,2- Siteler arası betik çalıştırma

SSRF açıklığı kullanılarak XSS atakları düzenlenebilir. Bu ataklar sayesinde kullanıcının çerez bilgileri gibi bilgilere de erişim sağlanabilir. 

  • 5,3- URL şemaları kullanarak işlem yapma

URL şemaları kullanarak sunucudan dosya okuyabilir hatta sunucuya iş yaptırabiliriz.

  • 5,4- Uzaktan kod çalıştırma

SSRF zafiyeti olan bir sunucunun uzaktan gelen istekleri nasıl kullandığına bakılarak bu zafiyet kullanılabilir.

  • 5,5- Sunucudan dosya okunması

Uzak bir kaynağın içeriği doğrudan bir sayfaya yansıtıldığında, saldırganların dosyaların içeriğini okuma olasılığı vardır. Örnek olarak, verilen bir url'den tüm resimleri kaldıran ve metni biçimlendiren bir web servisi düşünün. İlk önce belirli bir url'nin yanıt gövdesini elde ederek çalışır, daha sonra biçimlendirmeyi uygular. 

Eğer http:// veya https:// yerine file:// kullanırsak yerel dosya sisteminden dosyaları okuyabiliriz.  

  • 5,6- Cloud servislerin meta-data bilgilerinin çekilmesi

Amazon Could bir sunucuda tespit edilen bir SSRF sonucunda, her EC2 için ana bilgisayar hakkındaki meta-data sorgulayabileceği iç hizmet dışarıdan sömürülebilir.

 

 

1- SSRF ZAFİYETİ ÖNLEME METODLARI NELERDİR?

Öncelikle kullanıcıdan veri alan tüm noktalar çok detaylı bir şekilde kontrol edilmelidir. Kullanıcıdan gelen her şey zararlı olabilme ihtimaline dayanarak göz önünde bulundurulmalıdır. Web uygulamalarınızdaki SSRF açıklarını önlemek için, web sunucusunun uzak kaynakları çağırmasına izin verilen domainler ve protokoller için whitelist yöntemi uygulamanız şiddetle tavsiye edilir. SSRF tehdini önlemenin en sağlam yolu, bu yöntem kullanılarak uygulamanızın erişmesi gereken DNS adını veya IP adresini açmaktır. Whitelist yaklaşımı size uymuyorsa mecburen bir blacklist oluşturup güvenmediğiniz IP adreslerini tutabilirsiniz. Burada önemli olan kullanıcı erişimini doğrulamaktır.

Blacklist yöntemi için sayısız ihtimali azaltma yolu olarak da düşünebiliriz. SSRF için evrensel bir önleme metodu olmadığı için mecburiyet halinde kullanılmalıdır.

Ayrıca, bir kural olarak kullanıcı girdisini sunucu adına istekte bulunabilecek işlevlerde doğrudan kullanmamalısınız. Kullanıcı girdilerini sanitize etmelisiniz ve filtrelemelisiniz, ancak genellikle farklı senaryoların tümünü kapsamak neredeyse imkânsız olduğu için pratikte bunu uygulamak çok zordur.

Örneğin, Twitter'da bir bağlantı yayınladığınızda, bir küçük resim oluşturmak için bu harici siteden bir görüntü getirmesi gerekir. Bu normal ve gerekli bir davranıştır. Ancak sunucu, kullanıcıların dahili kaynaklara erişimini engellemezse, SSRF açıkları ortaya çıkar.

 

 

  • 6,1- DNS Çözümleme ve Whitelist Oluşturma

Yukarda da belirttiğimiz gibi SSRF tehtidini önlemenin en sağlam yolu DNS adını veya IPadresini Whitelist yöntemi ile açmaktır.    

Whitelist: Türkçe olarak “Beyaz Liste” olarak adlandırılmaktadır. Whitelist, yalnızca önceden izin verilen eylemlerin gerçekleştirilmesini sağlayan bir siber güvenlik stratejisidir.

 

  • 6,2- Kullanılmayan URL Şemalarını Devre Dışı Bırakma

Uygulamanız istekte bulunmak için yalnızca HTTP veya HTTPS kullanıyorsa, yalnızca bu URL şemalarına izin verin. Kullanılmayan URL şemalarını devre dışı bırakırsanız, saldırgan, file://, dict://, ftp:// ve gopher:// gibi tehlikeli şemalar kullanarak istekte bulunmak için web uygulamasını kullanamaz.

 

  •  6,3- İç Ağda Bulunan Servislere Erişim İçin Kimlik Doğrulama

Varsayılan olarak, Memcached, Redis, Elasticsearch ve MongoDB gibi servislerin onaylanması gerekmez. Saldırgan, bu hizmetlere kimlik doğrulaması yapmadan erişebilir. Bu nedenle yerel ağdaki hizmetler için mümkün olduğunca kimlik doğrulamasını etkinleştirmek gerekmektedir.

 

  • 6,4- Sunucu Taraflı Yanıt Kontrolü (Response Handling)

 

Saldırganların SSRF ile sunucudan sömürü amaçlı aldığı yanıtlar normalden farklı olacaktır. Sunucudan gönderilen yanıtların veya isteklerin kontrol edilip çıktığı gibi iletilmemesi gerekmektedir. Aksi takdirde SSRF ile verilen yanıtlar saldırganın isteğine göre kontrolsüz şekilde gidecektir.

 

 

 

 

KAYNAKÇA 

https://www.bntpro.com/owasp-top-10-2021-listesi-ve-f5-awaf-korumalari/

https://bksecurity.org/ssrf/ https://owasp.org/www-community/attacks/Server_Side_Request_Forgery

https://gaissecurity.com/bilgi/ssrf-server-side-request-forgery/

https://www.turkhackteam.org/konular/adan-zye-server-side-request-forgery-ssrf.1996477/

https://blog.muminkoykiran.com.tr/posts/server-side-request-forgery-ssrf-nedir/

Merhabalar ben İlayda. Adli Bilişim Mühendisliği 3. sınıf öğrencisiyim. Yaklaşık 3. senedir siber güvenlikle ilgilenmekteyim. Bu alanda kendimi geliştirmek için araştırmalar yapıyorum ve Sibermetin aracılığı ile edindiğim bilgileri sizlerle paylaşıyorum. Yazılarım hakkında bana sormak istediğiniz soruları sosyal medya hesaplarım aracılığı ile bana iletebilirsiniz. Keyifli okumalar dilerim :)