Ara

Tek Bir Komutla AMD İşlemcilerde Gizli Alanlara Erişim Mümkün: Güvenlik Açığı Ortaya Çıktı

Siber güvenlik dünyasında "her şeye hükmeden tek yüzük" olarak nitelendirilebilecek keşifler nadiren karşımıza çıksa da, bazı AMD işlemcilerdeki bellek haritalamasını devre dışı bırakarak normalde erişilemeyen alanlara kapı aralayan bir keşif bu tanıma oldukça yaklaşıyor. Sadece tek bir komutla Platform Güvenlik İşlemcisi (PSP) gibi gizli yazılımlara, Sistem Yönetimi Modu'na (SMM), mikro kod yama belleğine ve diğer birçok hassas bölgeye erişim sağlanabiliyor. Bu durum, donanım düzeyinde tam kontrol imkanı sunuyor.

Keşfedilen bu güvenlik açığı, daha önce de işlemci kusurlarını bulan ünlü siber güvenlik uzmanı Christopher Domas tarafından geliştirildi ve "Skitter Creek Bath Salts" (Skitter) olarak adlandırılıyor. Bu açık, yalnızca 15h ve 16h ailelerine ait, yaklaşık olarak 2011 ile 2015 yılları arasında üretilmiş AMD işlemcileri etkiliyor. 15h ailesi FX serisi masaüstü işlemcileri ve bazı Opteron'ları, 16h ailesi ise PlayStation 4 ve Xbox One gibi cihazlarda kullanılan Jaguar ve Puma tabanlı düşük güçlü SoC'leri, ayrıca Athlon, Sempron ve Opteron-X gibi işlemcileri kapsıyor.

Bu güvenlik açığından yararlanmak için çekirdek düzeyinde erişim gerekiyor, yani kendi sürücülerinizi çalıştırma yeteneğine sahip olmanız şart. Ancak bu erişim sağlandığında, tüm sistem belleği erişilebilir hale geliyor. AMD bu konuda bir güvenlik bülteni yayınlayarak, etkilenen işlemcilerin artık güvenlik desteği dışında olduğunu ve gerekli erişim seviyesine sahip bir saldırganın zaten makineyi kontrol edebileceğini belirtiyor.

Tek bir komutun tüm bir sisteme nasıl erişim sağlayabildiği kafa karıştırıcı olabilir. Basitçe açıklamak gerekirse: Diyelim ki sisteminizde 16 GB RAM var. Normalde işletim sisteminin bu belleğin tamamını kullanabildiğini düşünürsünüz. Ancak gerçekte, bu bellekten bir kısmı sistem düzeyindeki veriler için ayrılmıştır. İşletim sisteminin cihazlarla etkileşim kurması için görünür olan bazı bölümler olsa da, PSP, SMM, mikro kod yamaları gibi "dokunulmaması gereken" çok önemli veriler de bu ayrılmış alanlarda bulunur. Eğer bu alanlara erişim mümkün olsaydı, işlemcinin verileri nasıl işlediğiyle ilgili değişiklikler yapabilecek kötü niyetli bir sürücü düşünün; bu da sistemin güvenli olamayacağı anlamına gelirdi.

Performans artışı sağlamak amacıyla modern işlemcilerin bellek denetleyicileri, bellekleri düz bir hat üzerinde değil, bankalar arası geçiş (bank interleaving) yöntemiyle kullanır. Bu, DRAM'deki gerçek baytların karıştırıldığı anlamına gelirken, işletim sistemi düzgün ve sıralı bir yüzey görür. Ancak bu özelliği kontrol eden işlemci ayarı, etkilenen işlemci ailelerinde işletim sisteminden erişilebilir durumdadır ve "BankSwizzleMode" (Swizzle) olarak adlandırılır. Bu ayar, "xor dword [0xf80c2094], 0x00400000" komutuyla basit bir bit manipülasyonuyla açılıp kapatılabilir. İşte bu durum istismar edilebilir.

İlk adımda, belleğin normalde nasıl haritalandığını anlamak için bir döngü çalıştırılır. Belleğe bir işaretçi (örneğin, geleneğe göre 0xDEADBEEF) yerleştirilir, Swizzle devre dışı bırakılır, belleğin üzerinden geçilerek işaretçinin nereye yerleştiği gözlemlenir ve ardından Swizzle tekrar etkinleştirilir. Bu işlem yeterince tekrarlandığında, hangi belleğin fiziksel DRAM'e ve tersi şekilde nasıl haritalandığı tam olarak anlaşılır.

Artık harita elinizde olduğuna göre, Swizzle'ı devre dışı bırakarak normalde erişilemeyen DRAM alanlarına zorla okuma veya yazma işlemi yapabilirsiniz, çünkü bu verilerin nereye yerleşeceğini artık biliyorsunuz. Bu sayede, daha önce gizlenmiş tüm kod ve verilere erişerek, donanım düzeyinde tam kontrol elde edebilir ve fTPM imzalama kodlarını veya aklınıza gelebilecek diğer düşük seviye manipülasyonları gerçekleştirebilirsiniz.

Peki, bu işlem sırasında RAM'in geçici olarak bir karmaşa haline gelmesi sistemin çökmesine neden olmuyor mu diye merak ediyor olabilirsiniz. Cevap şu ki, Swizzle her etkinleştirilip devre dışı bırakıldığında, işlemci kesintileri ve diğer önlemleri devre dışı bırakarak hazırlanır. Yine de, harita toplama aşamasında makine çökebilir, ancak bu işlem yalnızca bir kez yapılmalıdır. Harita elde edildikten sonra, belirli konumlara odaklanılacağı için çökme olasılığı oldukça düşüktür.

Bir diğer soru da, bir bellek konumuna gönderilen bir bitin işlemciyi nasıl etkilediğidir. Cevap ise, işletim sisteminden erişilebilen belleğin bir kısmının Bellek Haritalı Yapılandırma Alanı (MMCONFIG) standardına göre donanıma eşlenmesidir. Bu, o alana yapılan okuma veya yazma işlemlerinin gerçek RAM yerine donanım yapılandırma ayarlarına yönlendirildiği anlamına gelir.

Önceki Haber
DDR5 Çılgınlığına Karşı B450 Dönüşü: Gigabyte'tan DDR4'e Can Suyu!
Sıradaki Haber
İptal Edilen Mimari Canlandı: Intel Razor Lake-AX ile Tanışın, Razor Lake-S Nesil Atlıyor!

Benzer Haberler: