Web Cache Deception

Cache sistemlerindeki güvenlik zafiyetleri ve sömürü teknikleri

Cache Hit vs Data Leak

Web Cache Deception Nedir?

Web Cache Deception, bir saldırganın web cache'ini kandırarak hassas ve dinamik içeriği depolamasını sağlayan bir zafiyettir. Cache sunucusu ile origin sunucusu arasındaki istek işleme farklılıklarından kaynaklanır.

// Saldırı Senaryosu 1. Kurban: /profile/sensitive.css isteiğinde bulunur 2. Cache: .css uzantısı gördüğü için statik olarak değerlendirir 3. Origin: /profile endpoint'ini işler ve hassas veri döner 4. Cache: Hassas veriyi CSS olarak depolar 5. Saldırgan: Aynı URL'den cached veriyi alır
Cache Poisoning vs Cache Deception:
• Cache Poisoning: Zararlı içerik inject ederek diğer kullanıcılara servis etme
• Cache Deception: Hassas içeriği cache'e aldırarak yetkisiz erişim sağlama
Saldırı Akışı:
  • 1. Saldırgan kurbanı kandırıp zararlı URL'ye yönlendirir
  • 2. Kurbanın tarayıcısı belirsiz bir istek gönderir
  • 3. Cache bunu statik kaynak olarak yorumlar
  • 4. Origin server hassas veriyi döner
  • 5. Cache hassas veriyi depolar
  • 6. Saldırgan aynı URL'den cached veriyi alır
// Örnek zararlı URL https://victim.com/profile/personal-data.css // Cache: "Bu bir CSS dosyası, depolayayım" // Origin: "Bu /profile endpoint'i, kullanıcı verisini döndüreyim" // Sonuç: Hassas veri CSS olarak cache'lenir
PortSwigger Research: Bu zafiyet tipi, Black Hat USA 2024'te sunulan "Gotta Cache 'em all" araştırmasında detaylı olarak ele alınmıştır.

Web Cache Sistemleri

Web cache, origin server ile kullanıcı arasında yer alan bir sistemdir. Statik kaynaklar için istekleri hızlandırır ve sunucu yükünü azaltır.

Cache Çalışma Prensibi
Cache Miss: İstenen kaynak cache'de yok, origin'den getir
Cache Hit: İstenen kaynak cache'de var, direkt sun
Cache Rules: Hangi kaynakların ne kadar süre depolanacağını belirler
CDN ve Cache Kullanım Alanları:
  • • Content Delivery Networks (CDN): Coğrafi dağıtım
  • • Reverse Proxy Cache: Sunucu önü hızlandırma
  • • Browser Cache: İstemci tarafı depolama
  • • Application Cache: Uygulama düzeyinde önbellekleme
// Tipik Cache Workflow Client Request → Cache → Origin Server ↓ Cache Hit/Miss Decision ↓ Store Response & Serve
CDN Faydaları: Yüklenme süresi azaltma, sunucu yükü dağıtma, dünya çapında hızlı erişim. Ancak yanlış yapılandırıldığında güvenlik riski oluşturabilir.

Cache Key Kavramı

Cache, gelen HTTP isteğini değerlendirerek cached bir response olup olmadığını belirlemek için cache key oluşturur. Bu key, isteğin benzersiz kimliği gibidir.

// Cache Key Bileşenleri URL Path: /api/user/profile Query Parameters: ?id=123&format=json Headers: Accept, Content-Type (opsiyonel) Method: GET, HEAD, OPTIONS // Örnek Cache Key "GET:/api/user/profile?id=123"