Plundervolt, SGX teknolojisini etkileyen Intel işlemcilere yönelik yeni bir saldırı yöntemidir

Intel yayınlandı düzelten mikro kod güncellemesi Güvenlik açığı (CVE-2019-14607), izin vermek CPU'daki dinamik voltaj ve frekans kontrol mekanizmasının manipülasyonu yoluyla, yalıtılmış Intel SGX bölgelerindeki hesaplamalar için kullanılan alanlar da dahil olmak üzere veri hücrelerinin içeriğine zarar verir. Saldırıya Plundervolt adı veriliyor ve potansiyel olarak yerel bir kullanıcının sistemdeki ayrıcalıklarını artırmasına, hizmet reddine neden olmasına ve hassas verilere erişmesine olanak tanıyor.

Saldırı, yalnızca SGX bölgelerindeki hesaplamalarla yapılan manipülasyonlar bağlamında tehlikelidir çünkü gerçekleştirilmesi için sistemde kök haklarına ihtiyaç vardır. En basit durumda, bir saldırgan enclave'de işlenen bilgileri bozabilir ancak daha karmaşık senaryolarda, şifreleme için kullanılan enclave'de saklanan özel anahtarları RSA-CRT ve AES-NI algoritmalarını kullanarak yeniden oluşturmak mümkündür. Bu teknik aynı zamanda, örneğin tahsis edilen arabelleğin sınırı dışındaki bir alana erişimi düzenlemek için, bellekle çalışırken güvenlik açıklarını tetiklemek üzere başlangıçta doğru algoritmalarda hatalar oluşturmak için de kullanılabilir.
Saldırı gerçekleştirmek için prototip kodu yayınlanan GitHub'da

Yöntemin özü, SGX'te hesaplamalar sırasında, yerleşim bölgesinde şifreleme ve bellek kimlik doğrulamasının kullanımının korumadığı beklenmedik veri bozulmalarının ortaya çıkması için koşullar yaratmaktır. Distorsiyonu ortaya çıkarmak için, frekans ve voltajı kontrol etmek için genellikle sistemin boşta kaldığı süre boyunca güç tüketimini azaltmak ve yoğun çalışma sırasında maksimum performansı etkinleştirmek için kullanılan standart yazılım arayüzlerini kullanmanın mümkün olduğu ortaya çıktı. Frekans ve voltaj özellikleri, yalıtılmış bir alanda bilgi işlemin etkisi de dahil olmak üzere tüm çipi kapsar.

Voltajı değiştirerek, şarjın CPU içindeki bir bellek hücresini yeniden oluşturmak için yeterli olmadığı ve değerinin değiştiği koşullar yaratabilirsiniz. Saldırıdan temel fark Sıra Çekiç RowHammer, komşu hücrelerden verileri döngüsel olarak okuyarak DRAM belleğindeki bireysel bitlerin içeriğini değiştirmenize izin verirken Plundervolt, veriler hesaplama için bellekten zaten yüklendiğinde CPU içindeki bitleri değiştirmenize izin verir. Bu özellik, bellekteki veriler için SGX'te kullanılan bütünlük kontrolü ve şifreleme mekanizmalarını atlamanıza olanak tanır, çünkü bellekteki değerler doğru kalır, ancak sonuç belleğe yazılmadan önce bunlarla yapılan işlemler sırasında bozulabilir.

Değiştirilen bu değer şifreleme işleminin çarpma işleminde kullanılırsa çıktı hatalı şifreli metinle reddedilir. Verilerini şifrelemek için SGX'teki bir işleyiciyle iletişim kurabilen bir saldırgan, hatalara neden olarak çıktı şifreli metnindeki değişikliklerle ilgili istatistikler toplayabilir ve birkaç dakika içinde bölgede depolanan anahtarın değerini geri yükleyebilir. Orijinal giriş metni ve doğru çıkış şifreli metni biliniyor, anahtar değişmiyor ve yanlış şifreli metnin çıkışı, bazı bitlerin ters değere bozulduğunu gösteriyor.

Çeşitli arızalar sırasında biriken doğru ve bozuk şifreli metinlerin değer çiftlerini diferansiyel arıza analizi (DFA, Diferansiyel Arıza Analizi) Olabilmek tahmin etmek AES simetrik şifreleme için kullanılan olası anahtarları belirleyin ve ardından farklı kümelerdeki anahtarların kesişimlerini analiz ederek istenen anahtarı belirleyin.

6'lı Intel Core CPU'lar da dahil olmak üzere çeşitli Intel işlemci modelleri sorundan etkileniyor
10. neslin yanı sıra Xeon E3'ün beşinci ve altıncı nesilleri, Intel Xeon Ölçeklenebilir'in birinci ve ikinci nesilleri, Xeon D,
Xeon W ve Xeon E.

SGX teknolojisinin (Yazılım Koruma Uzantıları) altıncı nesil Intel Core işlemcilerde (Skylake) ortaya çıktı ve sunar Kullanıcı düzeyindeki uygulamaların kapalı bellek alanlarını (içeriği çekirdek tarafından bile okunamayan veya değiştirilemeyen ve ring0, SMM ve VMM modlarında çalışan kodlar) ayırmasına olanak tanıyan bir dizi talimat. Geleneksel atlama işlevlerini ve kayıtlar ve yığınla yapılan manipülasyonları kullanarak kontrolü yerleşimdeki koda aktarmak imkansızdır; kontrolü yerleşime aktarmak için, yetki kontrolü gerçekleştiren özel olarak oluşturulmuş yeni bir talimat kullanılır. Bu durumda, bölgeye yerleştirilen kod, bölge içindeki işlevlere erişmek için klasik çağırma yöntemlerini ve harici işlevleri çağırmak için özel talimatları kullanabilir. Enclave bellek şifrelemesi, DRAM modülüne bağlanma gibi donanım saldırılarına karşı koruma sağlamak için kullanılır.

Kaynak: opennet.ru

Yorum ekle