Cloudflare, 2024 yılı ve 2025'in başlarında gerçekleştirdiği, Cloudflare Workers platformuna yönelik uzaktan Spectre saldırılarının yeniden değerlendirilmesinin sonuçlarını açıkladı. Araştırma ekibi, üretim ortamında çalışan bir kavram kanıtı oluşturmayı ve araştırmacıların kontrolündeki saldırgan Worker'a kurban Worker'dan saniyede 12 bite varan hızla ve %99'u aşan doğrulukla veri sızdırmayı başardı.
Şirket, sunulan saldırının Cloudflare Workers Runtime ekibinin aldığı önlemlerle üretim sisteminde giderildiğini ve son üç yıl içinde aktif istismara ilişkin herhangi bir belirti bulmadığını doğruluyor. Bulgular, Albert Pedersen, Haocheng Xiao, Sam Ainsworth, Nigel Topham ve Martin Schwarzl tarafından ortaklaşa kaleme alınan bir makalede yayımlandı.
Bu araştırma neden önemli?
Workers, uçta güvenilmeyen JavaScript çalıştırmaya dayanır; on binlerce kiracı, V8 izolasyonları aracılığıyla tek bir işletim sistemi sürecini paylaşabilir. Her Worker'ın ayrı bir JavaScript yığını vardır. Bu durum başlatma süresini ve çok sayıda kiracının barındırılma verimliliğini iyileştirir, ancak işlem içindeki rastgele bir okuma açığının kiracılar arasında veri sızdırılmasına kapı açabileceği anlamına da gelir.
Spectre saldırıları işlemcilerdeki spekülatif yürütmeden yararlanır. İşlemci, bir yazılım dalının sonucunu tahmin edip doğrulanmadan önce talimatları yürüttüğünde sonuçlar daha sonra iptal edilebilir; ancak işlemcinin mikro mimari durumunda, önbellek de dahil olmak üzere, ince izler kalır. Saldırgan, erişim sürelerindeki farklılıkları kullanarak okumaması gereken verilerden bitler çıkarabilir.
Cloudflare, kötü amaçlı görünen komut dosyalarını ayrı süreçlerde izole etmek üzere 2021'de Dynamic Process Isolation veya DyPrIs adlı bir üretim savunmasını kullanıma sunmuştu. Ancak yeniden değerlendirme, saldırının izolasyonu aşacak kadar uzun süre etkili kalmasına izin veren yürütme mekanizmasındaki bir sınırlamayı ortaya çıkardı.
Saldırı Workers'ın sınırlamalarını nasıl aştı?
Platform yerel zamanlayıcıları kısıtlıyor ve paylaşılan belleğe ya da çoklu iş parçacığı kullanımına izin vermiyor; bu nedenle SharedArrayBuffer'a dayanan geleneksel ölçüm yöntemleri kullanılamıyor. Bunun yerine araştırmacılar, WebSocket bağlantısı üzerinden uzak bir zamanlayıcı kullandı ve L1 önbelleğindeki tree-based PLRU değiştirme politikasını kullanarak önbellek olaylarının oluşturduğu sinyalin güçlendirilmesinden yararlandı.
Ekip ayrıca iki tür Spectre gadget'ı tasarladı. İlki, izolasyonun yığın taban adresi de dahil olmak üzere yığından sıkıştırılmış işaretçileri sızdırmak için kullanıldı. İkincisi ise 64 bit genişliğinde ham bir işaretçiye erişmek için türde spekülatif karışıklığa dayandı; bu da sızıntının saldırgan tarafça seçilen bir adresten okumaya dönüştürülmesini sağladı. Araştırmanın gerçekleştirildiği sırada V8 Sandbox henüz Workers'a uygulanmamıştı ve TypedArray, arka depolamasına ham bir işaretçi tutan yapılardan biriydi.
Tekrarlanabilir ölçümler sağlamak için araştırmacılar önbellek kapasitesini aşan büyük nesne kümeleri oluşturdu ve her turda her bellek satırı için kesin bir çıkarma kümesi aramak yerine rastgele konumlar seçti. Ayrıca uzun süreli bir yürütme bağlamını canlı tutmak için Durable Objects kullanıldı; WebSocket mesajları ise işlem ve istek süresi sınırlarının yeniden ayarlanmasına olanak verdi. Yürütme grupları arasında periyodik duraklamalar kullanılarak izolasyon beş saatten 20 saatin üzerine kadar etkin tutulabildi.
Saldırgan ile kurban arasında yakınlık sağlamak için saldırgan Worker, kurban Worker'ı fetch aracılığıyla çağırdı; bu da çoğu durumda ikisinin aynı uç sunucusunda aynı süreçte çalıştırılmasına yol açtı. Bu yöntem ayrıca ölçümlerin kararlılığını artırmak için uç merkezlerindeki düşük yük dönemlerinden yararlanılmasına izin verdi.
Cloudflare'ın savunmalarında pratikte ne değişti?
Cloudflare, tek bir önleme güvenmek yerine çeşitli değişiklikler yaptı. V8 Sandbox koruma katmanlarının bir parçası haline geldi ve JavaScript yığınının büyük bölümlerinde 64 bit genişliğinde ham işaretçilerin bulunmasını azaltmayı hedefliyor. Bu, araştırmada kullanılan bazı spekülatif karışıklık araçlarının yeniden kullanılmasını zorlaştırıyor, ancak Spectre saldırılarına karşı eksiksiz bir çözüm oluşturmuyor; çünkü bellek sınırlarının dışına erişim sağlayan başka araçlar veya biçimler ortaya çıkabilir.
Eylül 2025'te şirket, Memory Protection Keys veya MPK'ye dayanan işlem içi izolasyonu yayımladı. Bu teknoloji belleği koruma alanlarına böler ve erişim haklarını düşük maliyetle değiştirir; böylece her izolasyonun yığını donanım tarafından uygulanan bir engelin arkasında durur. Bu, saldırının dayandığı izolasyon yığınları arasındaki doğrudan okumayı engeller, ancak Spectre'ın tüm risklerini ortadan kaldırmaz; koruma alanlarının sayısı sınırlıdır ve sistem, koruma anahtarlarının durumunun dikkatli biçimde yönetilmesini gerektirir.
Cloudflare ayrıca DyPrIs mekanizmasını uzun süreli yürütme süreçleri ve yoğun girdi/çıktı yükleriyle başa çıkacak şekilde geliştirdi. Bir komut dosyasını izole etmek için çağrının sona ermesini beklemek, bir WebSocket bağlantısı veya Durable Object çağrıyı saatlerce açık tutabildiğinde yeterli değildir. Şirket ayrıca, özellikle hesaplama açısından yoğun bölümlerin çevresinde zamanlayıcı benzeri işlemler tekrarlandığında, uzak zamanlama davranışını algılama sinyallerine eklemeyi araştırıyor; buna eşlik eden ağ trafiğini sıradan gürültü olarak değerlendirmek yerine.
Sonucun sınırları
Test, Cloudflare'ın ve araştırmacıların kontrolündeki Workers'a karşı gerçekleştirildi; gerçek kiracıların ele geçirildiğine dair bir kanıt niteliğinde değildi. Şirketin açıklamasına göre en yüksek sızıntı hızı doğruluk pahasına elde edildi ve önceki üç yıl içinde gerçek bir istismara ilişkin herhangi bir belirti gözlemlenmedi. Bu nedenle bulgular, önceki izolasyon modelinde uygulanabilir bir saldırı yeteneğini ve süreç izolasyonu, donanım tarafından uygulanan bellek koruması ile sürekli davranışsal algılamanın birleştirilmesinin önemini ortaya koyuyor.