Plundervolt ialah kaedah serangan baharu pada pemproses Intel yang menjejaskan teknologi SGX

Intel dibebaskan kemas kini mikrokod yang membetulkan kelemahan (CVE-2019-14607) membenarkan melalui manipulasi voltan dinamik dan mekanisme kawalan frekuensi dalam CPU, memulakan kerosakan pada kandungan sel data, termasuk di kawasan yang digunakan untuk pengiraan dalam enklaf Intel SGX terpencil. Serangan itu dipanggil Plundervolt, dan berpotensi membenarkan pengguna tempatan meningkatkan keistimewaan mereka pada sistem, menyebabkan penafian perkhidmatan dan mendapat akses kepada data sensitif.

Serangan itu berbahaya hanya dalam konteks manipulasi dengan pengiraan dalam enklaf SGX, kerana ia memerlukan hak akar dalam sistem untuk dijalankan. Dalam kes paling mudah, penyerang boleh mencapai herotan maklumat yang diproses dalam enklaf, tetapi dalam senario yang lebih kompleks, kemungkinan mencipta semula kunci persendirian yang disimpan dalam enklaf yang digunakan untuk penyulitan menggunakan algoritma RSA-CRT dan AES-NI bukanlah dikecualikan. Teknik ini juga boleh digunakan untuk menjana ralat dalam algoritma yang betul pada mulanya untuk mencetuskan kelemahan apabila bekerja dengan memori, contohnya, untuk mengatur akses ke kawasan di luar sempadan penimbal yang diperuntukkan.
Kod prototaip untuk melakukan serangan diterbitkan pada GitHub

Intipati kaedah ini adalah untuk mewujudkan keadaan untuk berlakunya kerosakan data yang tidak dijangka semasa pengiraan dalam SGX, dari mana penggunaan penyulitan dan pengesahan memori dalam enklaf tidak melindungi. Untuk memperkenalkan herotan, ternyata adalah mungkin untuk menggunakan antara muka perisian standard untuk mengawal frekuensi dan voltan, biasanya digunakan untuk mengurangkan penggunaan kuasa semasa masa melahu sistem dan mengaktifkan prestasi maksimum semasa kerja intensif. Ciri-ciri kekerapan dan voltan merangkumi keseluruhan cip, termasuk kesan pengkomputeran dalam enklaf terpencil.

Dengan menukar voltan, anda boleh mencipta keadaan di mana caj tidak mencukupi untuk menjana semula sel memori di dalam CPU, dan nilainya berubah. Perbezaan utama dari serangan RowHammer ialah RowHammer membenarkan anda menukar kandungan bit individu dalam memori DRAM dengan membaca secara kitaran data daripada sel jiran, manakala Plundervolt membenarkan anda menukar bit di dalam CPU apabila data telah dimuatkan daripada memori untuk pengiraan. Ciri ini membolehkan anda memintas kawalan integriti dan mekanisme penyulitan yang digunakan dalam SGX untuk data dalam ingatan, memandangkan nilai dalam ingatan kekal betul, tetapi boleh diherotkan semasa operasi dengannya sebelum hasilnya ditulis ke ingatan.

Jika nilai yang diubah suai ini digunakan dalam proses pendaraban proses penyulitan, output ditolak dengan teks sifir yang salah. Mempunyai keupayaan untuk menghubungi pengendali dalam SGX untuk menyulitkan datanya, penyerang boleh, menyebabkan kegagalan, mengumpul statistik tentang perubahan dalam teks sifir output dan, dalam beberapa minit, memulihkan nilai kunci yang disimpan dalam enklaf. Teks input asal dan teks sifir output yang betul diketahui, kunci tidak berubah, dan output teks sifir yang salah menunjukkan bahawa beberapa bit telah diputarbelitkan kepada nilai yang bertentangan.

Setelah menganalisis pasangan nilai siferteks yang betul dan rosak yang terkumpul semasa pelbagai kegagalan, menggunakan kaedah analisis kegagalan pembezaan (DFA, Analisis Kesalahan Berbeza) Boleh menjangkakan kunci berkemungkinan digunakan untuk penyulitan simetri AES, dan kemudian, dengan menganalisis persimpangan kunci dalam set berbeza, tentukan kunci yang dikehendaki.

Pelbagai model pemproses Intel terjejas oleh masalah itu, termasuk CPU Intel Core dengan 6
Generasi ke-10, serta generasi kelima dan keenam Xeon E3, generasi pertama dan kedua Intel Xeon Scalable, Xeon D,
Xeon W dan Xeon E.

Biar kami ingatkan anda bahawa teknologi SGX (Sambungan Penjaga Perisian) muncul dalam pemproses Intel Core generasi keenam (Skylake) dan menawarkan satu siri arahan yang membenarkan aplikasi peringkat pengguna memperuntukkan kawasan memori tertutup - enklaf, yang kandungannya tidak boleh dibaca atau diubah suai walaupun oleh kernel dan kod yang dijalankan dalam mod ring0, SMM dan VMM. Adalah mustahil untuk memindahkan kawalan ke kod dalam enklaf menggunakan fungsi lompat tradisional dan manipulasi dengan daftar dan timbunan untuk memindahkan kawalan ke enklaf, arahan baharu yang dicipta khas digunakan yang melakukan semakan kuasa. Dalam kes ini, kod yang diletakkan dalam enklaf boleh menggunakan kaedah panggilan klasik untuk mengakses fungsi di dalam enklaf dan arahan khas untuk memanggil fungsi luaran. Penyulitan memori enklaf digunakan untuk melindungi daripada serangan perkakasan seperti menyambung ke modul DRAM.

Sumber: opennet.ru

Tambah komen