Serangan baharu pada struktur mikroarkitektur pemproses Intel dan AMD

Sekumpulan penyelidik dari University of Virginia dan University of California membentangkan jenis serangan baharu terhadap struktur mikroarkitektur pemproses Intel dan AMD, yang dikenal pasti semasa kejuruteraan terbalik keupayaan CPU tanpa dokumen. Kaedah serangan yang dicadangkan melibatkan penggunaan cache mikro-op perantaraan dalam pemproses, yang boleh digunakan untuk mendapatkan maklumat yang terkumpul semasa pelaksanaan arahan spekulatif.

Untuk tujuan pengoptimuman, pemproses mula melaksanakan beberapa arahan dalam mod spekulatif, tanpa menunggu pengiraan sebelumnya selesai, dan jika ia kemudiannya menentukan bahawa ramalan itu tidak wajar, ia melancarkan semula operasi kepada keadaan asalnya, tetapi data diproses semasa pelaksanaan spekulatif disimpan dalam cache, yang kandungannya boleh ditentukan.

Dimaklumkan bahawa kaedah baharu dengan ketara mengatasi serangan Spectre v1, menjadikan serangan sukar untuk dikesan dan tidak disekat oleh kaedah perlindungan sedia ada terhadap serangan saluran sisi yang direka untuk menyekat kelemahan yang disebabkan oleh pelaksanaan arahan spekulatif (contohnya, penggunaan daripada blok arahan LFENCE bocor pada peringkat terakhir pelaksanaan spekulatif , tetapi tidak melindungi daripada kebocoran melalui struktur mikroarkitektur).

Kaedah ini mempengaruhi model pemproses Intel dan AMD yang dikeluarkan sejak 2011, termasuk siri Intel Skylake dan AMD Zen. CPU moden memecahkan arahan pemproses yang kompleks kepada operasi mikro seperti RISC yang lebih ringkas, yang dicache dalam cache yang berasingan. Cache ini pada asasnya berbeza daripada cache peringkat lebih tinggi, tidak boleh diakses secara langsung dan bertindak sebagai penimbal strim untuk akses pantas kepada hasil penyahkodan arahan CISC ke dalam arahan mikro RISC. Walau bagaimanapun, penyelidik telah menemui cara untuk mencipta keadaan yang timbul apabila capaian cache bercanggah dan membenarkan seseorang menilai kandungan cache operasi mikro dengan menganalisis perbezaan dalam masa pelaksanaan tindakan tertentu.

Serangan baharu pada struktur mikroarkitektur pemproses Intel dan AMD

Cache operasi mikro dalam pemproses Intel dibahagikan berhubung dengan utas CPU (Hyper-Threading), manakala pemproses AMD Zen menggunakan cache kongsi, yang mewujudkan keadaan untuk kebocoran data bukan sahaja dalam satu utas pelaksanaan, tetapi juga antara utas yang berbeza dalam SMT (kemungkinan kebocoran data antara kod yang dijalankan pada teras CPU logik yang berbeza).

Penyelidik telah mencadangkan kaedah asas untuk mengesan perubahan dalam cache operasi mikro dan beberapa senario serangan yang membolehkan mencipta saluran penghantaran data tersembunyi dan menggunakan kod terdedah untuk membocorkan data sulit, kedua-duanya dalam satu proses (contohnya, untuk membocorkan data proses apabila melaksanakan kod pihak ketiga dalam enjin dengan JIT dan dalam mesin maya), dan antara kernel dan proses dalam ruang pengguna.

Apabila mengatur varian serangan Spectre menggunakan cache operasi mikro, penyelidik dapat mencapai prestasi 965.59 Kbps dengan kadar ralat 0.22% dan 785.56 Kbps apabila menggunakan pembetulan ralat, dalam kes mengatur kebocoran dalam alamat yang sama ruang dan tahap keistimewaan. Dengan kebocoran yang merangkumi tahap keistimewaan yang berbeza (antara kernel dan ruang pengguna), prestasi adalah 85.2 Kbps dengan pembetulan ralat ditambah dan 110.96 Kbps dengan kadar ralat 4%. Apabila menyerang pemproses AMD Zen, mencipta kebocoran antara teras CPU logik yang berbeza, prestasinya ialah 250 Kbps dengan kadar ralat 5.59% dan 168.58 Kbps dengan pembetulan ralat. Berbanding dengan kaedah Spectre v1 klasik, serangan baharu adalah 2.6 kali lebih pantas.

Adalah dijangka bahawa melindungi daripada serangan cache mikro-op akan memerlukan perubahan yang akan mengurangkan prestasi lebih daripada jika anda mendayakan perlindungan serangan Spectre. Sebagai kompromi yang optimum, adalah dicadangkan untuk menyekat serangan sedemikian bukan dengan melumpuhkan caching, tetapi pada tahap memantau anomali dan mengenal pasti keadaan cache yang biasa untuk serangan.

Seperti dalam serangan Spectre, mengatur kebocoran daripada kernel atau proses lain memerlukan pelaksanaan urutan tertentu arahan (alat) di sebelah proses mangsa, yang membawa kepada pelaksanaan arahan spekulatif. Kira-kira 100 alat serupa telah ditemui dalam kernel Linux, yang akan dialih keluar, tetapi penyelesaian untuk penjanaan mereka ditemui secara berkala, contohnya, berkaitan dengan menjalankan program BPF yang direka khas dalam kernel.

Sumber: opennet.ru

Tambah komen