Zenbleed: Semua yang perlu Anda ketahui tentang bug keamanan AMD ini

click fraud protection

Yang terbaru dari serangkaian panjang bug keamanan untuk CPU, Zenbleed adalah satu lagi hal yang perlu ditambal. Inilah yang perlu Anda ketahui.

Setelah eksploitasi CPU Spectre dan Meltdown dipublikasikan pada tahun 2018, dunia komputasi menjadi cukup waspada tentang menemukan bug keamanan dan celah pada prosesor, dan dalam lima tahun terakhir, para peneliti telah menemukan banyak sekali. Pada tanggal 24 Juli, eksploitasi lainnya diungkapkan kepada publik setelah pertama kali dilaporkan pada bulan Mei. Kali ini, ini khusus untuk prosesor AMD yang dibangun pada arsitektur Zen 2, dan dijuluki dengan istilah "Zenbleed". Inilah semua yang perlu Anda ketahui tentang Zenbleed dan apa artinya bagi dunia.

Bagaimana cara kerja Zenbleed?

Zenbleed sangat mirip dengan bug keamanan berbasis perangkat keras lainnya seperti Spectre karena ia mengeksploitasi kemampuan spekulatif CPU. Untuk meningkatkan kinerja, CPU berspekulasi atau memprediksi hal berikutnya yang perlu mereka lakukan, dan sejak Spectre pertama kali diungkapkan, dunia telah belajar bahwa spekulasi bisa sangat tidak aman jika dilakukan. secara tidak benar.

Sumber: Tavis Ormandy

Register dalam CPU dapat menyimpan sejumlah kecil data, biasanya berupa instruksi, alamat penyimpanan, atau jenis data kecil lainnya. Register XMM dalam arsitektur x86_64 (jadi, prosesor Zen 2 mana pun yang terpengaruh) hanya dapat digunakan untuk membuat penghitungan pada data, bukan menangani memori. Ini diperluas hingga 256 bit pada register YMM, dan 512 bit pada register ZMM. Dalam hal ini, XMM mengacu pada 128 bit terbawah total 512 bit register ZMM.

Register ini sangat berguna untuk banyak hal berbeda, termasuk fungsi standar C. Kerentanan tersebut menyalahgunakan eksekusi spekulatif dan kesalahan prediksi cabang untuk mengeluarkan sebagian data acak dari memori, namun data tersebut dapat berasal dari apa pun. Fungsi pustaka C standar seperti strlen, yang mengukur panjang string, dapat menggunakan register ini untuk memindahkan data ada di mana-mana, dan mungkin saja, secara kebetulan, kata sandi yang Anda gunakan sayangnya termasuk dalam salah satu dari ini register.

Prediksi cabang dan eksekusi spekulatif secara luas merujuk pada saat komputer Anda melakukan operasi yang belum diperlukan namun kemungkinan akan diperlukan pada siklus berikutnya. Hal ini sering dilakukan ketika sistem Anda memiliki sumber daya gratis, karena ini mempercepat pemrosesan keseluruhan ketika instruksi atau data belum siap untuk CPU. Jika pekerjaan yang dilakukan tidak diperlukan, biasanya pekerjaan tersebut akan dibuang dan prosesor dapat melompat kembali ke tempat yang diperlukan untuk menjalankan instruksi berikutnya yang benar. Jika hal ini terjadi, ini disebut kesalahan prediksi cabang.

Masalah yang muncul adalah pada instruksi vzeroupper, yang menghilangkan bit pada posisi 128 dan lebih tinggi dari register YMM dan ZMM. Hal ini dilakukan terutama saat melakukan transisi antara AVX dan kode SSE lama, karena hal ini menghilangkan kinerja hukuman yang disebabkan oleh ketergantungan palsu sekaligus menghindari efek yang mirip dengan promosi bilangan bulat C.

Jika prosesor secara spekulatif menjalankan instruksi vzeroupper, tidak ada rollback yang tepat. Namun, prosesor Ryzen yang terkena dampak dapat dipaksa untuk pulih, meskipun hal tersebut salah. Setelah berada dalam keadaan ini, program yang sedang dijalankan kemudian dapat memata-matai register tersebut secara real time, melihat data yang mengalir ke seluruh sistem pada waktu tertentu.

CPU apa saja yang terpengaruh oleh Zenbleed, dan kapan patch akan tersedia?

Seperti yang disebutkan sebelumnya, hanya CPU AMD berbasis arsitektur Zen 2 yang diketahui rentan terhadap bug keamanan Zenbleed, namun arsitektur Zen 2 telah mendukung CPU dalam tiga seri, sehingga sulit untuk mengetahui CPU mana yang rentan dan mana tidak. Berikut tabel yang akan memperjelas semuanya:

CPU yang terkena dampak

Seri Ryzen 3000

Semua kecuali APU (mis. Ryzen 3 3200G)

Roma Epik

Semua

Seri Ryzen 4000

Semua

Seri Ryzen 5000

Hanya 5300U, 5500U, dan 5700U

Seri Ryzen 7000

Hanya 7020 APU (misal: Ryzen 3 7320U)

Ini adalah jumlah prosesor AMD yang cukup besar, dan ini hanyalah prosesor yang telah dikonfirmasi sejauh ini. Zen 2 juga digunakan di APU yang menggerakkan Steam Deck, Xbox Series S dan X, serta PS5. Kami belum mengetahui apakah CPU-CPU ini juga terkena dampaknya, namun dilihat dari cara kerja eksploitasi ini, saya akan terkejut jika mereka tidak juga terkena dampaknya. Tampaknya AMD tidak mungkin menambalnya di Xbox dan PS5 karena chip seri 7020, yang lebih baru, juga terpengaruh.

Pada saat penulisan, mikrokode telah dikirimkan ke kernel Linux yang akan menambal kerentanan ini, dan sistem operasi atau BIOS Anda mungkin sudah memiliki pembaruan yang memperbaiki masalah ini.

Apa artinya ini bagi komputer yang menggunakan CPU yang rentan?

Ini adalah hal yang sulit untuk dijawab karena tidak semua komputer sama. Bagi orang awam yang baru menggunakan desktop dan laptop gaming, Anda mungkin tidak perlu terlalu khawatir. Ini adalah eksploitasi yang cukup canggih dan meskipun sekarang sudah menjadi rahasia umum, belum ada contoh penyerang yang menggunakan Zenbleed untuk meretas apa pun.

Namun, risikonya jauh lebih tinggi bagi pusat data dan orang-orang penting yang menangani informasi sensitif di komputer mereka sendiri. Ada alasan mengapa AMD sangat jelas bahwa Epyc Rome telah ditambal sebelum kerentanannya dipublikasikan: sangat sensitif informasi sedang ditangani oleh CPU Epyc, dan akan menjadi bencana jika ada CPU yang memberi daya pada server skala besar berhasil terserang. Kernel Linux 6.4.6 sudah dirilis dan memperbaiki kerentanan ini dengan memasukkan patch mikrokode resmi dari AMD. Tampaknya Microsoft akan memasukkan sesuatu yang serupa ke dalam Windows.

Yang mengkhawatirkan, Patch BIOS resmi AMD mungkin tidak diluncurkan selama beberapa bulan, dalam hal ini, ada "sedikit ayam" yang dapat Anda atur jika Anda menggunakan mesin Linux atau FreeBSD. Di mesin Linux, Anda dapat menggunakan msr-tools dan menjalankan perintah berikut.

wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

Di FreeBSD, Anda juga dapat menggunakan yang berikut ini.

cpucontrol(8)

Menonaktifkan SMT tidak cukup untuk memitigasi kerentanan.

Satu hal yang membuat Zenbleed sangat buruk adalah Zen 2 adalah salah satu arsitektur CPU AMD yang paling populer. Hal ini mengawali kembalinya AMD pada tahun 2019 dan 2020, dan banyak orang, perusahaan, dan organisasi masih menggunakan komputer dengan prosesor Zen 2 pada tahun 2023, khususnya Epyc Rome. CPU. Hal ini tidak seburuk Spectre (yang mempengaruhi hampir semua CPU sebelum tahun 2019) dan Meltdown (yang mempengaruhi hampir semua CPU Intel sebelum tahun 2019), namun masih cukup buruk. tersebar luas.

Patch keamanan untuk kerentanan seperti ini juga sering mengakibatkan penalti kinerja, namun AMD memberitahu Perangkat Keras Tom bahwa penalti ini akan bergantung pada CPU dan beban kerja. Spekulasi dan prediksi cukup penting bagi kinerja CPU, jadi tidak jelas apakah perbaikan potensial akan menyebabkan penurunan kinerja secara signifikan.