Serangan baru terhadap struktur mikroarsitektur prosesor Intel dan AMD

Sekelompok peneliti dari Universitas Virginia dan Universitas California mempresentasikan jenis serangan baru terhadap struktur mikroarsitektur prosesor Intel dan AMD, yang diidentifikasi selama rekayasa balik kemampuan CPU yang tidak terdokumentasi. Metode serangan yang diusulkan melibatkan penggunaan cache operasi mikro perantara dalam prosesor, yang dapat digunakan untuk mengambil informasi yang dikumpulkan selama eksekusi instruksi spekulatif.

Untuk tujuan pengoptimalan, prosesor mulai menjalankan beberapa instruksi dalam mode spekulatif, tanpa menunggu penyelesaian perhitungan sebelumnya, dan jika kemudian menentukan bahwa prediksi tersebut tidak dapat dibenarkan, prosesor akan mengembalikan operasi ke keadaan semula, tetapi data diproses selama eksekusi spekulatif disimpan dalam cache, yang isinya dapat ditentukan.

Perlu dicatat bahwa metode baru ini secara signifikan mengungguli serangan Spectre v1, membuat serangan sulit dideteksi dan tidak diblokir oleh metode perlindungan yang ada terhadap serangan saluran samping yang dirancang untuk memblokir kerentanan yang disebabkan oleh eksekusi instruksi yang spekulatif (misalnya, penggunaan instruksi LFENCE memblokir kebocoran pada tahap terakhir eksekusi spekulatif, tetapi tidak melindungi terhadap kebocoran melalui struktur mikroarsitektur).

Metode tersebut mempengaruhi model prosesor Intel dan AMD yang dirilis sejak 2011, termasuk seri Intel Skylake dan AMD Zen. CPU modern memecah instruksi prosesor yang kompleks menjadi operasi mikro mirip RISC yang lebih sederhana, yang di-cache dalam cache terpisah. Cache ini pada dasarnya berbeda dari cache tingkat yang lebih tinggi, tidak dapat diakses secara langsung dan bertindak sebagai buffer aliran untuk akses cepat ke hasil decoding instruksi CISC ke dalam instruksi mikro RISC. Namun, para peneliti telah menemukan cara untuk menciptakan kondisi yang muncul ketika akses cache bertentangan dan memungkinkan seseorang untuk menilai isi cache operasi mikro dengan menganalisis perbedaan dalam waktu eksekusi tindakan tertentu.

Serangan baru terhadap struktur mikroarsitektur prosesor Intel dan AMD

Cache operasi mikro pada prosesor Intel tersegmentasi dalam kaitannya dengan thread CPU (Hyper-Threading), sedangkan prosesor AMD Zen menggunakan cache bersama, yang menciptakan kondisi kebocoran data tidak hanya dalam satu thread eksekusi, tetapi juga antar thread berbeda di SMT (kemungkinan kebocoran data antara kode yang berjalan pada inti CPU logis yang berbeda).

Para peneliti telah mengusulkan metode dasar untuk mendeteksi perubahan dalam cache operasi mikro dan beberapa skenario serangan yang memungkinkan pembuatan saluran transmisi data tersembunyi dan menggunakan kode yang rentan untuk membocorkan data rahasia, baik dalam satu proses (misalnya, untuk membocorkan data proses saat dijalankan. kode pihak ketiga di mesin dengan JIT dan mesin virtual), dan antara kernel dan proses di ruang pengguna.

Saat mengatur varian serangan Spectre menggunakan cache operasi mikro, peneliti mampu mencapai kinerja 965.59 Kbps dengan tingkat kesalahan 0.22% dan 785.56 Kbps saat menggunakan koreksi kesalahan, dalam kasus mengatur kebocoran dalam alamat yang sama ruang dan tingkat hak istimewa. Dengan kebocoran yang mencakup tingkat hak istimewa yang berbeda (antara kernel dan ruang pengguna), kinerjanya adalah 85.2 Kbps dengan tambahan koreksi kesalahan dan 110.96 Kbps dengan tingkat kesalahan 4%. Saat menyerang prosesor AMD Zen, menyebabkan kebocoran antara inti CPU logis yang berbeda, kinerjanya adalah 250 Kbps dengan tingkat kesalahan 5.59% dan 168.58 Kbps dengan koreksi kesalahan. Dibandingkan dengan metode Spectre v1 klasik, serangan baru ini 2.6 kali lebih cepat.

Perlindungan terhadap serangan cache operasi mikro diperkirakan memerlukan perubahan yang akan mengurangi kinerja lebih banyak dibandingkan jika Anda mengaktifkan perlindungan serangan Spectre. Sebagai kompromi yang optimal, diusulkan untuk memblokir serangan tersebut bukan dengan menonaktifkan caching, tetapi pada tingkat pemantauan anomali dan mengidentifikasi status cache yang khas untuk serangan.

Seperti dalam serangan Spectre, mengatur kebocoran dari kernel atau proses lain memerlukan eksekusi serangkaian perintah (gadget) tertentu di sisi proses korban, yang mengarah pada eksekusi instruksi yang spekulatif. Sekitar 100 gadget serupa telah ditemukan di kernel Linux, yang akan dihapus, tetapi solusi untuk pembuatannya ditemukan secara berkala, misalnya, terkait dengan menjalankan program BPF yang dirancang khusus di kernel.

Sumber: opennet.ru

Tambah komentar