“Kurabiye sandviçi” olarak bilinen yeni bir saldırı tekniğinin ortaya çıkması, siber güvenlik uzmanları arasında önemli endişelere yol açtı.
Bu teknik, saldırganların HttpOnly bayrağını atlamasına ve hassas çerezlere erişmesine olanak tanıyarak, potansiyel olarak savunmasız uygulamaları veri hırsızlığına ve oturumun ele geçirilmesine maruz bırakabilir.
Ortaya çıkan bu tehdidin bir dökümünü, nasıl çalıştığını ve web güvenliği üzerindeki etkilerini burada bulabilirsiniz.
“Kurabiye Sandviç” Tekniğinin Doğuşu
PortSwigger raporuna göre, “çerez sandviçi” tekniği, özellikle eski çerezler ve özel karakterlerle uğraşırken, belirli web sunucularının çerezleri ayrıştırma biçimindeki güvenlik açıklarından yararlanıyor.
Saldırganlar, çerez değerlerini tırnak işaretleri ile dikkatli bir şekilde işleyerek ve tarayıcıya özgü özellikleri kullanarak, Çerez başlığının yapısını değiştirebilir. Bu manipülasyon, aksi takdirde korunan çerezleri açığa çıkarmak için sunucu tarafı ayrıştırma mekanizmalarından yararlanır.
Investigate Real-World Malicious Links & Phishing Attacks With Threat Intelligence Lookup - Try for Free
Saldırı aşağıdaki temel kavramlara dayanıyor:
- Eski Çerez Ayrıştırma:
- Bazı tarayıcılar ve sunucular, çerezlerde standart olmayan karakterlere ve alıntılanmış değerlere izin veren RFC2109 gibi eski çerez özelliklerini hâlâ desteklemektedir.
- Saldırganlar, $Version gibi $ gibi özel karakterlerle başlayan adlara sahip çerezler oluşturabilir.
- Sandviç Hazırlamak:
- Saldırganlar, çerezleri stratejik olarak yerleştirilmiş alıntılarla ayarlayarak çakışan çerez sınırları oluşturabilir.
- Örneğin:
document.cookie = `$Version=1;`;
document.cookie = `param1="start`;
document.cookie = `param2=end";`;
Bu, sunucunun çerez yapısını yanlış yorumlamasına ve tırnak işaretleri arasına alınan çerezlerin tek bir değerin parçası olarak değerlendirilmesine izin vermesine neden olur.
- Çerezleri Gösterme:
- Sunucu, güvenlik açığı bulunan tanımlama bilgilerini yanıtında yansıttığında, hassas tanımlama bilgileri de dahil olmak üzere, değiştirilen dizenin tamamı istemci tarafı komut dosyalarına maruz kalır veya saldırganlara yansıtılır.
Değiştirilen Çerez başlığının bir istekte nasıl görünebileceği aşağıda açıklanmıştır:
GET / HTTP/1.1
Cookie: $Version=1; param1="start; sessionId=secret; param2=end"
Güvenlik açığı bulunan bir sunucu şu şekilde yanıt verebilir:
HTTP/1.1 200 OK
Set-Cookie: param1="start; sessionId=secret; param2=end";
Uygulama param1 çerezini hatalı şekilde yansıtıyorsa veya HttpOnly’yi doğru şekilde uygulamıyorsa, saldırganlar oturum kimlikleri gibi hassas çerez verilerini yakalayabilir.
Gerçek Dünya Sömürüsü
Flask gibi popüler çerçeveler, varsayılan olarak alıntılanan dizelere sahip çerezleri işler ve bu da onları çerez sandviçi saldırılarına karşı duyarlı hale getirir. Örneğin:
Cookie: param1="start; sessionId=secret; param2=end"
Sunucu yanıtında bu şu şekilde olabilir:
Set-Cookie: param1="start\073 sessionId=secret\073 param2=end";
Bu ayrıştırma tuhaflığı, sessionId değerlerini açığa çıkarmak için kullanılabilir.
Savunmasız Bir İzleme Uygulamasını Suistimal Etmek
Bildirilen bir gerçek dünya senaryosunda, yansıtılan oturum parametresine sahip bir izleme alanından yararlanıldı:
- Saldırgan, sunucuyu değiştirilmiş bir çerez dizesini yansıtmaya zorlamak için bir çapraz kaynak isteği kullanarak HttpOnly PHPSESSID çerezini açığa çıkardı.
- Saldırgan, Apache Tomcat’in eski çerez ayrıştırma özelliğini kullanarak güvenlik standartlarını düşürdü ve çerez sandviçi saldırısını gerçekleştirdi.
Bu güvenlik açığı, sunucu tarafında güçlü çerez işleme ve yanıt temizlemenin önemini vurgulamaktadır. İşte bazı hafifletme stratejileri:
- Modern Ayrıştırma Standartlarını Kullanın:
- Çerezlerin sıkı şekilde işlenmesi için uygulamanızın RFC6265’e uyduğundan emin olun.
- Mümkün olduğunda eski çerez ayrıştırma desteğini devre dışı bırakın.
- HttpOnly ve Güvenli Bayrakları Etkinleştir:
- İstemci tarafı komut dosyası erişimini önlemek için her zaman hassas tanımlama bilgilerine HttpOnly bayrağını ayarlayın.
- Çerezlerin yalnızca HTTPS üzerinden iletilmesini sağlamak için Güvenli bayrağını kullanın.
- Kullanıcı Girişini ve Yanıtlarını Sterilize Edin:
- Uygun kaçış ve doğrulama olmadan, kullanıcı tarafından kontrol edilen verileri sunucu yanıtlarına yansıtmaktan kaçının.
- XSS risklerini azaltmak için İçerik Güvenliği Politikalarını (CSP) uygulayın.
- SameSite Çerezlerini Uygulama:
- Siteler arası çerez aktarımını kısıtlamak ve saldırı yüzeyini azaltmak için SameSite özelliğini kullanın.
“Kurabiye sandviçi” tekniği, web tabanlı saldırıların gelişen karmaşıklığının altını çiziyor. Kuruluşların bu tür istismarlara karşı dikkatli olmaları, çerçevelerini güncellemeleri ve modern güvenlik uygulamalarını benimsemeleri gerekiyor.
Bu keşif, geliştiricilerin ve güvenlik ekiplerinin, kullanıcı verilerini korumak için güvenli çerez yönetimine ve sağlam giriş doğrulamaya öncelik vermeleri için bir uyandırma çağrısı görevi görüyor.
Jenkins & Jira’yı Kullanarak Uygulama Güvenliğini CI/CD İş Akışlarınıza Entegre Etme -> Ücretsiz Web Semineri