Kerentanan “GoFetch” Baru di Chip Apple Seri M Membocorkan Kunci Enkripsi Rahasia
Kelemahan keamanan baru yang ditemukan pada chip Apple seri M dapat dieksploitasi untuk mengekstrak kunci rahasia yang digunakan selama operasi kriptografi.
Dijuluki GoFetch , kerentanan ini berkaitan dengan serangan saluran samping mikroarsitektur yang memanfaatkan fitur yang dikenal sebagai data memory-dependent prefetcher (DMP) untuk menargetkan implementasi kriptografi waktu-konstan dan menangkap data sensitif dari cache CPU. Apple baru mengetahui temuan tersebut pada Desember 2023.
Prefetcher adalah teknik pengoptimalan perangkat keras yang memprediksi alamat memori apa yang akan diakses oleh program yang sedang berjalan dalam waktu dekat dan mengambil data ke dalam cache dari memori utama. Tujuan dari pendekatan ini adalah untuk mengurangi latensi akses memori program.
DMP adalah jenis prefetcher yang memperhitungkan isi memori berdasarkan pola akses yang diamati sebelumnya saat menentukan apa yang akan diambil terlebih dahulu. Perilaku ini membuatnya rentan terhadap serangan berbasis cache yang mengelabui prefetcher agar mengungkapkan konten yang terkait dengan proses korban yang seharusnya tidak dapat diakses.
GoFetch juga membangun fondasi serangan mikroarsitektur lain yang disebut Augury yang menggunakan DMP untuk membocorkan data secara spekulatif.
“DMP mengaktifkan (dan mencoba melakukan dereferensi) data yang dimuat dari memori yang ‘tampak seperti’ sebuah penunjuk,” sebuah tim yang terdiri dari tujuh akademisi dari University of Illinois Urbana-Champaign, University of Texas, Georgia Institute of Technology, University of California, Berkeley , Universitas Washington, dan Universitas Carnegie Mellon berkata .
“Ini secara eksplisit melanggar persyaratan paradigma pemrograman waktu konstan, yang melarang pencampuran pola akses data dan memori.”
Seperti serangan serupa lainnya, pengaturannya mengharuskan korban dan penyerang memiliki dua proses berbeda yang berlokasi di mesin yang sama dan di cluster CPU yang sama. Secara khusus, pelaku ancaman dapat memikat target untuk mengunduh aplikasi berbahaya yang mengeksploitasi GoFetch.
Terlebih lagi, meskipun penyerang dan korban tidak berbagi memori, penyerang dapat memantau saluran samping mikroarsitektur apa pun yang tersedia, misalnya latensi cache.
Singkatnya, GoFetch menunjukkan bahwa “bahkan jika korban memisahkan data dari alamat dengan benar dengan mengikuti paradigma waktu konstan, DMP akan menghasilkan akses memori yang bergantung pada rahasia atas nama korban,” menjadikannya rentan terhadap serangan ekstraksi kunci.
Dengan kata lain, penyerang dapat menggunakan prefetcher untuk mempengaruhi data yang diambil sebelumnya, sehingga membuka pintu untuk mengakses data sensitif. Kerentanan ini mempunyai implikasi serius karena sepenuhnya menghilangkan perlindungan keamanan yang ditawarkan oleh pemrograman waktu-konstan terhadap serangan saluran samping waktu.
“GoFetch menunjukkan bahwa DMP secara signifikan lebih agresif dari perkiraan sebelumnya dan dengan demikian menimbulkan risiko keamanan yang jauh lebih besar,” kata para peneliti.
Sifat mendasar dari kelemahan ini berarti bahwa kelemahan tersebut tidak dapat diperbaiki pada CPU Apple yang ada, sehingga mengharuskan pengembang perpustakaan kriptografi mengambil langkah-langkah untuk mencegah kondisi yang memungkinkan GoFetch berhasil, sesuatu yang juga dapat menyebabkan penurunan kinerja. Pengguna, di sisi lain, didesak untuk selalu memperbarui sistem mereka.
Namun, pada chip Apple M3, mengaktifkan pengaturan waktu independen data (DIT) terbukti menonaktifkan DMP. Ini tidak mungkin dilakukan pada prosesor M1 dan M2.
“Silikon Apple menyediakan data-independent timing (DIT), di mana prosesor menyelesaikan instruksi tertentu dalam jumlah waktu yang konstan,” catatan Apple dalam dokumentasinya. “Dengan mengaktifkan DIT, prosesor menggunakan waktu yang lebih lama, dalam kasus terburuk, untuk menyelesaikan instruksi, apa pun data masukannya.”
Pembuat iPhone juga menekankan bahwa meskipun mengaktifkan DIT mencegah kebocoran berbasis waktu, pengembang disarankan untuk mematuhi “hindari cabang bersyarat dan lokasi akses memori berdasarkan nilai data rahasia” untuk secara efektif memblokir musuh agar tidak menyimpulkan rahasia dengan mengawasi keadaan mikroarsitektur prosesor.
Perkembangan ini terjadi ketika sekelompok peneliti lain dari Universitas Teknologi Graz di Austria dan Universitas Rennes di Perancis mendemonstrasikan serangan unit pemrosesan grafis (GPU) baru yang memengaruhi browser populer dan kartu grafis yang memanfaatkan kode JavaScript yang dibuat khusus di situs web untuk menyimpulkan informasi sensitif seperti kata sandi.
Teknik ini, yang tidak memerlukan interaksi pengguna, digambarkan sebagai serangan saluran samping cache GPU pertama dari dalam browser.
“Karena komputasi GPU juga dapat menawarkan keuntungan untuk komputasi dalam situs web, vendor browser memutuskan untuk mengekspos GPU ke JavaScript melalui API seperti WebGL dan standar WebGPU yang akan datang,” kata para peneliti .
“Meskipun ada pembatasan yang melekat pada lingkungan JavaScript dan WebGPU, kami membangun serangan primitif baru yang memungkinkan serangan saluran samping cache dengan efektivitas yang sebanding dengan serangan berbasis CPU tradisional.”
Pelaku ancaman dapat mempersenjatainya melalui serangan drive-by, yang memungkinkan ekstraksi kunci AES atau menambang mata uang kripto saat pengguna menjelajahi internet. Hal ini berdampak pada semua sistem operasi dan browser yang menerapkan standar WebGPU, serta berbagai perangkat GPU.
Sebagai tindakan pencegahan, para peneliti mengusulkan untuk memperlakukan akses ke kartu grafis sistem host melalui browser sebagai sumber daya sensitif, yang mengharuskan situs web untuk meminta izin pengguna (seperti dalam kasus kamera atau mikrofon) sebelum digunakan.