AMD telah mengesahkan potensi kerentanan CPU AMD Zen 3 kepada serangan Spectre-STL

AMD telah menerbitkan laporan yang menganalisis keselamatan teknologi pengoptimuman PSF (Prdictive Store Forwarding) yang dilaksanakan dalam pemproses siri Zen 3. Kajian secara teorinya mengesahkan kebolehgunaan kaedah serangan Spectre-STL (Spectre-v4), yang dikenal pasti pada Mei 2018, untuk Teknologi PSF, tetapi dalam praktiknya, tiada templat kod yang mampu membawa kepada serangan masih ditemui dan bahaya keseluruhan dinilai sebagai tidak penting.

Mari kita ingat bahawa serangan Spectre-v4 (Speculative Store Bypass) adalah berdasarkan memulihkan data yang telah diselesaikan dalam cache pemproses selepas membuang hasil pelaksanaan operasi spekulatif apabila memproses operasi tulis dan baca berselang-seli menggunakan pengalamatan tidak langsung. Apabila operasi baca mengikuti operasi tulis (cth., mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), offset alamat baca mungkin sudah diketahui kerana operasi serupa dilakukan (operasi baca adalah dilakukan dengan lebih kerap dan bacaan boleh dilakukan daripada cache) dan pemproses secara spekulatif boleh melakukan bacaan sebelum menulis tanpa menunggu untuk mengimbangi acuan tulis untuk dikira.

Ciri ini membenarkan arahan baca untuk mengakses nilai lama di beberapa alamat sementara operasi kedai belum selesai. Jika terdapat ralat ramalan, operasi spekulatif yang tidak berjaya akan dibuang, tetapi kesan pelaksanaannya akan kekal dalam cache pemproses dan boleh diambil dengan salah satu kaedah untuk menentukan kandungan cache berdasarkan analisis perubahan dalam akses masa untuk data cache dan uncache.

Ditambah pada pemproses AMD Zen 3, PSF mengoptimumkan STLF (Store-To-Load-Forwarding), yang melaksanakan operasi baca secara spekulatif dengan meramalkan hubungan antara operasi baca dan tulis. Apabila menggunakan STLF klasik, pemproses melakukan operasi "beban" pada data yang dimajukan terus daripada arahan "kedai" sebelumnya, tanpa menunggu hasilnya benar-benar ditulis ke ingatan, tetapi memastikan bahawa alamat yang digunakan dalam "beban" dan arahan "kedai" sepadan. Pengoptimuman PSF menjadikan pemeriksaan alamat spekulatif dan melakukan operasi "beban" sebelum maklumat alamat telah dikira jika pasangan stor/muat yang memanipulasi satu alamat sebelum ini telah dilaksanakan. Jika ramalan gagal, keadaan akan digulung semula, tetapi data kekal dalam cache.

Serangan ke atas PSF hanya boleh dilakukan dalam rangka satu tahap keistimewaan, hanya meliputi konteks proses semasa dan disekat oleh kaedah pengasingan ruang alamat atau mekanisme kotak pasir perkakasan. Dalam kes ini, kaedah kotak pasir perisian dalam proses berpotensi terjejas oleh masalah tersebut. Serangan itu menimbulkan ancaman kepada sistem seperti penyemak imbas, mesin maya pelaksanaan kod dan JIT yang melaksanakan kod pihak ketiga dalam satu proses (serangan itu boleh membenarkan kod kotak pasir yang tidak dipercayai untuk mendapatkan akses kepada data proses lain).

AMD telah menyediakan beberapa kaedah untuk melumpuhkan PSF sepenuhnya atau secara terpilih, tetapi memandangkan risiko yang boleh diabaikan untuk kebanyakan aplikasi, telah mengesyorkan agar pengoptimuman ini tidak dilumpuhkan secara lalai. Untuk melindungi secara terpilih proses yang mengasingkan proses yang melaksanakan kod yang tidak boleh dipercayai, adalah dicadangkan untuk melumpuhkan PSF dengan menetapkan bit MSR "SSBD" dan "PSFD", termasuk untuk utas individu. Patch telah disediakan untuk kernel Linux dengan pelaksanaan pilihan baris arahan "psfd" dan "nopsfd" yang mengawal cara PSF dihidupkan dan dimatikan.

Sumber: opennet.ru

Tambah komen