Plundervolt minangka cara serangan anyar ing prosesor Intel sing mengaruhi teknologi SGX

Intel dirilis nganyari microcode sing ndandani kerentanan (CVE-2019-14607) ngidini liwat manipulasi voltase dinamis lan mekanisme kontrol frekuensi ing CPU, miwiti karusakan kanggo isi sel data, kalebu ing wilayah digunakake kanggo petungan ing enclaves Intel SGX terisolasi. Serangan kasebut diarani Plundervolt, lan duweni potensi ngidini pangguna lokal nambah hak istimewa ing sistem kasebut, nyebabake nolak layanan lan entuk akses menyang data sensitif.

Serangan kasebut mbebayani mung ing konteks manipulasi kanthi petungan ing enclaves SGX, amarga mbutuhake hak ROOT ing sistem kanggo nindakake. Ing kasus sing paling gampang, panyerang bisa entuk distorsi informasi sing diproses ing enclave, nanging ing skenario sing luwih rumit, kemungkinan nggawe ulang kunci pribadi sing disimpen ing enclave sing digunakake kanggo enkripsi nggunakake algoritma RSA-CRT lan AES-NI ora dipun tilar. Teknik kasebut uga bisa digunakake kanggo ngasilake kesalahan ing algoritma wiwitan sing bener kanggo nyebabake kerentanan nalika nggarap memori, contone, kanggo ngatur akses menyang wilayah ing njaba wates buffer sing diparengake.
Kode prototipe kanggo nindakake serangan diterbitake ing GitHub

Inti saka metode kasebut yaiku nggawe kahanan kanggo kedadeyan korupsi data sing ora dikarepake sajrone petungan ing SGX, saka ngendi panggunaan enkripsi lan otentikasi memori ing enclave ora nglindhungi. Kanggo ngenalake distorsi, ternyata bisa nggunakake antarmuka piranti lunak standar kanggo ngontrol frekuensi lan voltase, biasane digunakake kanggo nyuda konsumsi daya sajrone wektu nganggur sistem lan ngaktifake kinerja maksimal sajrone karya intensif. Karakteristik frekuensi lan voltase nyakup kabeh chip, kalebu pengaruh komputasi ing enclave sing terisolasi.

Kanthi ngganti voltase, sampeyan bisa nggawe kahanan ing kang daya ora cukup kanggo regenerate sel memori nang CPU, lan owah-owahan regane. Bentenane utama saka serangan RowHammer iku RowHammer ngijini sampeyan kanggo ngganti isi bit individu ing memori DRAM dening cyclically maca data saka sel tetanggan, nalika Plundervolt ngijini sampeyan kanggo ngganti bit nang CPU nalika data wis dimuat saka memori kanggo pitungan. Fitur iki ngidini sampeyan ngliwati kontrol integritas lan mekanisme enkripsi sing digunakake ing SGX kanggo data ing memori, amarga nilai ing memori tetep bener, nanging bisa kleru sajrone operasi sadurunge asil ditulis ing memori.

Yen nilai sing diowahi iki digunakake ing proses multiplikasi proses enkripsi, output ditolak kanthi ciphertext sing salah. Duwe kemampuan kanggo ngubungi pawang ing SGX kanggo ngenkripsi data, panyerang bisa, nyebabake gagal, nglumpukake statistik babagan owah-owahan ing ciphertext output lan, ing sawetara menit, mulihake nilai kunci sing disimpen ing enclave. Teks input asli lan ciphertext output sing bener dikenal, tombol ora diganti, lan output saka ciphertext salah nuduhake yen sawetara dicokot wis kleru menyang Nilai ngelawan.

Sawise nganalisa pasangan nilai ciphertext sing bener lan rusak sing diklumpukake sajrone macem-macem kegagalan, nggunakake metode analisis kegagalan diferensial (DFA, Analisis Fault Diferensial) Saget prédhiksi tombol kemungkinan digunakake kanggo enkripsi simetris AES, lan banjur, dening nganalisa intersections tombol ing set beda, nemtokake tombol dikarepake.

Macem-macem model prosesor Intel kena pengaruh masalah kasebut, kalebu CPU Intel Core kanthi 6
Generasi kaping 10, uga generasi kaping lima lan kaping enem Xeon E3, generasi pertama lan kaloro Intel Xeon Scalable, Xeon D,
Xeon W lan Xeon E.

Ayo kita ngelingake yen teknologi SGX (Ekstensi Penjaga Piranti Lunak) muncul ing pemroses Intel Core generasi enem (Skylake) lan nawakake seri instruksi sing ngidini aplikasi tingkat pangguna kanggo nyedhiakke wilayah memori tertutup - enclaves, isi kang ora bisa maca utawa diowahi malah dening kernel lan kode mlaku ing ring0, SMM lan VMM mode. Ora mungkin kanggo nransfer kontrol menyang kode ing enclave kanthi nggunakake fungsi lompat tradisional lan manipulasi kanthi register lan tumpukan; kanggo nransfer kontrol menyang enclave, instruksi anyar sing digawe khusus digunakake kanggo mriksa wewenang. Ing kasus iki, kode sing dilebokake ing enclave bisa nggunakake metode panggilan klasik kanggo ngakses fungsi ing enclave lan instruksi khusus kanggo nelpon fungsi eksternal. Enkripsi memori enclave digunakake kanggo nglindhungi saka serangan hardware kayata nyambungake menyang modul DRAM.

Source: opennet.ru

Add a comment