“GoFetch” adı verilen yeni bir yan kanal saldırısı, Apple M1, M2 ve M3 işlemcilerini etkiliyor ve CPU'nun önbelleğindeki verilerden gizli kriptografik anahtarların çalınması için kullanılabiliyor.
Saldırı, modern Apple CPU'larda bulunan veri belleğine bağımlı ön getiricileri (DMP'ler) kullanan sabit zamanlı şifreleme uygulamalarını hedefliyor. Bu, CPU'nun önbelleğinden OpenSSL Diffie-Hellman, Go RSA, CRYSTALS Kyber ve Dilithium dahil olmak üzere çeşitli algoritmalar için özel şifreleme anahtarlarını yeniden oluşturmasına olanak tanır.
GoFetch, bulgularını 5 Aralık 2023'te Apple'a bildiren ABD'deki çeşitli üniversitelerden yedi araştırmacıdan oluşan bir ekip tarafından geliştirildi.
Ancak bu donanım tabanlı bir güvenlik açığı olduğundan, etkilenen CPU'larda bunu düzeltmenin bir yolu yoktur. Yazılım düzeltmeleri kullanarak kusurları azaltmak mümkün olsa da bu, bu CPU'ların şifreleme işlevlerinde performansın düşmesine neden olacaktır.
GoFetch ayrıntıları
GoFetch saldırısı, kod çalıştırırken bilgisayar performansını artırmak için tasarlanmış bir CPU özelliği olan veri belleğine bağımlı ön getiricileri hedef alır.
Bir ön getirici, veri alırken belleğe önceki erişimlerle eğitilir ve bilgisayarın bir sonraki adımda hangi verilere ihtiyaç duyacağını tahmin etmesine olanak tanır. Bu veriler daha sonra belleğin daha yavaş kısımlarından CPU önbelleği gibi daha hızlı bellek bölgelerine önceden getirilir.
Tahmin doğruysa, veriler artık hızlı bir şekilde elde edilebilir ve bilgisayarın performansı artar. Tahmin yanlışsa, CPU her zamanki gibi doğru verileri ister.
GoFetch saldırısı, veri belleğine bağımlı ön getirici (DMP) adı verilen daha yeni bir ön getiriciye odaklanır. Bu önceden getirici aynı zamanda önceki bellek erişimi konusunda da eğitilebilir, ancak aynı zamanda önbelleğe neyin önceden getirilmesi gerektiğini belirlemek için bellekteki veri değerlerini de inceleyebilir.
DMP, Apple silikon çiplerinde ve Intel'in 13. Nesil Raptor Lake CPU'larında mevcuttur. Ancak araştırmacılar Intel'in uygulamasının daha kısıtlayıcı olduğunu ve saldırıyı önlediğini söylüyor.
Saldırı, hassas veri sızıntılarını önlemek için bir güvenlik önlemi olan, girişten (sabit süre) bağımsız olarak yürütülmesi aynı miktarda zaman alan kriptografik uygulamalara odaklanıyor.
Özellikle araştırmacılar, Apple'ın DMP sistemini uygulamasında sürekli iyi uygulamaları ihlal eden bir kusur buldular.
Saldırının özeti şu şekilde: “Apple m serisi CPU'larda DMP'ler üzerinde tersine mühendislik yaptık ve DMP'nin, bir işaretçiye “benzeyen” bellekten yüklenen verileri etkinleştirdiğini (ve referansı kaldırmaya çalıştığını) gördük.”
“Bu, veri ile bellek erişim modellerinin karıştırılmasını yasaklayan sabit zamanlı programlama paradigmasının gerekliliğini açıkça ihlal ediyor.”
Saldırganlar, önceden getiricinin verileri referanstan kaldırmasına neden olan özel girdiler oluşturabilir; bu girdiler, gizli anahtarın belirli bitleri doğru tahmin edilirse işaretçiler olarak görünecektir.
Daha sonra, yavaş yavaş gizli anahtarın parçalarını çıkararak DMP'nin etkinleştirilip etkinleştirilmediğini gözlemlerler. Sürecin yeterince tekrarlanmasıyla gizli kriptografik anahtarın tamamı yeniden oluşturulabilir.
Araştırmacılar, M1 işlemcilerin bu şemaya duyarlı olduğunu doğruladılar ve M2 ile M3'ün benzer önceden getirme davranışına sahip olduğu göz önüne alındığında, onların da muhtemelen savunmasız olduğu ortaya çıktı.
GoFetch saldırısıyla ilgili daha fazla ayrıntı, araştırmacılar tarafından yayınlanan teknik makalede bulunabilir; kavram kanıtlama istismarı daha sonraki bir tarihte yayınlanacaktır.
Apple sahipleri ne yapmalı?
Ne yazık ki zayıflık, doğrudan Apple CPU'larda yerleşik olarak bulunan veri belleğine bağımlı önceden getirici uygulamasının bir parçası olduğundan, saldırıyı bir donanım düzeltmesiyle hafifletmenin bir yolu yoktur.
Araştırmacılar, GoFetch'in güvendiği önceden getirme davranışını ortadan kaldırarak M3 gibi bazı CPU'larda DMP'yi devre dışı bırakmanın mümkün olduğunu söylüyor. Ancak M1 ve M2'de bu mümkün değildir.
Geliştiriciler için diğer savunma önlemleri arasında, saldırganın DMP düzeyindeki girdisinin sonuçlarını gizleyen girdi körleme ve DMP aktivasyon maskeleme yer alır.
Apple, bir yazılım yaması olarak macOS'ta azaltımlar sunabilir ancak bu, yan kanal saldırılarına yönelik önceki yazılım düzeltmelerinde gördüğümüz gibi performans düşüşlerine neden olabilir.
Bir Apple kullanıcısı olarak güvenli bilgisayar kullanma alışkanlıkları edinmekten başka yapabileceğiniz pek bir şey yok. Bu, işletim sisteminizi ve yazılımınızı düzenli olarak güncellemeniz ve kötü amaçlı yazılım bulaşmasını önlemek için yalnızca resmi kanallardan ve saygın kaynaklardan yazılım yüklemeniz anlamına gelir.
GoFetch saldırısı, istismar için fiziksel erişim gerektirmez; dolayısıyla saldırgan, örneğin kötü amaçlı yazılım bulaşması yoluyla hedef makinede kod çalıştırabilirse, uzaktan yürütülebilir.
BleepingComputer, GoFetch tehlikesi ve güvenlik güncellemeleri sunmayı planlayıp planlamadığı hakkında yorum istemek için Apple ile temasa geçti, ancak bir sözcü, bu tehlikeyi hafifletmeyi özetleyen bir geliştirici sayfasını paylaşmakla sınırlıydı.