LVI ialah kelas serangan baharu pada mekanisme pelaksanaan spekulatif dalam CPU

Diterbitkan maklumat tentang kelas serangan baharu LVI (Suntikan Nilai Beban, CVE-2020 0551-) pada mekanisme pelaksanaan spekulatif dalam CPU Intel, yang boleh digunakan untuk membocorkan kunci dan data rahsia daripada enklaf Intel SGX dan proses lain.

Kelas serangan baharu adalah berdasarkan manipulasi struktur mikroarkitektur yang sama yang digunakan dalam serangan MDS (Persampelan Data Senibina Mikro), Spectre dan Meltdown. Pada masa yang sama, serangan baharu tidak disekat oleh kaedah perlindungan sedia ada terhadap Meltdown, Spectre, MDS dan serangan lain yang serupa. Perlindungan LVI yang berkesan memerlukan perubahan perkakasan pada CPU. Apabila mengatur perlindungan secara pengaturcaraan, dengan menambah arahan LFENCE oleh pengkompil selepas setiap operasi memuatkan daripada memori dan menggantikan arahan RET dengan POP, LFENCE dan JMP, terlalu banyak overhed direkodkan - menurut penyelidik, perlindungan perisian yang lengkap akan menyebabkan penurunan dalam prestasi sebanyak 2-19 kali.

Sebahagian daripada kesukaran untuk menyekat masalah diimbangi oleh fakta bahawa serangan itu pada masa ini lebih teori daripada praktikal (serangan secara teorinya mungkin, tetapi sangat sukar untuk dilaksanakan dan hanya boleh dihasilkan semula dalam ujian sintetik).
Intel diperuntukkan masalah mempunyai tahap bahaya yang sederhana (5.6 daripada 10) dan dibebaskan mengemas kini perisian tegar dan SDK untuk persekitaran SGX, di mana ia cuba menyekat serangan menggunakan penyelesaian. Kaedah serangan yang dicadangkan pada masa ini hanya terpakai kepada pemproses Intel, tetapi kemungkinan menyesuaikan LVI untuk pemproses lain yang digunakan untuk serangan kelas Meltdown tidak boleh diketepikan.

Masalah itu dikenal pasti pada April lalu oleh penyelidik Jo Van Bulck dari Universiti Leuven, selepas itu, dengan penyertaan 9 penyelidik dari universiti lain, lima kaedah serangan asas telah dibangunkan, yang setiap satunya membolehkan kewujudan lebih spesifik. pilihan. Secara bebas, pada bulan Februari tahun ini, penyelidik dari Bitdefender juga ditemui salah satu varian serangan LVI dan melaporkannya kepada Intel. Varian serangan dibezakan dengan penggunaan struktur mikroarkitektur yang berbeza, seperti penimbal storan (SB, Penampan Stor), penimbal isian (LFB, Penampan Isi Talian), penimbal suis konteks FPU dan cache peringkat pertama (L1D), yang digunakan sebelum ini. dalam serangan seperti ZombieLoad, RIDL, Fallout, LazyFP, Bayang-bayang ΠΈ Kemelesetan.

LVI ialah kelas serangan baharu pada mekanisme pelaksanaan spekulatif dalam CPU

Utama penghormatan LVI terhadap serangan MDS ialah MDS memanipulasi penentuan kandungan struktur mikroarkitektur yang tinggal dalam cache selepas pengendalian kesalahan spekulatif atau operasi memuatkan dan menyimpan, sementara
Serangan LVI membenarkan data penyerang untuk dimasukkan ke dalam struktur mikroarkitektur untuk mempengaruhi pelaksanaan spekulatif berikutnya kod mangsa. Menggunakan manipulasi ini, penyerang boleh mengekstrak kandungan struktur data peribadi dalam proses lain apabila melaksanakan kod tertentu pada teras CPU sasaran.

LVI ialah kelas serangan baharu pada mekanisme pelaksanaan spekulatif dalam CPU

Untuk masalah eksploitasi dalam kod proses mangsa patut jumpa jujukan khas kod (alat) di mana nilai dikawal penyerang dimuatkan, dan memuatkan nilai ini menyebabkan pengecualian (kesalahan, batalkan atau bantuan) dibuang, membuang hasil dan melaksanakan semula arahan. Apabila pengecualian diproses, tetingkap spekulatif muncul semasa data yang diproses dalam alat bocor. Khususnya, pemproses mula melaksanakan sekeping kod (alat) dalam mod spekulatif, kemudian menentukan bahawa ramalan itu tidak wajar dan melancarkan semula operasi ke keadaan asalnya, tetapi data yang diproses semasa pelaksanaan spekulatif disimpan dalam cache L1D dan penimbal mikroarkitektur dan tersedia untuk mendapatkan semula daripadanya dengan menggunakan kaedah yang diketahui untuk menentukan data sisa melalui saluran pihak ketiga.

Pengecualian "membantu", tidak seperti pengecualian "kesalahan", dikendalikan secara dalaman oleh pemproses tanpa memanggil pengendali perisian. Bantuan boleh berlaku, contohnya, apabila bit A (Diakses) atau D (Kotor) dalam jadual halaman memori perlu dikemas kini. Kesukaran utama dalam melakukan serangan ke atas proses lain adalah bagaimana untuk memulakan kejadian bantuan dengan memanipulasi proses mangsa. Pada masa ini tiada cara yang boleh dipercayai untuk melakukan ini, tetapi ada kemungkinan ia akan ditemui pada masa hadapan. Kemungkinan untuk melakukan serangan setakat ini telah disahkan hanya untuk enklaf Intel SGX, senario lain adalah teori atau boleh dihasilkan semula dalam keadaan sintetik (memerlukan penambahan alat tertentu pada kod)

LVI ialah kelas serangan baharu pada mekanisme pelaksanaan spekulatif dalam CPU

LVI ialah kelas serangan baharu pada mekanisme pelaksanaan spekulatif dalam CPU

Kemungkinan vektor serangan:

  • Kebocoran data daripada struktur kernel ke dalam proses peringkat pengguna. Perlindungan kernel Linux terhadap serangan Spectre 1, serta mekanisme perlindungan SMAP (Supervisor Mode Access Prevention), mengurangkan dengan ketara kemungkinan serangan LVI. Menambah perlindungan tambahan pada kernel mungkin diperlukan jika kaedah serangan LVI yang lebih mudah dikenal pasti pada masa hadapan.
  • Kebocoran data antara proses yang berbeza. Serangan memerlukan kehadiran kepingan kod tertentu dalam aplikasi dan definisi kaedah untuk melontar pengecualian dalam proses sasaran.
  • Kebocoran data dari persekitaran hos kepada sistem tetamu. Serangan itu diklasifikasikan sebagai terlalu kompleks, memerlukan pelbagai langkah yang sukar dilaksanakan dan ramalan aktiviti dalam sistem.
  • Kebocoran data antara proses dalam sistem tetamu yang berbeza. Vektor serangan hampir dengan mengatur kebocoran data antara proses yang berbeza, tetapi tambahan memerlukan manipulasi yang kompleks untuk memintas pengasingan antara sistem tetamu.

Diterbitkan oleh penyelidik beberapa prototaip dengan demonstrasi prinsip melakukan serangan, tetapi ia belum sesuai untuk melakukan serangan sebenar. Contoh pertama membolehkan anda mengubah hala pelaksanaan kod spekulatif dalam proses mangsa, serupa dengan pengaturcaraan berorientasikan kembali (ROP, Pengaturcaraan Berorientasikan Kembali). Dalam contoh ini, mangsa adalah proses yang disediakan khas yang mengandungi alat yang diperlukan (melakukan serangan pada proses pihak ketiga yang sebenar adalah sukar). Contoh kedua membolehkan kami memasukkan diri kami ke dalam pengiraan semasa penyulitan AES di dalam enklaf Intel SGX dan mengatur kebocoran data semasa pelaksanaan arahan spekulatif untuk memulihkan nilai kunci yang digunakan untuk penyulitan.


Sumber: opennet.ru

Tambah komen