AMD, işlemcilerine yönelik TSA (Geçici Zamanlayıcı Saldırısı) adı verilen yeni bir mikro mimari saldırı sınıfını açıkladı. Bu saldırı, saldırganın CPU izolasyon mekanizmalarını atlatarak, çekirdek düzeyinde işlenen bilgileri belirlemek için kullanıcı alanından veya başka bir konukta kullanılan verileri öğrenmek için bir konuktan veri alma gibi diğer bağlamlarda işlenen verileri belirlemesine olanak tanır.
Güvenlik açıkları, Microsoft ve ETH Zürih araştırmacıları tarafından çekirdek, sanal makineler ve süreçler gibi farklı güvenlik bölgeleri arasındaki mikro mimari izolasyonunu stres testine tabi tutmak için oluşturulan bir araç setinin geliştirilmesi sırasında keşfedildi.
Saldırı yöntemi, bazı talimatların yürütme süresinin mikro mimari yapıların durumuna bağlı olmasına dayanır. İşlemci, bellekten veri okuma talimatının hızlı bir şekilde tamamlanmasını beklerken (örneğin, verilerin L1 önbelleğinde olduğunu varsayarak), ancak verileri başarıyla alamadığında, talimatın "yanlış tamamlanma" durumu oluşur. Bu durumda, işlemci bu durumu belirlemeden önce bile, bellekten yükleme talimatının yürütülmesinin sonucuna bağlı diğer işlemlerin varsayımsal yürütülmesini planlayabilir.
Yükleme tamamlanmadığı için, ilişkili veriler işlemci tarafından geçersiz kılınır ve yükleme işlemi daha sonra tekrarlanır. Doğru veriler hazır olduğunda, bağımlı işlemler de yeniden yürütülür. Ancak, "yanlış tamamlama" koşulunun düzeltildiği talimatın yürütülmesinden sonra işlem hattı temizliği gerçekleştirilmez ve hatalı veriler bağımlı işlemlere yönlendirilebilir.
Bu tür işlemlerin yürütülmesi, önbelleğin ve TLB'nin (Translation Lookaside Buffer) durumunu değiştirmez; yani veriler, önbellek durumunu belirlemeye yönelik geleneksel yöntemler kullanılarak geri yüklenemez. Ancak bu veriler, diğer talimatların yürütme süresini etkiler. Yürütme süresinin analizi, diğer işlemlerin varsayımsal yürütülmesinden sonra kalan mikro mimari yapılardan bilgi sızıntısı kaynağı olarak kullanılabilir.
Kalıntı veri çıkarma kaynağına bağlı olarak iki güvenlik açığı tespit edilmiştir:
- CVE-2024-36350 (TSA-SQ — TSA Depolama Kuyruğu) — yazma işlemlerinin geçici depolama tamponundan (Depolama Kuyruğu) bir sızıntı, belleğe yazma talimatlarının sonucunun belirlenmesine olanak tanır.
- CVE-2024-36357 (TSA-L1 — TSA L1 Veri Önbelleği) — L1D önbelleği üzerinden sızıntı.
Güvenlik açıkları, Zen 19 ve Zen 3 mikro mimarilerine dayanan AMD işlemci ailesinde (Fam4h) ortaya çıkıyor. Örneğin, sorun AMD Ryzen 5000/6000/7000/8000, AMD EPYC Milan/Milan-X/Genoa/Genoa-X/Bergamo/Siena, AMD Instinct MI300A, AMD Ryzen Threadripper PRO 7000 WX, AMD EPYC Embedded 7003/8004/9004/97X4 ve AMD Ryzen Embedded 5000/7000/V3000 CPU serilerinde mevcut.
Güvenlik açığını engellemek için gereken değişiklikler, Aralık ayında OEM'lere yayınlanan mikro kod güncellemesi ve Platform Başlatma (PI) belleniminde yer aldı. Güvenlik açığına karşı koruma sağlayan yamalar, çekirdeğe dahil edilmek üzere gönderildi. Linux (Çekirdek komut satırı seçeneği "tsa=off", performansı olumsuz etkileyen korumayı devre dışı bırakmak için sağlanmıştır.) Xen hipervizörüne de bir düzeltme eklendi. Güvenlik açığını engellemek için hem mikro kod güncellemesi hem de çekirdek veya hipervizör düzeyinde koruma modunun etkinleştirilmesi gerekmektedir.
Kaynak: opennet.ru
