Hassas verileri ayıklamak veya bir yerleşim bölgesinde kod yürütmek için Intel SGX'e saldırın

Çin Halk Kurtuluş Ordusu Savunma Bilimi ve Teknoloji Üniversitesi, Singapur Ulusal Üniversitesi ve ETH Zürih'ten araştırmacılar, yalıtılmış Intel SGX (Software Guard eXtensions) yerleşim bölgelerine karşı yeni bir saldırı yöntemi geliştirdiler. Saldırıya SmashEx adı verildi ve Intel SGX için çalışma zamanı bileşenlerinin çalışması sırasında istisnaların işlenmesindeki yeniden giriş sorunlarından kaynaklandı. Önerilen saldırı yöntemi, işletim sistemi üzerinde kontrol varsa, yerleşim bölgesinde bulunan gizli verileri belirlemeyi veya kişinin kodunun yerleşim bölgesinin belleğine kopyalanmasını ve yürütülmesini organize etmeyi mümkün kılar.

Açıklardan yararlanma prototipleri, Intel SGX SDK (CVE-2021-0186) ve Microsoft Open Enclave (CVE-2021-33767) tabanlı çalışma zamanı yerleşim bölgeleri için hazırlanmıştır. İlk durumda, HTTPS için web sunucusunda kullanılan RSA anahtarını çıkarma yeteneği gösterildi ve ikinci durumda, enclave içinde çalışan cURL yardımcı programı tarafından elde edilen içeriği belirlemek mümkün oldu. Güvenlik açığı, Intel SGX SDK 2.13 ve Open Enclave 0.17.1 sürümlerinde programlı olarak zaten düzeltilmiştir. Güvenlik açığı, Intel SGX SDK ve Microsoft Open Enclave'e ek olarak Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX ve Veracruz'da da görülüyor.

SGX (Yazılım Koruma Uzantıları) teknolojisinin altıncı nesil Intel Core işlemcilerde (Skylake) ortaya çıktığını ve kullanıcı düzeyindeki uygulamaların kapalı bellek alanları - içeriği bilgisayar tarafından bile okunamayan ve değiştirilemeyen yerleşim bölgeleri - tahsis etmesine izin veren bir dizi talimat sunduğunu hatırlayın. ring0, SMM ve VMM modlarında yürütülen çekirdek ve kod. Geleneksel atlama işlevleri ve yazmaçlar ve yığınla yapılan manipülasyonlar kullanılarak yerleşimdeki koda kontrolü aktarmak imkansızdır - özel olarak oluşturulmuş yeni talimatlar EENTER, EEXIT ve ERESUME, kontrolü yerleşime aktarmak için kullanılır ve yetkilendirme kontrolleri gerçekleştirir. Bu durumda, enklava yerleştirilen kod, enklav içindeki işlevleri çağırmak için klasik çağrı yöntemlerini ve harici işlevleri çağırmak için özel bir talimatı kullanabilir. Enclave bellek şifrelemesi, DRAM bağlantısı gibi donanım saldırılarına karşı koruma sağlamak için kullanılır.

Hassas verileri ayıklamak veya bir yerleşim bölgesinde kod yürütmek için Intel SGX'e saldırın

Sorun, SGX teknolojisinin, işletim sisteminin bir donanım istisnası atarak enklavın yürütülmesini kesmesine izin vermesidir ve enklavlar, bu tür istisnaları atomik olarak işlemek için ilkelleri uygun şekilde uygulamaz. İşletim sistemi çekirdeği ve normal uygulamalardan farklı olarak, yerleşim bölgeleri içindeki kodun, eşzamansız olarak ortaya çıkan özel durumların işlenmesi sırasında atomik eylemleri düzenlemek için ilkel öğelere erişimi yoktur. Belirtilen atomik ilkel öğeler olmadan, enklav herhangi bir zamanda, enklavda kritik bölümler yürütülürken ve güvenli olmayan bir durumdayken bile (örneğin, CPU kayıtları kaydedilmediğinde/geri yüklenmediğinde) kesintiye uğrayabilir ve yürütmeye geri dönebilir. .

Hassas verileri ayıklamak veya bir yerleşim bölgesinde kod yürütmek için Intel SGX'e saldırın

Normal çalışma için SGX teknolojisi, yapılandırılabilir donanım istisnalarıyla yerleşimin yürütülmesini kesmenize olanak tanır. Bu özellik, yerleşim çalışma zamanlarının yerleşim içi istisna işleme veya sinyal işleme uygulamasına izin verir, ancak yeniden giriş hatalarına da neden olabilir. SmashEx saldırısı, istisna işleyicinin yeniden çağrılma durumunun düzgün bir şekilde ele alınmamasına neden olan SDK'daki kusurların kullanılmasına dayanır. Güvenlik açığından yararlanmak için saldırganın enclave'in yürütülmesini kesintiye uğratabilmesi önemlidir, örn. sistem ortamının çalışmasını kontrol etmelidir.

Saldırgan, bir istisna attıktan sonra, giriş parametrelerini değiştirerek yürütme akışını engellemenin mümkün olduğu küçük bir zaman penceresi alır. Özellikle, sisteme erişiminiz varsa (enklavın dışındaki ortam), enklava girme talimatını (EENTER) yürüttükten hemen sonra yeni bir istisna oluşturabilirsiniz; Bu sayının CPU kayıtlarının durumunu sakladığı yerleşim bölgesi henüz tamamlanmadı.

Sistem daha sonra kontrolü enclave'e geri verebilir, ancak enclave yığını kesinti anında kurulmadığı için enclave, Geri Dönüşe Yönelik Programlamayı uygulamak için kullanılabilen sistem belleğinde bulunan yığınla yürütülür ( ROP) teknikleri, yönelimli programlama). ROP tekniğini kullanırken, saldırgan kodunu belleğe yerleştirmeye çalışmaz, ancak yüklü kitaplıklarda zaten mevcut olan makine yönergeleri üzerinde işlem yapar ve bir kontrol döndürme yönergesiyle biter (kural olarak, bunlar kitaplığın sonlarıdır). fonksiyonlar). İstismarın işleyişi, istenen işlevselliği elde etmek için benzer bloklara ("araçlar") bir çağrı zinciri oluşturmaya indirgenir.

Hassas verileri ayıklamak veya bir yerleşim bölgesinde kod yürütmek için Intel SGX'e saldırın
Hassas verileri ayıklamak veya bir yerleşim bölgesinde kod yürütmek için Intel SGX'e saldırın


Kaynak: opennet.ru

Yorum ekle