Penyelidik keselamatan Google telah menemui kelemahan kritikal dalam sistem keselamatan mikrokod CPU AMD, membolehkan kawalan penuh terhadap tingkah laku pemproses. Pasukan ini telah melancarkan Zentool, utiliti yang membolehkan pengguna menganalisis, memanipulasi, dan menghasilkan tampalan mikrokod untuk pemproses AMD Zen.
Kelemahan ini berpunca daripada penggunaan kunci contoh standard dari dokumentasi AES-CMAC RFC dalam proses penandatanganan mikrokod AMD. Kesilapan keselamatan asas ini membolehkan penyelidik memintas mekanisme perlindungan AMD dan mencipta kemas kini mikrokod yang ditandatangani khas yang diterima oleh pemproses sebagai sah.
Kelemahan Keselamatan
Isu keselamatan ini menjejaskan pemproses AMD Zen1 hingga Zen4, dengan status kelemahan Zen5 masih dalam siasatan. Menurut komen daripada penyelidik, kesilapan kritikal AMD adalah menggunakan kunci contoh dari AES-CMAC RFC sebagai kunci penandatanganan sebenar mereka. Kecuaian ini pada dasarnya merosakkan keseluruhan model keselamatan yang melindungi mikrokod CPU.
Mana-mana enkripsi/tandatangan yang boleh dipecahkan dalam perisian pada perkakasan berpatutan adalah: ROSAK.
Kelemahan ini amat membimbangkan kerana pengubahsuaian mikrokod boleh memintas langkah-langkah keselamatan asas. Dengan akses kepada mikrokod, penyerang dengan keistimewaan kernel berpotensi mengakses memori fizikal secara langsung, memintas pemeriksaan keistimewaan, dan menjejaskan ciri-ciri keselamatan seperti AMD Secure Encrypted Virtualization (SEV).
Fakta Utama Tentang Kerentanan Mikrokod AMD
- Perkakasan Terjejas: Pemproses AMD Zen1 hingga Zen4
- Kerentanan: Penggunaan kunci contoh AES-CMAC RFC untuk penandatanganan mikrokod
- Alat Dikeluarkan: Zentool - Utiliti Manipulasi Mikrokod AMD Zen
- Mitigasi: AMD telah mengeluarkan pembetulan menggunakan fungsi hash selamat khas bersama dengan kemas kini AMD Secure Processor
- Pasukan Penyelidik: Pasukan Keselamatan Perkakasan Google (Josh Eads, Matteo Rizzo, Kristoffer Janke, Eduardo Vela Nava, Tavis Ormandy, Sophie Schmiege, dan lain-lain)
Keupayaan Zentool
Utiliti Zentool menyediakan keupayaan yang luas untuk manipulasi mikrokod. Pengguna boleh memeriksa pengepala mikrokod, mengubah suai nombor semakan, mengedit daftar padanan, dan bahkan menampal arahan individu. Alat ini termasuk penyahhimpun yang boleh menunjukkan operasi RISC dalaman (quads) yang membentuk mikrokod.
Satu ciri yang sangat berkuasa adalah keupayaan untuk menandatangani semula mikrokod yang diubah suai, yang mengimbangi perubahan dengan menjana tandatangan sah yang akan diterima oleh CPU. Ini membolehkan pengguna memuatkan tampalan mikrokod khas pada teras CPU tertentu.
Implikasi dan Mitigasi
AMD telah mengeluarkan pembaikan yang mengubah rutin pengesahan mikrokod untuk menggunakan fungsi cincang selamat yang khusus. Ini digandingkan dengan kemas kini AMD Secure Processor yang memastikan rutin pengesahan tampalan dikemas kini sebelum teras x86 boleh cuba memasang mikrokod yang diusik.
Pakar keselamatan dalam perbincangan menyatakan bahawa kesan kelemahan ini diperbesarkan oleh seni bina keselamatan perisian moden. Walaupun CPU tidak mempunyai memori tidak meruap (mikrokod diset semula apabila kuasa dikitar), keupayaan untuk menjejaskan kilat sistem boleh membolehkan kompromi kekal dan tidak boleh diterbalikkan pada sistem yang terjejas.
Para penyelidik merancang untuk memberikan butiran tambahan dalam bulan-bulan akan datang tentang bagaimana mereka melakukan kejuruteraan terbalik proses kemas kini mikrokod, yang membawa kepada pengenalpastian algoritma pengesahan.
Pertimbangan Etika dan Undang-undang
Pelancaran alat sedemikian telah mencetuskan perbahasan mengenai etika dan kesahan penerbitan alat kelemahan keselamatan. Sesetengah pengulas membuat perbandingan dengan alat jailbreaking konsol, yang sering menghadapi tindakan DMCA, sementara yang lain mempertahankan nilai penyelidikan akademik dan keselamatan kerja sedemikian.
Penyelidikan akademik terdahulu mengenai mikrokod CPU AMD K8 dan K10 disebut sebagai preseden, di mana penyelidik memecahkan enkripsi (digambarkan lebih seperti pengacauan) dan melancarkan alat tanpa tindakan undang-undang daripada AMD.
Pasukan Keselamatan Perkakasan Google di sebalik kerja ini termasuk Josh Eads, Matteo Rizzo, Kristoffer Janke, Eduardo Vela Nava, Tavis Ormandy, Sophie Schmiege, dan lain-lain. Kerja mereka dibina berdasarkan penyelidikan sebelumnya, termasuk kertas Reverse Engineering x86 Processor Microcode oleh Koppe et al. dari Ruhr-Universitat Bochum.