Zen 1 hingga Zen 4 sekarang terbuka untuk memasukkan mikrokode apa pun yang Anda inginkan
Tim peneliti Google yang bekerja sama dengan AMD baru-baru ini menemukan eksploitasi CPU utama pada prosesor berbasis Zen. Eksploitasi tersebut memungkinkan siapa pun dengan hak istimewa admin lokal untuk menulis dan mengirim pembaruan mikrokode khusus ke CPU yang terpengaruh.
Tim Google yang sama telah merilis penjelasan lengkap tentang eksploitasi tersebut, termasuk cara menulis mikrokode Anda sendiri. Siapa pun kini dapat melakukan jailbreak pada CPU AMD mereka sendiri secara efektif.
Eksploitasi tersebut memengaruhi semua CPU AMD yang menggunakan arsitektur Zen 1 hingga Zen 4. AMD merilis patch BIOS yang memasang eksploitasi tersebut segera setelah ditemukan, tetapi semua CPU di atas dengan patch BIOS sebelum 2024-12-17 akan rentan terhadap eksploitasi tersebut.
Meskipun pelaku jahat yang ingin menyalahgunakan kerentanan ini memerlukan akses tingkat tinggi ke sistem untuk mengeksploitasinya, mereka yang terkait harus memperbarui sistem mereka atau organisasi mereka ke pembaruan BIOS terbaru.
You can now jailbreak your AMD CPU! 🔥We've just released a full microcode toolchain, with source code and tutorials. https://t.co/4NYerRuFo1
— Tavis Ormandy (@taviso) March 5, 2025
Kerentanan tersebut didasarkan pada mikrokode, instruksi tingkat rendah yang menentukan bagaimana CPU melakukan kalkulasi. AMD dan Intel telah membangun set instruksi RISC kustom mereka sendiri (mirip dengan ISA alternatif seperti RISC-V dan ARM), yang kemudian secara internal berkontribusi pada set instruksi yang kompleks; dalam kasus AMD dan Intel, x86.
Kedua perusahaan membuat mikrokode kustom mereka secara khusus untuk arsitektur CPU mereka dan memiliki sistem bawaan untuk mendorong pembaruan mikrokode saat runtime jika kerentanan ditemukan kemudian. Alternatifnya adalah mengunci mikrokode secara keras saat fabrikasi, mendesain ulang chip dari awal, dan mengeluarkan penarikan kembali jika kerentanan yang cukup parah ditemukan.
Kerentanan AMD, bernama “EntrySign”, memungkinkan pengguna untuk mengirim mikrokode kustom ke CPU Zen 1 hingga Zen 4 mana pun, mengubah cara prosesor berjalan dan memungkinkan pengguna untuk melakukan apa saja mulai dari mengakses buffer CPU internal, memperkuat atau melemahkan keamanan untuk VM, dan banyak lagi.
Ketika bug tersebut pertama kali terungkap, buletin AMD berfokus pada CPU kelas server EPYC dan bagaimana pelaku kejahatan dapat membuat tautan aman ke PC klien jarak jauh yang mengakses server yang lebih besar kehilangan perlindungan berbasis SEV mereka. Sekarang, jelas bahwa eksploitasi mikrokode menyebar ke lebih banyak CPU daripada hanya EPYC dan bahwa kemungkinannya meluas jauh melampaui sekadar membuat tautan aman menjadi tidak aman.
Insinyur Google Tavis Ormandy dengan yakin menyatakan bahwa kerentanan tersebut memungkinkan siapa pun untuk “membobol CPU AMD Anda” dalam sebuah posting X yang membagikan uraian teknisnya.
Pembaruan mikrokode diperiksa ulang terhadap serangkaian string dan kunci, yang ditandatangani oleh AMD, dan dikonfirmasi terhadap kunci publik yang dikodekan secara permanen ke dalam CPU itu sendiri.
Eksploitasi EntrySign berfungsi karena AMD menggunakan fungsi AES-CMAC (kode autentikasi pesan) sebagai fungsi hash kriptografi.
CMAC yang digunakan dengan cara yang tidak sesuai spesifikasi ini memungkinkan para peneliti Google untuk merekayasa balik kunci keamanan, mencegah pengguna akhir untuk mendorong pembaruan mikrokode yang tidak ditandatangani ke CPU (sebagian besar dibantu oleh AMD yang menggunakan kembali kunci contoh NIST yang dapat diakses publik sebagai kunci keamanannya).
Tim keamanan Bughunters Google menerbitkan garis besar teknis lengkap tentang kerentanan dan jalur yang mereka ambil untuk mengeksploitasinya di blog Google.
Mereka yang memiliki CPU AMD yang tidak ditambal dari Zen 1 hingga Zen 4 dapat menggunakan perangkat Google untuk melakukan jailbreak pada prosesor itu sendiri dan berbagi temuan dan kasus penggunaan mereka dengan tim peneliti. Untungnya, pembaruan mikrokode tidak bertahan melalui boot ulang, jadi eksperimen tersebut sebagian besar tidak berbahaya.