Serangan baharu pada struktur mikroarkitektur pemproses Intel dan AMD

Satu pasukan penyelidik dari University of Virginia dan University of California membentangkan serangan baharu terhadap seni bina mikro pemproses Intel dan AMD, yang ditemui melalui kejuruteraan terbalik bagi ciri CPU yang tidak didokumenkan. Kaedah serangan yang dicadangkan memanfaatkan cache mikro-op perantaraan pemproses, yang boleh digunakan untuk mengekstrak maklumat yang hilang semasa pelaksanaan arahan spekulatif.

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

Dimaklumkan bahawa kaedah baharu ini mengatasi prestasi serangan Spectre v1 dengan ketara, menjadikan serangan itu lebih sukar untuk dikesan dan tidak disekat oleh kaedah sedia ada untuk melindungi daripada serangan saluran sisi yang direka untuk menyekat kelemahan yang disebabkan oleh pelaksanaan arahan spekulatif (contohnya, menggunakan blok arahan LFENCE kebocoran pada peringkat akhir penyimpangan spekulatif tidak melindungi daripada pelaksanaan mikrostruktur).

Kaedah ini digunakan untuk model pemproses Intel dan AMD yang dikeluarkan sejak 2011, termasuk siri Intel Skylake dan AMD Zen. CPU moden memecahkan arahan pemproses yang kompleks kepada mikro-ops seperti RISC yang lebih ringkas, yang dicache dalam cache yang berasingan. Cache ini pada asasnya berbeza daripada cache peringkat lebih tinggi; ia tidak boleh diakses secara langsung dan bertindak sebagai penimbal penstriman untuk akses pantas kepada hasil penyahkodan arahan CISC ke dalam mikro-op RISC. Walau bagaimanapun, penyelidik telah menemui cara untuk mewujudkan keadaan yang timbul semasa konflik cache dan membenarkan seseorang membuat kesimpulan kandungan cache mikro-op dengan menganalisis perbezaan dalam masa pelaksanaan operasi tertentu.

Serangan baharu pada struktur mikroarkitektur pemproses Intel dan AMD

Cache mikro-op dalam pemproses Intel dibahagikan berdasarkan 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 (kebocoran data mungkin antara kod yang dijalankan pada teras CPU logik yang berbeza).

Para penyelidik mencadangkan kaedah asas untuk mengesan perubahan dalam cache mikro-operasi dan beberapa senario serangan yang membolehkan penciptaan saluran penghantaran data tersembunyi dan penggunaan kod terdedah untuk membocorkan data sulit, baik dalam satu proses (contohnya, untuk membocorkan data proses semasa melaksanakan kod pihak ketiga dalam enjin dengan JIT dan dalam mesin maya), dan antara kernel dan proses dalam ruang pengguna.

Apabila melaksanakan varian serangan Spectre menggunakan cache mikro-op, penyelidik mencapai prestasi 965.59 Kbps dengan kadar ralat 0.22% dan 785.56 Kbps dengan pembetulan ralat, apabila mencipta kebocoran dalam satu ruang alamat dan tahap keistimewaan. Untuk kebocoran yang merangkumi tahap keistimewaan yang berbeza (antara kernel dan ruang pengguna), prestasi adalah 85.2 Kbps dengan pembetulan ralat 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 merendahkan prestasi dengan lebih ketara daripada mendayakan perlindungan Spectre. Kompromi yang optimum adalah untuk menyekat serangan sedemikian bukan dengan melumpuhkan caching, tetapi dengan memantau anomali dan mengenal pasti keadaan cache yang biasa bagi serangan.

Seperti dalam serangan Spectre, kebocoran maklumat daripada kernel atau proses lain memerlukan pelaksanaan urutan arahan (gajet) tertentu pada proses mangsa, yang membawa kepada pelaksanaan arahan secara spekulatif. Dalam kernel Linux Kira-kira 100 gajet serupa telah ditemui dan akan dialih keluar, tetapi penyelesaian untuk menjananya ditemui secara berkala, contohnya, yang melibatkan menjalankan program BPF yang direka khas dalam kernel.

Sumber: opennet.ru

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster