Beberapa hari yang lalu di sini, di blog kita berbicara tentang LVI, yang diklasifikasikan sebagai serangkaian serangan baru yang hanya memengaruhi CPU Intel dan ditandai dengan urutan serangan yang didasarkan pada manipulasi dengan struktur mikroarsitektur yang sama seperti pada serangan MDS, Spectre, dan Meltdown.
Perbedaan utama antara Saya menyerang merekas LVI dan MDS adalah bahwa MDS memanipulasi penentuan konten struktur mikroarsitektur yang tetap dalam cache setelah penanganan kesalahan spekulatif atau operasi pemuatan dan penyimpanan, sementara Serangan LVI memungkinkan penyerang diganti dalam struktur mikroarsitektur untuk mempengaruhi eksekusi spekulatif selanjutnya dari kode korban.
Meskipun Intel menyebutkan bahwa mereka sedang mengerjakan solusi Mengenai hal ini, mereka menyebutkan bahwa kegagalan ini memiliki kesulitan besar untuk dapat menjalankan proses dengan sukses, sehingga mereka percaya bahwa beberapa persyaratan harus dipenuhi agar dapat berhasil di dalamnya dan kegagalan inilah yang dikategorikan dengan sangat sulit.
Selain itu, Jembatan Zola (pengembang Google) sedang mengerjakan masalah dan baru-baru ini menawarkan tambalan untuk compiler LLVM dengan perlindungan SESES (Speculative Execution Side Effects Suppression) yang membantu memblokir serangan pada mesin eksekusi spekulatif tertentu yang memengaruhi CPU Intel seperti LVI.
Metode perlindungan yang diusulkan diimplementasikan pada tingkat penyusun dan didasarkan pada penambahan pernyataan LFENCE oleh kompilator saat membuat kode mesin, yang disisipkan sebelum setiap instruksi baca atau tulis dalam memori, serta sebelum instruksi cabang pertama dalam kelompok instruksi yang selesai di blok.
Mitigasi terdiri dari langkah penyusun yang menyisipkan LFENCE sebelumnya
setiap instruksi membaca memori, instruksi menulis memori dan yang pertama
pernyataan cabang pada sekelompok terminator di akhir a
blok dasar.
Instruksi LFENCE mengharapkan untuk mengkonfirmasi semua bacaan sebelumnya dari memori dan tidak mengizinkan pelaksanaan proaktif dari instruksi yang mengikuti LFENCE sebelum konfirmasi selesai.
Penggunaan LFENCE menyebabkan penurunan kinerja yang signifikan, Jadi, itu diusulkan untuk menggunakan perlindungan dalam kasus-kasus ekstrim untuk kode yang sangat penting. Selain perlindungan penuh, tambalan menawarkan tiga tanda yang secara selektif menonaktifkan tingkat perlindungan tertentu untuk mengurangi dampak negatif pada kinerja.
Dalam pengujian kami, penggunaan perlindungan SESES untuk paket BoringSSL menyebabkan penurunan 14 kali lipat dalam jumlah operasi yang dilakukan oleh pustaka per detik: kinerja versi pustaka yang dirakit dengan perlindungan ternyata hanya rata-rata kinerja 7.1% dari versi yang tidak dilindungi (diperpanjang tergantung pada pengujian dari 4% menjadi 23%)
Selain versi lengkap mitigasi, tambalan ini menerapkan tiga tanda untuk menonaktifkan bagian dari mitigasi.
Bendera ini dinonaktifkan secara default. Bendera tidak dimaksudkan untuk menghasilkan varian mitigasi yang aman. Indikator dimaksudkan untuk digunakan oleh pengguna yang ingin bereksperimen untuk meningkatkan kinerja
mitigasi.
Untuk perbandingan, mekanisme yang sebelumnya diusulkan untuk GNU Assembler, yang melakukan substitusi LFENCE setelah setiap operasi pemuatan dari memori dan sebelum beberapa instruksi percabangan, menunjukkan penurunan kinerja kurang lebih 5 kali (22% dari kode tanpa perlindungan).
Metode perlindungan juga telah diusulkan dan diimplementasikan oleh para insinyur Intel, tetapi hasil tes kinerja belum dirilis. Awalnya, peneliti yang mendeteksi serangan LVI memperkirakan penurunan kinerja 2-19 kali lipat saat menerapkan perlindungan penuh.
Terakhir, jika Anda ingin tahu lebih banyak tentang itu, Anda dapat memeriksa detailnya Di tautan berikut.