Sunucu altyapısında TEE’leri hacklemek

İki ayrı araştırma makalesi, sanal sistemlerin tehlikeli bir ortamda, özellikle de veri sahibi bulut sağlayıcısına güvenemediğinde nasıl riske atılabileceğini açıkça göstermektedir.

WireTap ve Battering RAM: TEE'lere yönelik saldırılar

Modern sunucu işlemcileri, özellikle hassas bilgileri işlemek için güvenilir yürütme ortamı (TEE) özelliğine sahiptir. Birçok TEE uygulaması vardır, ancak bu tartışma ile en alakalı olan ikisi şöyledir: Intel Software Guard eXtensions (SGX) ve AMD Secure Encrypted Virtualization (SEV). Neredeyse aynı anda, biri ABD’de, diğeri Avrupa’da bulunan iki ayrı araştırma ekibi, bu iki uygulamayı kötüye kullanmak için birbirine çok benzer (ancak farklı) yöntemler keşfetti. Amaçları, rastgele erişim belleğinde tutulan şifrelenmiş verilere erişim sağlamaktı. Bu sonuçların ayrıntılarını anlatan bilimsel makaleler birkaç gün arayla yayınlandı:

  • WireTap: DRAM Veri Yolu Interposition yöntemiyle Sunucu SGX’i Kırmak, Intel Software Guard eXtensions (SGX) sisteminin başarılı bir şekilde hacklenmesini ayrıntılarla anlatan ABD’li araştırmacıların çalışmasıdır. Bunu, işlemci ile DDR4 RAM modülü arasındaki veri alışverişini keserek başardılar.
  • Battering RAM‘de, Belçika ve Birleşik Krallık’tan bilim adamları, işlemci ile DDR4 RAM modülü arasındaki veri aktarım sürecini manipüle ederek Intel SGX’i ve AMD’nin benzer güvenlik sistemi SEV-SNP’yi de başarıyla ele geçirdiler.

Bir TEE’yi Hacklemek

Bahsedilen teknolojilerin her ikisi de (Intel SGX ve AMD SEV), sistem tamamen tehlikeye girse bile verileri koruyacak şekilde tasarlanmıştır. Bu nedenle, araştırmacılar saldırganın; sunucunun yazılım ve donanımına tam erişim ve aradıkları gizli verilere, örneğin o sunucuda çalışan bir sanal makinede bulunan verilere tam erişim gibi tam hareket özgürlüğüne sahip olacağı varsayımından yola çıktılar.

Bu senaryoda, Intel SGX ve AMD SEV’nin belirli sınırlamaları kritik hale gelir. Bunun bir örneği, belirli bir girdi veri dizisinin her zaman tam olarak aynı şifrelenmiş çıktı veri dizisini ürettiği bir algoritma  olan deterministik şifrelemenin kullanılmasıdır. Saldırgan yazılıma tam erişime sahip olduğundan, TEE’ye rastgele veriler girebilir. Saldırgan, şifrelenmiş bilgilere de erişebiliyorsa, bu iki veri setini karşılaştırarak kullanılan özel anahtarı hesaplayabilir. Bu da, aynı mekanizma ile şifrelenmiş diğer verileri deşifre etmelerini sağlayacaktır.

Ancak zorluk, şifrelenmiş verileri nasıl okuyacağımızdır. Bu veriler RAM’de bulunur ve yalnızca işlemci onlara doğrudan erişebilir. Teorik kötü amaçlı yazılım, bellekte şifrelenmeden önce yalnızca orijinal bilgileri görür. Bu, araştırmacıların farklı yaklaşımlarla ele aldıkları ana zorluktur. Basit ve doğrudan bir çözüm, işlemciden RAM modülüne aktarılan verilerin donanım düzeyinde yakalanmasıdır.

Nasıl çalışıyor? Bellek modülü çıkarılır ve ardından bir ara parça kullanılarak yeniden takılır. Bu ara parça da özel bir cihaza, yani bir mantık analizörüne bağlanır. Mantık analizörü, tüm veri ve adres hatları üzerinden bellek modülüne giden veri akışlarını yakalar. Bu oldukça karmaşıktır. Bir sunucu genellikle birçok bellek modülüne sahiptir, bu nedenle saldırgan, işlemciyi hedef bilgileri özellikle istenen aralığa yazmaya zorlamanın bir yolunu bulmalıdır. Ardından, mantık analizörü tarafından yakalanan ham veriler yeniden yapılandırılmalı ve analiz edilmelidir.

Ancak sorunlar burada bitmez. Modern bellek modülleri, işlemciyle muazzam hızlarda veri alışverişi yaparak saniyede milyarlarca işlem gerçekleştirir. Bu kadar yüksek hızlı bir veri akışını kesmek için üst düzey ekipman gerekir. 2021 yılında bu tür saldırıların uygulanabilirliğini kanıtlamak için kullanılan donanım, yüz binlerce dolara mal oldu.

WireTap’in özellikleri

WireTap’in arkasındaki ABD’li araştırmacılar, hackleme maliyetini bin doların biraz altına düşürmeyi başardılar. DDR4 bellek modülünden veri yakalamak için kurdukları sistem şöyleydi:

WireTap ve Battering RAM: TEE'lere yönelik saldırılar

İşlemci ve bellek modülü arasındaki veri alışverişini kesmek için test sistemi Kaynak

Bütçenin yarısını, çevrimiçi bir açık artırmada satın aldıkları, çeyrek asırlık eski bir mantık analiz cihazına harcadılar. Kalan kısım gerekli konektörleri kapsıyordu ve ara parça (hedef bellek modülünün takıldığı adaptör) yazarlar tarafından özel olarak lehimlenmişti. Böyle eski bir kurulum, veri akışını normal hızında yakalayamaz. Ancak araştırmacılar önemli bir keşif yaptılar: Bellek modülünün çalışmasını yavaşlatabildiler. Standart DDR4’ün 1600 ila 3200 megahertzlik etkin hızları yerine, hızı 1333 megahertz’e düşürmeyi başardılar.

Buradan sonraki adımlar pek basit olmasa da yeterince açık:

  1. Hedef işlemden gelen verilerin hacklenmiş bellek modülüne yazıldığından emin olun ve ardından bu aşamada hala şifreli olan verileri yakalayın.
  2. Şifreleme için Intel SGX’e özel bir veri kümesi girin.
  3. Bilinen verilerin şifrelenmiş halini yakalayın, bilinen düz metni elde edilen şifreli metinle karşılaştırın ve şifreleme anahtarını hesaplayın.
  4. Hedef sürece ait önceden yakalanan verilerin şifresini çözün.

Özetle, WireTap çalışması Intel SGX’in doğasında var olan sınırlamalar hakkındaki anlayışımızı temelden değiştiremese de saldırının çok daha ucuza gerçekleştirilebileceğini göstermektedir.

Battering RAM’in özellikleri

Belçika’nın KU Leuven Üniversitesi’nden araştırmacılar ve İngiliz meslektaşları, basit veri ele geçirme yaklaşımı yerine, şifrelenmiş bilgilere erişmek için daha incelikli ve zarif bir yöntem aradılar. Ancak ayrıntılara girmeden önce, donanım bileşenine bir göz atalım ve bunu Amerikan ekibinin çalışmasıyla karşılaştıralım:

WireTap ve Battering RAM: TEE'lere yönelik saldırılar

Battering RAM’de kullanılan bellek modülü ara parçası Kaynak

Kablo karmaşası ve hantal bir veri analiz cihazı yerine, bu kurulumda sıfırdan tasarlanmış basit bir kart vardır ve hedef bellek modülü bu karta takılır. Kart, ucuz bir Raspberry Pi Pico mikrobilgisayar tarafından kontrol edilir. Donanım bütçesi önemsizdir; sadece 50 €! Ayrıca, WireTap saldırısından farklı olarak, Battering RAM gizlice gerçekleştirilebilir; sunucuya sürekli fiziksel erişim gerekmez. Değiştirilmiş bellek modülü takıldıktan sonra, gerekli veriler uzaktan çalınabilir.

Bu kart tam olarak ne işe yarar? Araştırmacılar, doğru anda sadece iki adres hattını (bilginin yazılacağı veya okunacağı yeri belirleyen) topraklayarak veri yansıtma durumu yaratabileceklerini keşfettiler. Bu, saldırganın erişebileceği bellek hücrelerine bilgilerin yazılmasına neden olur. Ara kart, Raspberry Pi mikrobilgisayar tarafından kontrol edilen bir çift basit anahtar görevi görür. Canlı donanımdaki kontakları manipüle etmek genellikle sistemin donmasına veya verilerin bozulmasına neden olurken, araştırmacılar adres hatlarını yalnızca gerekli olan kesin anlarda kesip yeniden bağlayarak istikrarlı bir çalışma sağladılar.

Bu yöntem, yazarlara verilerinin kaydedileceği yeri seçme olanağı sağladı. Önemli olan, bu sayede şifreleme anahtarını hesaplamalarına bile gerek kalmamasıdır! Önce hedef işlemden şifrelenmiş bilgileri ele geçirdiler. Ardından, aynı bellek aralığı içinde kendi programlarını çalıştırdılar ve TEE sisteminden önceden yakalanan bilgilerin şifresini çözmesini istediler. Bu teknik, Intel SGX’in yanı sıra AMD SEV’yi de hacklemelerine olanak tanıdı. Ayrıca, veri yazma üzerindeki bu kontrol, AMD’nin SEV-SNP adlı güvenlik uzantısını atlatmalarına yardımcı oldu. Güvenli Katmanlı Sayfalama özelliğini kullanan bu uzantı, bellekteki verilerin değiştirilmesini önleyerek sanal makineyi tehlikeye karşı korumak için tasarlanmıştır. SEV-SNP’yi atlatmak, saldırganların şifrelenmiş verileri okumasına izin vermekle kalmaz, aynı zamanda güvenliği ihlal edilmiş bir sanal makineye kötü amaçlı kod enjekte etmesine de olanak tanır.

Sunucu altyapısına yönelik fiziksel saldırıların önemi

Bu tür saldırıların pratik olarak uygulanmasının mümkün olduğu açık olsa da, gerçek hayatta gerçekleştirilme olasılığı düşük. Çalınan verilerin değeri, donanım düzeyinde kurcalamayı haklı çıkarmak için son derece yüksek olmalıdır. En azından, Intel ve AMD’nin güvenlik çözümleri konusunda benimsediği tutum budur: Her iki yonga üreticisi de araştırmacılara, fiziksel saldırıların güvenlik modellerinin kapsamı dışında olduğunu belirterek yanıt verdi. Ancak hem Amerikan hem de Avrupalı araştırma ekipleri, bu saldırıların maliyetinin daha önce inanıldığından çok daha düşük olduğunu kanıtladılar. Bu durum, bu tür karmaşık güvenlik açıklarını kullanmaya istekli tehdit aktörlerinin listesini potansiyel olarak genişletir.

Önerilen saldırılar kendi kısıtlamalarıyla birlikte gelir. Daha önce de belirttiğimiz gibi, bilgi hırsızlığı DDR4 standart bellek modülleri ile donatılmış sistemlerde gerçekleştirildi. 2020 yılında kesinleşen yeni DDR5 standardı, araştırma amaçlı olsa bile henüz tehlikeye girmiş değildir. Bu, hem bellek modüllerinin revize edilmiş mimarisi hem de artan çalışma hızları nedeniyle gerçekleşmiştir. Bununla birlikte, araştırmacıların sonunda DDR5’te de güvenlik açıkları bulması oldukça muhtemeldir. Ve bu iyi bir şey: TEE sistemlerinin beyan edilen güvenliği düzenli olarak bağımsız denetimlere tabi tutulmalıdır. Aksi takdirde, bir noktada, güya güvenilir olduğu düşünülen bir koruma sisteminin beklenmedik bir şekilde tamamen işe yaramaz hale gelebileceği ortaya çıkabilir.

İpuçları