Güvenlik araştırmacıları, daha önce yararlanılamayan yansıyan giriş güvenlik açıklarını alan ve bunları, HTTP Aralığı başlıklarını akıllıca kullanarak tamamen işlevsel saldırılara dönüştüren bir tekniği ortaya çıkardı.
Bulgular, bir zamanlar nispeten güvenli olduğu düşünülen web uygulamaları için yeni bir potansiyel tehdit vektörünün altını çiziyor.
Yansıyan girdi güvenlik açıkları uzun zamandır endişe kaynağı olmuştur, ancak kötü niyetli girdinin göründüğü bağlamın getirdiği sınırlamalar nedeniyle bunların kötüye kullanılması genellikle zordur.
Örneğin, bir saldırgan alıntılanan bir HTML özelliğine kod enjekte ederse, tarayıcının işleme kuralları saldırının düzgün çalışmasını engelleyecektir.
Ancak yeni tanımlanan bir saldırı vektörü HTTP’den yararlanıyor Range
başlığını kullanarak bu tür kısıtlamaları atlayabilirsiniz, bu da potansiyel olarak bu güvenlik açıklarından çok daha fazla yararlanılabilir hale gelir.
Keşif, HTTP istek kaçakçılığı ve başlık ekleme güvenlik açıklarını tespit etmeye yönelik gelişmiş teknikler üzerine yapılan kapsamlı araştırmanın bir parçası olarak geldi.
Bu güvenlik açıkları, Çapraz Kaynaklı Kaynak Paylaşımı (CORS) politikaları gibi tarayıcı tarafından uygulanan içerik kısıtlamalarını atlama yetenekleri nedeniyle zaten endişe vericidir.
Araştırmacılar şimdi bunun nasıl olduğunu gösterdiler. Range
başlık, yararlanılamayan komut dosyalarını almak ve bunları tamamen işlevsel bir biçimde kurbanlara teslim etmek için kullanılabilir.
Saldırı Nasıl Çalışır?
Teknik iki kritik adıma dayanır. İlk olarak, bir saldırgan, kullanıcı girişini HTTP yanıtına geri yansıtan, ancak kötü amaçlı kodun normalde etkisiz hale getirileceği iç HTML nitelikleri gibi nispeten “kullanılamaz” bir şekilde yansıtan bir web uç noktası bulur.
İkinci olarak saldırgan, aynı uç noktanın yanıt verip vermediğini belirler. Range
Genellikle bir kaynaktan yalnızca kısmi içerik istemek için kullanılan HTTP üstbilgisi.
Bu iki koşul bir araya geldiğinde yaratıcı bir istismarın yolunu açar. Saldırgan aşağıdaki unsurları içeren hazırlanmış bir istek gönderir:
- Yanıtta bir yere enjekte edilen, JavaScript kodu gibi yansıtılan bir giriş yükü.
- A
Range
Kötü amaçlı yükü izole eden bir bayt aralığını belirten başlık.
Örneğin, savunmasız bir uç noktaya yapılan istek şöyle görünebilir:
Sunucu bir yanıt verirse 206 Partial Content
Durum kodu, izole edilmiş kötü amaçlı yük ile birlikte yansıtılan kod tamamen işlevsel hale gelir. Kurbanın tarayıcısı veriyi yürütür ve genellikle siteler arası komut dosyası çalıştırma (XSS) saldırılarına olanak tanır.
Kavram Kanıtı
Açıklayıcı bir örnekte, yükü enjekte eden bir istek (console.log('XSS'));
bir web sitesinin uç noktasına aktarılması aşağıdaki gibi bir yanıtla sonuçlanabilir:
HTTP/1.1 206 Partial Content
Content-Range: bytes 80-99/105
Content-Length: 20
(console.log('XSS'))
Bu tür istenmeyen kısmi içerik yanıtlarını kolaylıkla kabul eden tarayıcılar, daha sonra yalıtılmış komut dosyasını çalıştıracaktır. Bu, genellikle yansıtılan giriş güvenlik açıklarına uygulanan ortak savunmaları atlayan bir saldırı vektörü oluşturur.
Savunma açısından bakıldığında, bu saldırının hafifletilmesi özellikle zordur. Saldırının her iki önkoşulu da, girdi ve desteği yansıtıyordu. Range
başlık – nispeten iyi huyludur ve güvenlik değerlendirmelerinde sıklıkla gözden kaçırılır.
Kullanılamaz görünen yansıtılan girdiler ve kısmi içerik yanıtlarını destekleyen uç noktalar, penetrasyon testi raporlarında nadiren düşük önem derecesine sahip bir notu bile garanti eder.
Bu tehdide karşı savunmanın anahtarı, görünüşte küçük sorunların işlevsel bir istismar zincirinde nasıl birleştirilebileceğini anlamakta yatmaktadır.
Güvenlik ekipleri, yansıtılan giriş vektörleri ile HTTP başlıklarının işlevselliği arasındaki etkileşimi izlemelidir. Range
.
Bazı potansiyel azaltma stratejileri şunları içerir:
- Yansıyan İçeriğin Temizlenmesi: Yanıta kötü amaçlı yüklerin eklenmesini önlemek için kullanıcı tarafından sağlanan tüm girişlerin uygun şekilde temizlendiğinden ve kodlandığından emin olun.
- Kısıtlama
Range
Başlık Kullanımı: Gerekmediği durumlarda kısmi içerik yanıtlarını devre dışı bırakın veya kötü amaçlı komut dosyalarının izolasyonunu önlemek için istenen aralıkları doğrulayın. - Kapsamlı Test: Yansıyan girdi sorunlarını ele almak yerine güvenlik değerlendirmelerinde bu tür saldırı zincirlerini test etmeyi düşünün ve
Range
başlık desteği ilgisiz.
HTTP’nin bu yeni kullanımı Range
başlık, saldırganların zararsız görünen güvenlik açıklarını yaratıcı bir şekilde nasıl yıkıcı saldırılara dönüştürebileceklerini gösteriyor.
Web geliştiricilerine ve güvenlik uzmanlarına, güvenlik açıklarını ayrı, ilgisiz sorunlar olarak ele almak yerine sistem davranışını bütünsel olarak görüntülemenin önemini hatırlatır.
Konuyla ilgili daha fazla teknik bilgi için Range
başlık ve davranışı hakkında bilgi edinmek için geliştiriciler MDN Web Dokümanlarına başvurabilir.
Bu bulgunun arkasındaki araştırmacılar, başarılarını ısrarcı meraka ve potansiyel istismarlarla ilgili “müdahaleci düşünceleri” görmezden gelmeyi reddetmelerine borçludur.
Bu keşif, siber güvenlik araştırmalarında kalıpların dışında düşünmenin önemini bir kez daha vurguluyor. Şu ana kadar gerçek dünyadan herhangi bir olay rapor edilmemiş olsa da teknik, daha sağlam web uygulaması savunma stratejileri için bir uyandırma çağrısı görevi görüyor.
Daha İlginç Günlük Siber Güvenlik Hikayeleri İçin Bizi LinkedIn, X ve Google Haberler’de Takip Edin