SLAP: Veri spekülasyonu saldırısı (data Speculation attacks via Load Address Prediction)
- SLAP saldırısı, Apple Silicon’un M2/A15 CPU’larında ortaya çıkan yeni bir spekülatif yürütme saldırısıdır.
- Load Address Predictor (LAP) üzerinden, bellek erişim kalıplarına dayanarak bir sonraki bellek adresi tahmin edilip performans artırılır.
- Tahmin yanlış olduğunda CPU, erişmemesi gereken verileri spekülatif yürütme kapsamında işleyerek bir güvenlik riski doğurur.
- Gerçek bir örnek olarak, Safari web tarayıcısında uzaktaki bir saldırganın e-posta içeriğini ve gezinme davranışını geri çıkarabildiği bir saldırı gösterildi.
FLOP: Yanlış yükleme çıktısı tahminleri (False Load Output Predictions)
- FLOP saldırısı, Apple M3/A17 CPU’larında veri bağımlılıklarının tahmin edilmesiyle ortaya çıkan başka bir spekülatif yürütme saldırısıdır.
- Load Value Predictor (LVP) üzerinden, bellek alt sisteminin döndüreceği veri değeri tahmin edilerek performans artırılır.
- Tahmin yanlış olduğunda, bellek güvenliği için program mantığındaki kritik kontroller atlatılabilir ve bellekte tutulan sırların sızdırılmasına imkân veren bir saldırı yüzeyi açılır.
- Safari ve Chrome web tarayıcılarında konum geçmişi, takvim etkinlikleri, kredi kartı bilgileri gibi verileri geri çıkaran saldırılar gösterildi.
Demo
- Proton Mail gelen kutusu verisi sızıntısı: M3 CPU’nun LVP’si, WebKit içindeki JavaScript koduyla eğitilerek gelen kutusu içeriği adres alanına getiriliyor.
- Muhteşem Gatsby’yi okumak: Apple M2 CPU’da LAP kullanılarak gizli bir dizenin geri çıkarıldığı bir kavram kanıtı gösterimi.
- Harry Potter’ı okumak: Apple M3 CPU’da LVP kullanılarak yanlış dizi indeksi tahmin ediliyor ve dizgedeki karakterlere başvuruluyor; bu da bir kavram kanıtı gösterimi olarak sunuluyor.
Araştırmacılar
- Jason Kim, Jalen Chuang, Daniel Genkin (Georgia Institute of Technology)
- Yuval Yarom (Ruhr University Bochum)
SLAP ve FLOP SSS
Apple cihazım etkileniyor mu?
- Mac dizüstü bilgisayarlar: 2022’den sonra piyasaya çıkan tüm modeller (MacBook Air, MacBook Pro)
- Mac masaüstü bilgisayarlar: 2023’ten sonra piyasaya çıkan tüm modeller (Mac Mini, iMac, Mac Studio, Mac Pro)
- iPad: Eylül 2021’den sonra piyasaya çıkan tüm iPad Pro, Air, Mini modelleri
- Pro 6. ve 7. nesil, Air 6. nesil, Mini 6. nesil
- iPhone: Eylül 2021’den sonra piyasaya çıkan tüm modeller
- Tüm iPhone 13, 14, 15, 16 modelleri ve 3. nesil SE
SLAP ve FLOP saldırıları neden önemli?
- Koruma mekanizması: Normalde web tarayıcıları, açık iki web sayfasını birbirinden izole ederek bir sayfanın diğerinin içeriğini okuyamamasını sağlar
- Zafiyet: SLAP ve FLOP bu korumayı etkisiz hâle getirerek saldırgan sayfanın hedef sayfadaki hassas verileri okuyabilmesini sağlar
- Açığa çıkabilecek veriler: konum geçmişi, kredi kartı bilgileri vb.
SLAP ve FLOP’a karşı nasıl korunabilirim?
- FLOP için hafifletme yöntemleri var, ancak bunlar yazılım üreticilerinin yama yayınlamasını gerektiriyor; kullanıcıların bunu doğrudan çözmesi mümkün değil
- Apple, bu sorunu gelecekteki güvenlik güncellemelerinde çözeceğini belirtti; otomatik güncellemeleri etkinleştirmek ve en güncel OS ile uygulamaları kullanmak önemli
Diğer işlemci üreticilerinde durum ne?
- Intel, AMD, Qualcomm, Ampere gibi ürünlerde henüz SLAP veya FLOP belirtisi bulunmadı
Diğer web tarayıcıları ne durumda?
- Firefox gibi diğer tarayıcılar test edilmedi
Cihazımda birinin SLAP veya FLOP kullandığını tespit edebilir miyim?
- SLAP ve FLOP, mikro mimari tabanlı saldırılar olduğu için sistem günlüklerinde iz bırakmaz
Gerçek dünyada kötü niyetli aktörler SLAP veya FLOP’u kullanıyor mu?
- Şu ana kadar SLAP veya FLOP’un fiilen kullanıldığına dair bir kanıt yok
Apple’a ne zaman bildirdiniz?
- SLAP: 24 Mayıs 2024’te Apple’a bildirildi
- FLOP: 3 Eylül 2024’te Apple’a bildirildi
Teknik sorular
Side Channel nedir?
- Bilgisayar donanımı uygulamasındaki zafiyetleri kötüye kullanan saldırı
- Yazılım hataları yerine, donanım davranışından kaynaklanan bilgi sızıntıları kullanılır
- Veri sızıntısı yolları
- Ses, elektromanyetik dalga, ısı yayılımı gibi fiziksel olgular
- CPU’nun paylaşılan kaynaklarında (çekirdek, önbellek, iç tamponlar vb.) ortaya çıkan çekişme (contention)
- CPU çekişmesinden kaynaklanan bilgi sızıntısı
- Zaman ölçümü, güç tüketimi gibi dolaylı değişkenler üzerinden hedefin davranış kalıpları çıkarımlanabilir
Speculative Execution saldırısı nedir?
- Speculative Execution: CPU’nun kontrol akışını tahmin ederek komutları önceden yürüttüğü bir optimizasyon tekniği
- Tahmin yanlışsa durum geri alınır, ancak önbellek gibi ince izler kalır
- Spectre saldırısı
- Yanlış akış yönünde tahmine dayalı yürütme tetiklenir
- Tahmine dayalı yürütme sırasında hassas veriyi kullanan komutlar çalışırsa, veri değeri dolaylı olarak açığa çıkabilir
- SLAP ve FLOP’taki genişleme
- Apple CPU’ları yalnızca kontrol akışını değil, veri akışını da tahmin eder
- FLOP, yanlış veri değerleriyle komutların yürütülmesine yol açar
SLAP nasıl çalışır?
- Load Address Prediction (LAP) analizi
- Belirli bellek adresi kalıpları öğretilirse, LAP bir sonraki adresi tahmin ederek veri işlemlerini yürütür
- Donanımsal prefetching’den farklı olarak, tahmin edilen veriyle komut yürütülür
- Safari zafiyetinden yararlanma
- iLeakage’in ortaya çıkardığı Safari’deki izolasyon sorununa dayanarak, farklı web sayfalarının aynı süreçte işlenmesi zorlanır
- Saldırgan web sayfası, hedef web sayfasındaki dizge verisine erişir
FLOP nasıl çalışır?
- Load Value Prediction (LVP) analizi
- Aynı veri değeri tekrar tekrar döndürülürse, LVP sonucu tahmin eder
- Yanlış bellek değeri kullanılarak komut yürütülür
- Safari ve Chrome saldırıları
- Safari: JavaScript veri yapılarının tür bilgisi tahmin edilerek yanlış veri yapısıyla komut yürütülür
- Chrome: WebAssembly işlev çağrılarında yanlış argümanlar nedeniyle bellek okuma hatası oluşur
SLAP ile FLOP arasındaki farklar
- SLAP: Load Address Predictor (LAP) kullanarak dizge tahsislerinin yakınlığını kötüye kullanır
- FLOP: Load Value Predictor (LVP) kullanarak veri bütünlüğü kontrollerini atlatır
- LAP vs LVP
- LAP: Bir sonraki bellek adresini tahmin eder
- LVP: Bir sonraki bellek değerinin dönüşünü tahmin eder
- LAP uzun bir eğitim süreci gerektirir, ancak kalıp tahmini mümkündür
JavaScript ve WebAssembly nedir?
- JavaScript: Web içeriğini dinamik olarak güncelleyen bir dil
- WebAssembly: Yüksek performanslı web uygulamaları için kullanılan, JavaScript ile birlikte çalışan bir dil
- Saldırının etkisi
- Her iki dil de tarayıcıda otomatik olarak çalıştığı için, kötü amaçlı kod indirilmeden de saldırı mümkün olabilir
Neden hedef olarak Safari ve Chrome seçildi?
- Safari:
- Site Isolation olmadığı için, farklı alan adlarındaki web sayfaları aynı süreçte çalışabilir
- LAP ve LVP tabanlı saldırı yüzeyi genişler
- Chrome:
- Site Isolation uygulanmış olsa da, bazı durumlarda aynı sitenin alt alan adları tek bir süreçte işlenir
- LAP ve LVP saldırıları hâlâ mümkün olabilir
Araştırma desteği
- Bu araştırma AFOSR, Alfred P Sloan Research Fellowship, ARC Discovery Project, DARPA, DFG, Qualcomm, Cisco ve Zama tarafından desteklendi.
1 yorum
Hacker News yorumları
SLAP demosu, savunmada derinliğin bir açığın pratikte sömürülüp sömürülemeyeceğini nasıl belirleyebildiğini iyi gösteriyor. Safari’deki açık,
window.opençağrısı sırasında yeni pencereyi ayrı bir süreçte izole edemediği için ortaya çıkıyorM3’te LVP’nin varlığının tersine mühendislikle ortaya çıkarılması ilginç. 8 baytlık yüklemede, yalnızca yüklenen değer 0 olduğunda LVP etkinleşiyor. Bu, bellek güvenliği için alınmış bir önlem olabilir
Spectre ve Meltdown saldırıları ile ilgili makaleler ve bağlantılı çalışmalar, bunlarla ilk kez karşılaşanlar için okumaya değer
Safari’de önbellek isabeti ile ıskayı ayırt etmek için NOT kapısı tabanlı önbellek yükseltme ilkesi kullanılıyor. Web ortamında bile önbellek isabeti ve ıskası ayırt edilebiliyor
Chrome’un site izolasyonunun kusursuz bir hafifletme olmadığını gösteriyor. Aynı sitenin iki alt alan adının tek bir süreçte birleştirilebildiği köşe durumları var
Donanım açıklarını duyurmak için kullanılan pazarlama kültürü tuhaf geliyor. Neden açığı basitçe bildirip makale yayımlamak yerine özel alan adları, logolar, SSS’ler vb. hazırlanıyor diye merak ediyorum
Geçen yıl Intro to Cyber Security dersinde Profesör Daniel Genkin ile tanıştım. Apple CPU’larına yönelik spekülatif saldırılar üzerinde çalıştığını söylemişti. Güvenliğin neredeyse hiç garanti olmadığını anlamamı sağladı
Güvenilmeyen sitelerde varsayılan olarak js’yi devre dışı bırakma eğilimindeyim. Sonuçta bu, makinemizde çalıştırdığımız bir başkasının programı
Apple kısa süre önce macOS ve iOS için güvenlik düzeltmeleri içeren küçük sürüm güncellemeleri yayımladı. Bunun bu açığı giderip gidermediğini kontrol eden biri var mı merak ediyorum
Görünüşe göre RUB, ileri düzey saldırı güvenliği araştırmalarının küresel merkezi haline geldi. 10 yıl önce buna dikkat etmediğim için mi böyle geliyor, yoksa gerçekten yeni bir olgu mu merak ediyorum