Kerentanan dalam pemproses Intel yang membawa kepada kebocoran data melalui saluran pihak ketiga

Sekumpulan penyelidik dari universiti China dan Amerika telah mengenal pasti kelemahan baharu dalam pemproses Intel yang membawa kepada kebocoran maklumat pihak ketiga tentang hasil operasi spekulatif, yang boleh digunakan, sebagai contoh, untuk mengatur saluran komunikasi tersembunyi antara proses atau mengenal pasti kebocoran semasa serangan Meltdown.

Intipati kelemahan ialah perubahan dalam daftar pemproses EFLAGS yang berlaku akibat pelaksanaan spekulatif arahan mempengaruhi masa pelaksanaan berikutnya arahan JCC (melompat apabila syarat tertentu dipenuhi). Operasi spekulatif tidak selesai dan hasilnya dibuang, tetapi perubahan EFLAGS yang dibuang boleh ditentukan dengan menganalisis masa pelaksanaan arahan JCC. Operasi perbandingan yang dilakukan dalam mod spekulatif sebelum peralihan, jika berjaya, mengakibatkan kelewatan kecil yang boleh diukur dan digunakan sebagai tanda untuk pemilihan kandungan.

Kerentanan dalam pemproses Intel yang membawa kepada kebocoran data melalui saluran pihak ketiga

Tidak seperti serangan saluran sisi lain yang serupa, kaedah baharu ini tidak menganalisis perubahan dalam masa capaian kepada data yang dicache dan tidak dicache dan tidak memerlukan peringkat untuk menetapkan semula daftar EFLAGS kepada keadaan asalnya, yang menyukarkan untuk mengesan dan menyekat serangan itu. Sebagai demonstrasi, para penyelidik melaksanakan varian serangan Meltdown, menggunakan kaedah baharu untuk mendapatkan maklumat tentang hasil operasi spekulatif. Operasi kaedah untuk mengatur kebocoran maklumat semasa serangan Meltdown telah berjaya ditunjukkan pada sistem dengan CPU Intel Core i7-6700 dan i7-7700 dalam persekitaran dengan Ubuntu 22.04 dan kernel Linux 5.15. Pada sistem dengan CPU Intel i9-10980XE, serangan itu hanya dilakukan sebahagian sahaja.

Kerentanan Meltdown adalah berdasarkan fakta bahawa semasa pelaksanaan arahan spekulatif, pemproses boleh mengakses kawasan data peribadi dan kemudian membuang hasilnya kerana keistimewaan yang ditetapkan melarang akses sedemikian daripada proses pengguna. Dalam program ini, blok yang dilaksanakan secara spekulatif dipisahkan daripada kod utama oleh cawangan bersyarat, yang dalam keadaan sebenar sentiasa menyala, tetapi disebabkan fakta bahawa pernyataan bersyarat menggunakan nilai terkira yang pemproses tidak tahu semasa pelaksanaan preemptive kod, semua pilihan cawangan dilaksanakan secara spekulatif.

Dalam versi klasik Meltdown, memandangkan cache yang sama digunakan untuk operasi yang dilaksanakan secara spekulatif seperti untuk arahan yang biasa dilaksanakan, adalah mungkin semasa pelaksanaan spekulatif untuk menetapkan penanda dalam cache yang mencerminkan kandungan bit individu dalam kawasan memori tertutup, dan kemudian tentukan dalam kod yang biasa dilaksanakan maknanya melalui analisis masa capaian kepada data yang dicache dan tidak dicache. Varian baharu menggunakan perubahan dalam daftar EFLAGS sebagai penanda kebocoran. Dalam demonstrasi saluran rahsia, satu proses memodulasi data yang dihantar untuk mewujudkan keadaan untuk menukar kandungan daftar EFLAGS, dan proses lain menganalisis perubahan dalam masa pelaksanaan arahan JCC untuk mencipta semula data yang dihantar oleh proses pertama.

Sumber: opennet.ru

Tambah komen