Prosesor Intel memuntahkan kunci privat, jika Anda bermain dengan voltase

Para peneliti dari tiga universitas Eropa telah mengungkapkan rincian serangan pertama yang diketahui terhadap SGX .

Set instruksi SGX (Software Guard eXtensions) memungkinkan aplikasi untuk membuat daerah kantong di ruang alamat virtual yang dilindungi dari membaca dan menulis dari luar area ini oleh proses lain, termasuk kernel dari sistem operasi. Enklaf diisolasi pada tingkat perangkat keras dan perangkat lunak: memori ini secara fisik dipisahkan dari sisa memori prosesor dan dienkripsi.

Serangan Plundervolt (CVE-2019-11157) menggunakan antarmuka OS untuk mengontrol tegangan dan frekuensi prosesor Intel - antarmuka yang sama yang digunakan untuk melakukan overclock CPU selama overclocking. Dengan mengubah tegangan CPU, itu mengekstrak data dari kantong dalam beberapa menit, termasuk kunci enkripsi.

Demo kode exploit yang diterbitkan di GitHub . Prosesor yang rentan:

  • Intel Core 6, 7, 8, 9, dan 10 generasi
  • Intel Xeon E3 v5 dan v6
  • Intel Xeon E-2100 dan E-2200

Peneliti berhasil menggabungkan konsep dua serangan terkenal:

  • Rowhammer : Ubah nilai bit sel DRAM dari 1 menjadi 0 dan sebaliknya dengan menulis data ke sel tetangga.
  • CLKSCREW Manipulasi Daya Prosesor Tegangan dan Frekuensi Penskalaan Dinamis (DVFS).

Plundervolt menggabungkan prinsip-prinsip yang mendasari dua serangan ini. Melalui DVFS, ini mengubah tegangan dalam sel memori SGX, yang mengarah pada perubahan data yang tidak diinginkan dalam kantong.

Pekerjaan ini didasarkan pada rekayasa balik prosesor Intel sebelumnya. Dia mengungkapkan register MSR (ModelSpecific Register) mana yang bertanggung jawab atas perubahan dinamis dalam tegangan CPU setelah perintah program. Register semacam itu ada di semua prosesor Intel.


Skema register tidak terdaftar MSR dengan alamat 0x150

Ternyata, dalam prosesor rentan perubahan bit yang dapat diprediksi terjadi. Misalnya, pada prosesor Core i3-7100U, dengan penurunan tegangan 118 mV, operasi 0x80D36 * 0x21 = 0x109b3f6 memberikan nilai 0xffffffffe109b417 diprediksi salah pada frekuensi 2 GHz.

Contoh lain dari kegagalan perkalian pada Core i3-7100U pada 2 GHz:



Perubahan kecil ini tidak melanggar privasi SGX. Sebagai gantinya, mereka memperkenalkan kesalahan ke dalam operasi pemrosesan data SGX. Dengan kata lain, Plundervolt tidak memecahkan SGX, tetapi mengubah hasilnya: "Undervoltage menginduksi perubahan bit dalam instruksi prosesor, seperti putaran enkripsi atau AES (AES-NI)," jelas David Oswald, akademisi di University of Birmingham, salah satu penulis ilmiah. bekerja. "Karena SGX hanya mengenkripsi data ketika sedang dibaca dan ditulis ke memori (tetapi tidak di dalam prosesor), perlindungan memori SGX tidak mencegah kesalahan ini (karena nilai yang salah ditulis sendiri ke memori.")



Plundervolt memungkinkan Anda untuk melihat pesan terenkripsi yang keluar dari kantong SGX, dan kemudian mengembalikan kunci rahasia yang awalnya digunakan untuk mengenkripsi data.





Para peneliti telah menunjukkan efektivitas serangan itu dengan memperkenalkan bug dalam implementasi Intel RSA-CRT dan AES-NI, yang bekerja di kantong SGX. Mereka mampu memulihkan kunci kriptografi penuh dengan sedikit upaya komputasi.

Kode untuk menguji serangan (repositori di GitHub)

Serangan yang dijelaskan tidak memerlukan peningkatan tegangan secara radikal, sehingga tidak mengancam keamanan fisik chip. Bahkan, properti Plundervolt ini membuat serangan semakin berbahaya. Properti berbahaya lainnya adalah jauh lebih cepat daripada kebanyakan serangan lain pada prosesor Intel, seperti Specter, Meltdown, Zombieload, RIDL, dan lainnya. Tabel menunjukkan jumlah iterasi hingga kesalahan multiplikasi ( 0xAE0000 * 0x18 ) 0xAE0000 * 0x18 pada nilai undervoltage yang berbeda di I3-7100U pada 2 GHz:



Mengubah bit dalam perkalian AES sangat cepat. Misalnya, mengambil kunci AES membutuhkan waktu beberapa menit, termasuk perhitungan yang diperlukan untuk mendapatkan kunci dari ciphertext yang gagal, kata Oswald.

Sayangnya bagi penyerang, serangan Plundervolt sulit dilakukan dari jarak jauh. Anda tidak dapat memikat pengguna ke situs web dan menjalankan JavaScript. Tegangan CPU dengan metode ini tidak berubah. Agar berhasil, Plundervolt mengharuskan korban di komputer menjadi root atau admin. Ini membutuhkan rekayasa sosial dan penggunaan eksploitasi tambahan.

Plundervolt tidak berfungsi di lingkungan tervirtualisasi , seperti mesin virtual dan layanan komputasi awan, di mana OS tamu tidak memiliki akses ke antarmuka yang mengontrol tegangan prosesor.

Namun, Plundervolt adalah masalah serius. Tim peneliti memberi tahu Intel tentang kerentanan pada Juni 2019, dan pembuat CPU telah mengerjakan perbaikan sejak saat itu. Pembaruan firmware dan BIOS dirilis pada 10 Desember 2019 sebagai bagian dari rekomendasi keamanan INTEL-SA-00289 . Setelah menginstal tambalan di BIOS, Anda dapat menonaktifkan antarmuka untuk mengelola tegangan dan frekuensi clock.

Untuk deskripsi teknis serangan, lihat artikel ilmiah (pdf) , yang akan dirilis dalam Prosiding Simposium IEEE 41 tentang koleksi Keamanan dan Privasi .

Source: https://habr.com/ru/post/id480526/


All Articles