Bulut bilişim çağında, veri merkezlerinde çalışan sunucuların ele geçirilmesi durumunda hassas verilerin ve kritik işlemlerin saldırganlar tarafından görüntülenmesini veya değiştirilmesini önlemek büyük önem taşıyor. Bu noktada Intel, AMD ve diğer firmaların donanım düzeyinde sunduğu korumalar hayati bir rol oynuyor. Güvenilir Yürütme Ortamları (Trusted Execution Enclaves - TEEs) olarak bilinen şifreli alanlarda belirli verileri ve işlemleri saklayarak çalışan bu korumalar, bulutta Signal Messenger ve WhatsApp gibi servislerin gizlediği sırları güvence altına alıyor. Büyük bulut sağlayıcıları da müşterilerine bu teknolojileri kullanmalarını öneriyor. Intel bu korumaya SGX adını verirken, AMD ise SEV-SNP olarak adlandırıyor.
Ancak yıllar içinde araştırmacılar, Intel ve AMD'nin bu korumalarla ilgili vaatlerini defalarca zayıflattı. Geçtiğimiz günlerde bağımsız araştırmacılar tarafından yayınlanan iki ayrı makalede, SGX ve SEV-SNP'nin sınırlılıklarını ortaya koyan yeni saldırı yöntemleri açıklandı. Battering RAM olarak adlandırılan bir saldırı, her iki korumayı da aşarak saldırganların şifreli verileri yalnızca görüntülemesini değil, aynı zamanda yazılım arka kapıları oluşturmak veya verileri bozmak için aktif olarak manipüle etmesini sağlıyor. Wiretap adlı ayrı bir saldırı ise SGX tarafından korunan hassas verileri gizlice çözebiliyor ve her zaman görünmez kalabiliyor.
Deterministik Şifrelemeye Saldırı
Her iki saldırı da CPU yongası ile bellek modülü arasına yerleştirilen ve işlemci ile bellek arasındaki veriyi gözlemlemesini sağlayan bir ara parça (interposer) adı verilen küçük bir donanım bileşenini kullanıyor. Bu saldırılar, hem Intel hem de AMD'nin kullandığı deterministik şifreleme yönteminden faydalanıyor. Deterministik şifreleme, aynı düz metni aynı anahtarla şifrelediğinde her zaman aynı şifreli metni üretiyor. SGX ve SEV-SNP'de bu durum, aynı düz metnin aynı bellek adresine yazıldığında her zaman aynı şifreli metnin üretilmesi anlamına geliyor.
Deterministik şifreleme, tam disk şifrelemesi gibi verinin bir kere saldırganın eline geçtikten sonra değişmediği durumlar için uygundur. Ancak işlemci ile bellek çipi arasındaki veri akışını korumak için bu şifreleme türü yetersiz kalıyor. Çünkü saldırganlar, düz metin her değiştiğinde şifreli metni gözlemleyerek sistemlere tekrar oynatma saldırıları (replay attacks) ve diğer bilinen sömürü teknikleri ile erişebilir. Olasılıksal şifreleme ise, aynı düz metnin şifreleme sırasında rastgele seçilen geniş bir şifreli metin yelpazesine şifrelenebilmesi sayesinde bu tür saldırılara karşı koyar.
Battering RAM makalesinin baş yazarı Jesse De Meulemeester, "Temel olarak, [deterministik şifreleme kullanımı] bir tasarım ödünleşmesidir," dedi. "Intel ve AMD, şifrelemeyi ölçeklenebilir tutmak (yani tüm bellek aralığını korumak) ve ek yükü azaltmak için bütünlük veya tazelik olmaksızın deterministik şifrelemeyi tercih etti. Bu seçim, bizimkiler gibi düşük maliyetli fiziksel saldırılara olanak tanıyor. Bunun düzeltilmesinin tek yolu, muhtemelen bellek şifrelemesine tazelik ve bütünlük sağlayarak donanım değişiklikleri gerektirecektir."
Wiretap araştırmacılarından Daniel Genkin de bu görüşe katılıyor. "Bu, Intel'in SGX istemci makinelerden sunuculara geçtiği zamanki bir tasarım seçimiydi," dedi. "Performansı artırıyor ancak güvenlik pahasına." Genkin, Intel'in yaklaşık beş yıl önce istemci işlemcilerde SGX'i (belleğin yalnızca 256 MB'ı ile sınırlı olan) sunucu işlemcilere (terabaytlarca RAM'i şifreleyebilen) geçirme kararını kastediyordu. Bu geçiş, Intel'in bu kadar büyük miktarda veri için şifrelemeyi ölçeklendirmesini gerektirmişti.
Genkin ayrıca, "Makaleler aynı madalyonun iki yüzü," diye ekledi.
Her iki saldırı da deterministik şifrelemeyle ilgili zayıflıkları sömürse de, yaklaşımları ve bulguları farklıdır ve her birinin kendi avantajları ve dezavantajları vardır. Her iki araştırma ekibi de, bulgularını çip üreticilerine özel olarak sunduktan sonra diğerinin çalışmasından haberdar olduklarını belirtti. Ekipler daha sonra yayın tarihlerini Salı gününe denk getirdi. Bu tür bir tesadüf ilk kez yaşanmıyor. 2018'de, birden fazla araştırma ekibi bağımsız olarak Spectre ve Meltdown gibi saldırılar geliştirdi. Her ikisi de işlemcilerin performans artırma özelliği olan spekülatif yürütmeyi sömürerek Intel ve AMD işlemcilerinden sırları çekti.
AMD yorum yapmaktan kaçınırken, Intel ise gönderilen sorulara yanıt vermedi. Geçmişte her iki çip üreticisi de, TEE'lerinin bir yazılım parçasının veya işletim sisteminin kendisinin ele geçirilmesine karşı koruma sağlamak üzere tasarlandığını belirtti. Şirketler, bu garantilerin Battering RAM ve Wiretap gibi işlemci ile bellek çipleri arasına yerleştirilen fiziksel ara parçalara dayanan fiziksel saldırıları kapsamadığını söylediler. Bu sınırlamaya rağmen, birçok bulut hizmeti, fiziksel saldırılarla ele geçirilmiş olsalar bile TEE'lerin güvencelerine güvenmeye devam ediyor.
Battering RAM Saldırısı
Battering RAM, korumalı bellek bölgeleri ile bir Intel veya AMD işlemci arasındaki DDR4 bellek modüllerinden geçen şifreli verileri okuyan bir ara parça olarak görev yapan özel yapım bir analog anahtar kullanıyor. Hem SGX hem de SEV-SNP, tasarımı gereği bu şifreli metni bir saldırganın erişimine kapalı tutuyor. Bu korumayı aşmak için ara parça, iki farklı bellek adresinin bellek modülündeki aynı konuma işaret ettiği bellek takma adları (memory aliases) oluşturuyor.
De Meulemeester, "Bu, saldırganın bir kurbanın şifreli metnini yakalamasına ve daha sonra onu bir takma ad üzerinden tekrar oynatmasına olanak tanıyor," diye açıklıyor. "Intel'in ve AMD'nin bellek şifrelemesi deterministik olduğu için, tekrar oynatılan şifreli metin, kurban onu okuduğunda her zaman geçerli düz metne çözülüyor." Belçika'daki KU Leuven'de doktora öğrencisi olan De Meulemeester devam ediyor:
Her iki durumda da saldırgan, tedarik zinciri saldırısı veya fiziksel ele geçirme yoluyla ara parçayı kurar ve ardından seçilen bir bellek konumunda bir sanal makine veya uygulama çalıştırır. Aynı zamanda saldırgan, şifreli metni yakalamak için takma adları da kullanır. Daha sonra saldırgan, yakalanan şifreli metni tekrar oynatır ve bu, saldırganın erişimi olan bölgede çalıştığı için düz metin olarak tekrar oynatılır.
SGX, RAM'in tüm korumalı aralığı için tek bir bellek şifreleme anahtarı kullandığından, Battering RAM bu bölgelere düz metin yazma veya okuma yeteneği kazanabilir. Bu, saldırganın işlemcinin sağlama anahtarını çıkarmasına ve bu süreçte SGX'in bütünlüğünü ve orijinalliğini uzaktaki bağlantı kuran taraflara sertifikalandırmak için sağlaması gereken güvenceyi kırmasına olanak tanır.
SEV ile korunan AMD işlemciler, belirli bir sanal makinedeki tüm şifreli metni üretmek için tek bir şifreleme anahtarı kullanır. Bu, SGX'i yenmek için kullanılan şifreli metin tekrar oynatma tekniğini engeller. Bunun yerine Battering RAM, sanal makinenin kurcalanmadığını kanıtlamak için tasarlanmış kriptografik öğeleri yakalar ve tekrar oynatır. Eski bir güvence raporunu tekrar oynatarak, Battering RAM hala VM'nin kurcalanmadığına dair SEV-SNP sertifikasına sahip, arka kapılı bir Sanal Makine yükleyebilir.
Battering RAM'in temel faydası, 50 dolardan daha az maliyetli ekipman gerektirmesidir. Ayrıca aktif şifre çözme anlamına gelir; yani şifreli veriler hem okunabilir hem de kurcalanabilir. Ek olarak, DDR4 bellek modülleriyle çalıştıkları sürece hem SGX hem de SEV-SNP'ye karşı çalışır.
Wiretap Saldırısı
Wiretap ise yalnızca DDR4 ile çalışan SGX'i kırmakla sınırlıdır, ancak araştırmacılar bunun az bir ek çalışmayla AMD korumalarına karşı da çalışabileceğini belirtiyor. Ancak Wiretap, yalnızca pasif şifre çözmeye izin verir; yani korumalı veriler okunabilir, ancak korumalı bellek bölgelerine veri yazılamaz. Ara parça ve yakalanan verileri analiz etmek için gereken ekipman maliyeti ise Battering RAM'den önemli ölçüde daha yüksektir; yaklaşık 500 ila 1.000 dolar civarındadır.
Battering RAM gibi, Wiretap da deterministik şifrelemeyi sömürüyor, ancak bu ikinci saldırı şifreli metni, şifreli metnin türetildiği bilinen düz metin kelimeler listesine eşliyor. Sonunda, saldırı güvence anahtarını kurtarmak için yeterli şifreli metin kurtarabilir.
Genkin, şu şekilde açıkladı:
Wiretap araştırmacıları, bir saldırgan SGX güvenliğini başarıyla ele geçirdiğinde mümkün olabilecek saldırı türlerini gösterdi. Intel'in açıkladığı gibi, SGX'in önemli bir faydası uzaktan güvencedir; bu, güvenli alan içinde çalışan VM'lerin veya diğer yazılımların orijinalliğini ve bütünlüğünü doğrulayan ve kurcalanmadığını belirten bir süreçtir. Yazılım denetimi geçtikten sonra, güvenli alan uzak tarafa test edilen yazılımın kimliğini ve yazılımın güvenli olduğuna dair sağlıklı bir rapor sağlayan dijital olarak imzalanmış bir sertifika gönderir.
Ardından güvenli alan, kimlik bilgileri ve özel verilerin aktarım sırasında okunamaz veya değiştirilemez olmasını sağlamak için uzak tarafla şifreli bir bağlantı açar. Uzaktan güvence, endüstri standardı Elips Eğrisi Dijital İmza Algoritması ile çalışır, bu da tüm tarafların kullanmasını ve güvenmesini kolaylaştırır.
Blockchain Hizmetleri Bu Hatırlatmayı Almadı
Bulut tabanlı birçok hizmet, ağlarında gizlilik ve güvenliğin temeli olarak TEE'lere dayanır. Bu hizmetlerden biri, akıllı sözleşmelerin hazırlanmasına ve yürütülmesine izin veren bir blockchain sağlayıcısı olan Phala'dır. Şirkete göre, bilgisayar "durumu" - yani bir uygulamanın bağlı olduğu sistem değişkenleri, yapılandırmalar ve diğer dinamik veriler - yalnızca SGX, SEV-SNP ve Arm çiplerinde bulunan TrustZone adlı üçüncü bir güvenilir güvenli alanda saklanır ve güncellenir. Bu tasarım, bu akıllı sözleşme öğelerinin "işçi düğümleri" - yani akıllı sözleşmeleri barındıran ve işleyen bilgisayarlar - aracılığıyla gerçek zamanlı olarak güncellenmesine olanak tanır ve herhangi bir düğümün yürütme sırasında bilgileri kurcalama veya görüntüleme olasılığı ortadan kalkar.
Phala, "Intel tarafından imzalanan güvence alıntısı, başarılı bir yürütmenin kanıtı olarak hizmet ediyor," diye açıkladı. "Bu, belirli bir kodun SGX güvenli alanında çalıştığını ve belirli bir çıktı ürettiğini kanıtlıyor, bu da yürütmenin gizliliğini ve doğruluğunu ima ediyor. Kanıt herhangi biri tarafından genel donanım ile yayınlanabilir ve doğrulanabilir." AMD ve Arm tarafından sağlanan güvenli alanlar benzer şekilde çalışır.
Wiretap araştırmacıları, işçi düğümlerini çalıştırmak için yerel bir makine olan bir "testnet" oluşturdular. SGX güvence anahtarını ele geçiren araştırmacılar, bireysel düğümlerin sözleşme durumunu okumasını veya değiştirmesini engelleyen bir küme anahtarı elde edebildiler. Bununla Wiretap, korumayı tamamen atlatabildi. Araştırmacılar bir makalede şu ifadeleri kullandılar:
Araştırmacılar, Secret, Crust ve IntegriTEE gibi çeşitli diğer blockchain hizmetlerine karşı benzer atlatmalar gerçekleştirdiler. Araştırmacılar sonuçları bu şirketlerle özel olarak paylaştıktan sonra, bu şirketler saldırıları azaltmak için adımlar attılar.
Hem Battering RAM hem de Wiretap yalnızca DDR4 bellek yongalarıyla çalışıyor çünkü daha yeni DDR5 çok daha yüksek veri yolu hızlarında ve çok döngülü bir iletim protokolü ile çalışıyor. Bu nedenle, her iki saldırı da yalnızca DDR5 ile çalıştığı için, benzer bir Intel koruması olan TDX'e karşı çalışmıyor.
Daha önce de belirtildiği gibi, hem Intel hem de AMD, TEE'lerinin dayanacak şekilde tasarlandığı tehdit modelinden Battering RAM ve Wiretap gibi fiziksel saldırıları dışlıyor. Wiretap araştırmacıları, bu uyarılara rağmen birçok bulut tabanlı hizmetin hala ağlarının güvenliğini ve gizliliğini korumak için güvenli alanlara güvendiğini gösterdi.
Şimdilik tek uygulanabilir çözüm, çip üreticilerinin deterministik şifrelemeyi daha güçlü bir koruma biçimiyle değiştirmesidir. Bu tür şifreleme şemalarının büyük miktarda RAM'e ölçeklendirilmesinin zorlukları göz önüne alındığında, bunun ne zaman olabileceği belirsizdir.