Pelaksanaan spekulasi baru bug mencetuskan data dari buffer dalaman Intel chips

Mula-mula didedahkan pada Januari 2018, serangan Meltdown dan Specter telah membuka pintu-pintu gerbang, yang membawa kepada penyelidikan yang luas ke dalam perkakasan eksekusi spekulatif yang terdapat dalam pemproses moden, dan beberapa serangan tambahan telah diterbitkan sejak beberapa bulan lalu.

Hari ini menyaksikan penerbitan pelbagai kelemahan yang berkait rapat yang dinamakan pelbagai RIDL, Fallout, ZombieLoad, atau Microarchitectural Sampling Data. Banyak nama adalah akibat daripada beberapa kumpulan yang mendapati kelemahan yang berbeza. Dari jabatan sains komputer Vrije Universiteit Amsterdam dan Pusat Helmholtz untuk Keselamatan Maklumat, kami mempunyai "Beban Data Rogue Dalam Penerbangan." Dari satu pasukan yang merangkumi Universiti Teknologi Graz, Universiti Michigan, Institut Politeknik Worcester, dan KU Leuven, kami mempunyai "Kejatuhan." Dari Universiti Teknologi Graz, Institut Politeknik Worcester, dan KU Leuven, kami mempunyai "ZombieLoad," dan dari Universiti Teknologi Graz, kami mempunyai "Forwarding Store-to-Leak."

Intel menggunakan nama "Microarchitectural Data Sampling" (MDS), dan itulah nama yang boleh dikatakan memberikan wawasan yang paling dalam masalah itu. Isu-isu ini secara bebas ditemui oleh Intel dan pelbagai kumpulan lain, dengan pemberitahuan pertama kepada syarikat cip yang berlaku pada bulan Jun tahun lepas.

Recap: Pemproses meneka banyak

Semua serangan mengikuti satu set prinsip yang sama. Setiap prosesor mempunyai tingkah laku seni bina (tingkah laku yang didokumenkan yang menerangkan bagaimana arahannya berfungsi dan programmer bergantung kepada program-program mereka) dan tingkah laku mikro arkitek (cara pelaksanaan arsitektur sebenar). Ini boleh menyimpang dengan cara yang halus. Sebagai contoh, secara arsitektur, seorang pemproses melakukan setiap arahan secara berturut-turut, satu persatu, menunggu semua pengendali arahan yang diketahui sebelum melaksanakan arahan itu. Program yang memuat nilai dari alamat tertentu dalam memori akan menunggu sehingga alamat diketahui sebelum cuba melakukan beban dan kemudian menunggu beban selesai sebelum menggunakan nilai.

Walau bagaimanapun, secara mikroarchitectural, pemproses mungkin cuba meneka secara spektral di alamat supaya ia dapat mula memuat nilai dari memori (yang lambat) atau mungkin meneka bahawa beban akan mengambil nilai tertentu. Ia biasanya akan menggunakan nilai dari cache atau penampan lookaside terjemahan untuk membentuk tekaan ini. Sekiranya pensyarah menganggap salah, ia akan mengabaikan nilai yang ditebak dan melaksanakan beban sekali lagi, kali ini dengan alamat yang betul. Oleh itu, kelakuan yang ditakrifkan secara seni bina dipelihara, seolah-olah pemproses sentiasa menunggu nilai-nilai sebelum menggunakannya.

Tetapi ramalan yang salah akan mengganggu bahagian lain dari pemproses; pendekatan utama adalah mengubah suai cache dengan cara yang bergantung pada nilai yang ditebak. Pengubahsuaian ini menyebabkan perbezaan masa yang halus (kerana lebih cepat untuk membaca data yang sudah di cache daripada data yang tidak) yang dapat diukur oleh penyerang. Dari pengukuran ini, penyerang dapat menyimpulkan nilai yang ditebak, yang bermaksud bahawa penyerang dapat menyimpulkan nilai yang ada dalam cache. Nilai itu boleh menjadi sensitif dan bernilai kepada penyerang.

Buffering ...

MDS secara umum sama, tetapi bukannya bocor nilai dari cache, ia melepaskan nilai dari pelbagai buffer dalam pemproses. Pemproses mempunyai beberapa penampan khusus yang digunakan untuk memindahkan data di sekitar secara dalaman. Contohnya, buffer fill line (LFB) digunakan untuk memuatkan data ke cache tingkat 1. Apabila pemproses membaca dari memori utama, ia terlebih dahulu memeriksa cache data peringkat 1 untuk melihat apakah ia sudah mengetahui nilai. Jika tidak, ia menghantar permintaan ke memori utama untuk mendapatkan nilai. Nilai itu dimasukkan ke dalam LFB sebelum ditulis kepada cache. Begitu juga, apabila menulis nilai-nilai ke ingatan utama, mereka ditempatkan sementara di buffer kedai. Melalui proses yang dipanggil forward-store-loading, penimbal kedai juga boleh digunakan untuk membaca memori perkhidmatan. Dan akhirnya, terdapat struktur yang dipanggil port beban, yang digunakan untuk menyalin data dari memori ke daftar.

Ketiga penampan boleh menyimpan data basi: buffer mengisi baris akan memegang data dari sebelumnya diambil dari memori utama sambil menunggu pengambilan baru selesai; penimbal kedai boleh mengandungi campuran data dari operasi kedai yang berlainan (dan dengan itu, dapat memajukan campuran data baru dan lama pada penampan beban); dan port beban juga dapat mengandungi data lama sambil menunggu data baru dari ingatan.

Sama seperti serangan pelaksanaan spekulatif terdahulu akan menggunakan nilai basi dalam cache, serangan MDS baru melakukan spekulasi berdasarkan nilai basi dari salah satu buffer ini. Ketiga jenis penimbal boleh digunakan dalam serangan sedemikian, dengan penampan tepat bergantung pada kod serangan tepat.

"Pensampelan" dalam nama itu adalah kerana kerumitan serangan seperti ini. Penyerang mempunyai kawalan yang sangat sedikit terhadap apa yang ada dalam penampan ini. Penampan kedai, contohnya, boleh mengandungi data yang basi dari operasi kedai yang berlainan, jadi ketika sebagian mungkin menarik minat penyerang, dapat dicampurkan dengan data lain yang tidak relevan. Untuk mendapatkan data yang boleh digunakan, ramai, banyak percubaan perlu dibuat pada maklumat yang bocor, jadi ia mesti dicicipi berkali-kali.

Sebaliknya, serangan, seperti serangan Meltdown dan Foreshadow, memintas domain keselamatan dalaman pemproses. Sebagai contoh, proses mod pengguna boleh melihat data yang bocor dari kernel, atau proses tidak selamat dapat melihat data yang bocor dari dalam lingkungan enclave SGX. Sama seperti serangan serupa sebelumnya, penggunaan hiperthreading, di mana kedua-dua penyerang benang dan benang mangsa berjalan pada teras fizikal yang sama, dapat meningkatkan kemudahan eksploitasi.

Kebolehgunaan terhad

Pada umumnya, penyerang mempunyai sedikit atau tiada kawalan ke atas penampan ini; tidak ada cara mudah untuk memaksa buffer untuk mengandungi maklumat sensitif, jadi tidak ada jaminan bahawa data yang bocor akan berguna. Penyelidik VU Amsterdam telah menunjukkan serangan konsep-konsep dimana penyemak imbas dapat membaca fail kata laluan berbayang sistem Linux. Walau bagaimanapun, untuk membuat serangan ini berfungsi, sistem mangsa dibuat untuk menjalankan arahan passwd berulang-ulang, memastikan bahawa terdapat kebarangkalian tinggi bahawa kandungan fail akan berada di salah satu buffer. Intel dengan sewajarnya percaya serangan itu menjadi risiko rendah atau sederhana.

Namun itu tidak bermakna mereka sudah tidak dapat dihubungi. Hari ini, kemas kini mikro untuk Sandy Bridge melalui ciptaan Lake Lake dan Whiskey Lake generasi pertama akan dihantar. Bersempena dengan sokongan perisian yang sesuai, sistem pengendalian akan dapat secara paksa mengepam pelbagai buffer untuk memastikan mereka tidak mempunyai data sensitif. Pemproses Kopi Dan Tasik Whiskey Lake generasi pertama sudah kebal kepada MDS menggunakan buffer mengisi buangan, kerana ini berlaku untuk diperbaiki sebagai sebahagian daripada pemulihan untuk tahap 1 kesalahan dan serangan Meltdown. Tambahan pula, Tasik Kopi, Tasik Whiskey, dan Cascade Lake yang terkini termasuk pembaikan perkakasan lengkap untuk ketiga-tiga varian ini.

Bagi sistem yang bergantung kepada perbaikan mikrokod, Intel mengatakan bahawa overhead prestasi biasanya akan berada di bawah tiga peratus tetapi, di bawah beban kerja yang tidak baik, mungkin agak lebih tinggi. Syarikat itu juga telah menawarkan satu kenyataan rasmi:

Pensampelan Data Mikrokonduktor (MDS) telah ditangani di peringkat perkakasan dalam kebanyakan pemproses Intel® Core ™ Generasi ke-8 dan ke-9 baru-baru ini, serta Keluarga Pemproses Skala Perkapalan Intel® Xeon® Generasi Kedua. Bagi produk lain yang terjejas, mitigasi boleh didapati melalui kemas kini mikrokod, ditambah pula dengan kemas kini yang sepadan dengan sistem operasi dan perisian hypervisor yang tersedia mulai hari ini. Kami telah menyediakan lebih banyak maklumat di laman web kami dan terus menggalakkan semua orang untuk memastikan sistem mereka terkini, kerana ia merupakan salah satu cara terbaik untuk terus dilindungi. Kami ingin mengucapkan terima kasih kepada para penyelidik yang bekerja dengan kami dan rakan industri kami atas sumbangan mereka kepada pendedahan yang diselaraskan mengenai isu-isu ini.

Seperti Meltdown, isu ini kelihatan seperti Intel khusus. Penggunaan data basi dari penampan untuk melaksanakan pelaksanaan spekulasi terletak di antara peningkatan prestasi dan isu mudah pelaksanaan, dan tidak ada cip AMD atau reka bentuk ARM yang dipercayai mengalami masalah yang sama. Secara seni bina, pemproses Intel semua melakukan perkara yang betul-mereka melakukan perangkap dan menggulung spekulasi yang rosak, kerana mereka sepatutnya, seolah-olah data buruk itu tidak pernah digunakan-tetapi seperti Meltdown dan Specter telah membuat sangat jelas, itu tidak cukup untuk memastikan prosesor beroperasi dengan selamat.

Imej penyenaraian oleh Marina Minkin

Tonton video itu: MK: Quick Count Pemilu 2019 Baru Boleh Diumumkan Pukul WIB (Disember 2019).