Retbleed: Mitigasi Pelacakan Kedalaman Panggilan Ditujukan Untuk Menghindari “Pertunjukan Horor Kinerja” IBRS

  • Post author:
  • Post category:Linux

Karena mitigasi keamanan “Retbleed” baru yang semakin merusak kinerja CPU untuk prosesor yang terpengaruh, para insinyur Intel telah meninjau kembali pekerjaan pada mitigasi pelacakan kedalaman panggilan sebagai alternatif mitigasi Spekulasi Terbatas Cabang Tidak Langsung (IBRS) untuk membantu menurunkan biaya overhead. Thomas Gleixner dari Linutronix, yang diakuisisi Intel awal tahun ini, dan insinyur lama Intel Peter Zijlstra telah mengerjakan “retbleed=stuff” sebagai pendekatan mitigasi baru untuk Retbleed dengan pelacakan kedalaman panggilan. Pendekatan mitigasi baru ini bertujuan untuk memiliki overhead yang lebih rendah daripada penggunaan IBRS. Gleixner meringkas situasi akhir pekan ini di milis kernel: Kembali ke masa lalu v2 hari yang baik (2018), kami memutuskan untuk tidak menggunakan IBRS. Kalau dipikir-pikir ini mungkin keputusan yang salah karena tidak memaksa orang untuk datang dengan pendekatan alternatif. Itu sudah dibahas saat itu untuk mencoba akuntansi kedalaman panggilan berbasis perangkat lunak dan isian RSB pada underflow untuk sistem Intel SKL[-X] untuk menghindari overhead gila IBRS. Ini telah dicoba pada tahun 2018 dan ditolak karena overhead besar dan kekurangan lain dari pendekatan untuk memasukkan akuntansi ke dalam setiap prolog fungsi: 1) Peningkatan ukuran teks yang ditimbulkan pada semua orang. Sementara CPU bagus dalam mengabaikan NOP, mereka masih mencemari I-cache. 2) Itu menghasilkan akuntansi yang berlebihan yang dapat dieksploitasi. Menonaktifkan panggilan ekor juga bukan pilihan dan menambahkan bantalan 10 byte di depan setiap panggilan langsung bahkan lebih buruk dalam hal ukuran teks dan dampak I-cache. Kami juga dapat menambal panggilan melewati akuntansi di prolog fungsi tetapi itu menjadi mimpi buruk vs. ENDBR. Karena IBRS adalah pertunjukan horor kinerja, Peter Zijstra dan saya meninjau kembali pendekatan pelacakan kedalaman panggilan dan menerapkannya dengan cara yang diharapkan lebih cocok dan menghindari kerugian dari upaya aslinya. Kami berdua secara tidak mengejutkan membenci hasilnya dengan penuh semangat… … Pelacakan kedalaman panggilan dirancang untuk mematahkan jalur spekulasi ini dengan memasukkan panggilan perangkap spekulasi ke dalam RSB yang tidak pernah mendapatkan pengembalian yang sesuai dieksekusi. Ini menghentikan jalur prediksi hingga di-reset, Asumsinya adalah bahwa isian pada pengembalian ke-12 sudah cukup untuk mematahkan spekulasi sebelum menyentuh underflow dan mundur ke prediktor lainnya. Pengujian mengkonfirmasi bahwa itu berfungsi. Johannes, salah satu peneliti retbleed. mencoba menyerang pendekatan ini dan menegaskan bahwa itu membawa sinyal ke rasio kebisingan ke tingkat bola kristal. Jelas tidak ada bukti ilmiah bahwa ini akan menahan kemajuan penelitian di masa depan, tetapi yang bisa kita lakukan sekarang adalah berspekulasi tentang itu. Tolok ukur mereka telah menunjukkan bahwa mitigasi pelacakan kedalaman panggilan ini lebih rendah daripada mengambil rute IBRS saat ini. Gleixner berkomentar, “Jadi manfaatnya bervariasi tergantung pada skenario perangkat keras dan beban kerja. Setidaknya tidak lebih buruk daripada IBeeRS.”

Saat ini strategi mitigasi baru ini adalah satu set 38 patch yang sekarang keluar untuk ditinjau di milis. Dalam bentuk saat ini dengan tambalan ini, pendekatan pelacakan kedalaman panggilan diaktifkan menggunakan opsi kernel “retbleed=stuff”. 38 patch berjumlah hampir dua ribu baris kode kernel baru dalam menangani mimpi buruk keamanan ini.

Itulah berita seputar Retbleed: Mitigasi Pelacakan Kedalaman Panggilan Ditujukan Untuk Menghindari “Pertunjukan Horor Kinerja” IBRS, semoga bermanfaat. Disadur dari Phoronix.com.