Ana içeriğe geç

SSRF

Sunucu Taraflı İstek Sahteciliği (Server-Side Request Forgery)

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/ssrf

Kısaca

SSRF, bir saldırganın sunucuyu kendi seçtiği bir hedefe istek göndermeye zorladığı ve çoğu zaman erişemeyeceği iç sistemlere ulaşabildiği bir zafiyettir.

SSRF nedir?

Server-side request forgery, bir uygulamanın kullanıcının verdiği bir URL'yi, örneğin bir bağlantıdan profil resmi indirmek, bağlantı önizlemesi oluşturmak ya da bir webhook'u çağırmak için, bu URL'nin nereyi gösterebileceğini kısıtlamadan çekmesiyle ortaya çıkar. Saldırgan http://localhost:8080/admin gibi bir adres ya da dahili bir IP adresi verir ve sunucu isteği onun adına yapar. İstek ağın içinden geldiği için internetten gizlenmiş veritabanlarına, yönetim panellerine ve dahili API'lere ulaşabilir.

Bulutta klasik bir hedef, üzerinde çalışan her şeye geçici bulut kimlik bilgileri verebilen http://169.254.169.254 adresindeki instance metadata servisidir; bu yüzden ona ulaşan bir SSRF açığı tam bir hesap ele geçirmeye yol açabilir. Saldırganlar naif filtreleri http://2130706433 gibi alternatif IP biçimleri, dahili adreslere çözümlenen alan adları ve izin verilen bir siteden yasaklı bir siteye yönlendirmeler gibi hilelerle aşar. Kör (blind) SSRF'te saldırgan yanıtı hiç görmez, ancak yine de hangi dahili portların açık olduğunu yoklayabilir veya eylemleri tetikleyebilir.

Savunmalar, bir özelliğin gerçekten ihtiyaç duyduğu şemaların ve host'ların, alan adı bir IP adresine çözümlendikten sonra denetlenen bir izin listesiyle başlar; ayrıca özel (private), loopback ve link-local adres aralıkları engellenir. Otomatik yönlendirmeleri kapatın veya her adımı yeniden denetleyin, giden istekleri kısıtlı bir proxy veya ağ segmenti üzerinden gönderin ve daha yeni metadata servisi sürümlerinin yaptığı gibi bulut metadata'sı için oturum token'ı isteyin. Bu, bir odayı söyleyen her arayan için binadaki herhangi bir dosyayı getiren bir resepsiyonist gibidir: izin verilen odaların listesi olmazsa telefondaki bir yabancı kilitli arşivden belge alabilir.

SSRF, adlar çok benzediği için sıklıkla CSRF ile karıştırılır. CSRF'te saldırgan kullanıcının tarayıcısını, kullanıcının oturum açtığı bir siteye istek göndermeye kandırır; SSRF'te ise sunucunun kendisini, sunucunun ağ konumunu ve izinlerini kullanarak istek göndermeye kandırır. SSRF, 2021 OWASP Top 10'da kendi kategorisini alacak kadar önemliydi.

Önemli noktalar

  • SSRF, bir sunucunun saldırganın seçtiği hedeflere istek göndermesini sağlar.
  • Dahili servislere, yönetim panellerine ve bulut metadata endpoint'lerine ulaşabilir.
  • Naif engelleme listeleri alternatif IP biçimleri, DNS hileleri ve yönlendirmelerle aşılır.
  • Hedefleri izin listesine alın, çözümlenen IP adreslerini doğrulayın ve özel aralıkları engelleyin.
  • CSRF kullanıcının tarayıcısını, SSRF ise sunucunun kendisini istismar eder.

Örnek

Kullanıcının verdiği bir URL'yi güvenle çekmekjavascript
const ALLOWED_HOSTS = new Set(["images.example-cdn.com"]);

async function fetchUserImage(rawUrl) {
  const url = new URL(rawUrl); // throws on malformed input

  // Vulnerable version: return fetch(rawUrl), which lets a user
  // request http://169.254.169.254/ or http://localhost:6379/

  if (url.protocol !== "https:" || !ALLOWED_HOSTS.has(url.hostname)) {
    throw new Error("destination not allowed");
  }
  // Refuse redirects, which could bounce the request to an internal host
  return fetch(url, { redirect: "error" });
}

Sık sorulan sorular

SSRF ile CSRF arasındaki fark nedir?

CSRF, kurbanın tarayıcısını, kurbanın oturum açtığı bir siteye sahte bir istek göndermeye kandırır. SSRF ise bir sunucuyu saldırgan adına istek göndermeye kandırır; bu da saldırganın yalnızca o sunucunun erişebildiği sistemlere ulaşmasını sağlar.

SSRF bulutta neden tehlikelidir?

Bulut sunucuları çoğunlukla, makinenin bulut rolü için geçici kimlik bilgileri döndüren dahili bir metadata servisine erişebilir. Bir saldırgan sunucunun bu adrese istek yapmasını ve yanıtı okumasını sağlayabilirse depolamaya, veritabanlarına ve diğer bulut kaynaklarına erişim kazanabilir.

SSRF nasıl önlenir?

Yalnızca şeması ve host'u izin listesinde olan URL'leri çekin, çözümlenen IP adresini özel ve dahili aralıklara karşı denetleyin ve yönlendirmeleri körü körüne izlemeyin. Sunucudan dahili alt ağlara giden trafiği engellemek gibi ağ düzeyindeki kontroller ikinci bir katman ekler.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar