Serangan anyar ing struktur microarchitectural prosesor Intel lan AMD

Klompok peneliti saka Universitas Virginia lan Universitas California nampilake jinis serangan anyar ing struktur microarchitectural prosesor Intel lan AMD, sing diidentifikasi sajrone rekayasa terbalik saka kapabilitas CPU sing ora didokumentasikan. Cara serangan sing diusulake kalebu nggunakake cache mikro-op penengah ing prosesor, sing bisa digunakake kanggo njupuk informasi sing diklumpukake sajrone eksekusi instruksi spekulatif.

Kanggo tujuan optimasi, prosesor wiwit nglakokakΓ© sawetara instruksi ing mode spekulatif, tanpa ngenteni petungan sadurunge rampung, lan yen banjur nemtokake manawa prediksi ora sabdho, muter maneh operasi kanggo negara asli, nanging data diproses sak eksekusi spekulatif disimpen ing cache, isine bisa ditemtokake.

Wigati dicathet yen cara anyar kasebut ngluwihi serangan Spectre v1, ndadekake serangan kasebut angel dideteksi lan ora diblokir kanthi cara proteksi sing ana marang serangan saluran sisih sing dirancang kanggo mblokir kerentanan sing disebabake dening eksekusi spekulatif instruksi (contone, panggunaan saka pamblokiran instruksi LFENCE bocor ing tahap pungkasan eksekusi spekulatif, nanging ora nglindhungi bocor liwat struktur mikroarsitektur).

Cara kasebut mengaruhi model prosesor Intel lan AMD sing dirilis wiwit 2011, kalebu seri Intel Skylake lan AMD Zen. CPU modern ngrusak instruksi prosesor sing rumit dadi operasi mikro kaya RISC sing luwih prasaja, sing disimpen ing cache sing kapisah. Cache iki dhasar beda saka cache tingkat sing luwih dhuwur, ora langsung diakses lan tumindak minangka stream buffer kanggo akses cepet kanggo asil dekoding instruksi CISC menyang RISC microinstructions. Nanging, peneliti nemokake cara kanggo nggawe kahanan sing muncul nalika konflik akses cache lan ngidini siji kanggo ngadili isi cache operasi mikro kanthi nganalisa beda ing wektu eksekusi tumindak tartamtu.

Serangan anyar ing struktur microarchitectural prosesor Intel lan AMD

Cache operasi mikro ing prosesor Intel dipΓ©rang ing hubungane karo benang CPU (Hyper-Threading), nalika prosesor AMD Zen nggunakake cache sing dienggo bareng, sing nggawe kahanan bocor data ora mung ing siji utas eksekusi, nanging uga ing antarane benang sing beda ing SMT (bisa bocor data antarane kode mlaku ing intine CPU logis beda).

Peneliti wis ngusulake cara dhasar kanggo ndeteksi owah-owahan ing cache operasi mikro lan sawetara skenario serangan sing ngidini nggawe saluran transmisi data sing didhelikake lan nggunakake kode sing rawan kanggo bocor data rahasia, loro-lorone ing siji proses (contone, kanggo bocor data proses nalika nglakokake). kode pihak katelu ing mesin karo JIT lan ing mesin virtual), lan antarane kernel lan pangolahan ing ruang panganggo.

Nalika ngatur varian saka serangan Spectre nggunakake cache operasi mikro, peneliti bisa entuk kinerja 965.59 Kbps kanthi tingkat kesalahan 0.22% lan 785.56 Kbps nalika nggunakake koreksi kesalahan, ing kasus ngatur bocor ing alamat sing padha. papan lan tingkat hak istimewa. Kanthi bocor sing beda-beda tingkat hak istimewa (antarane kernel lan ruang panganggo), kinerja ana 85.2 Kbps kanthi koreksi kesalahan ditambahake lan 110.96 Kbps kanthi tingkat kesalahan 4%. Nalika nyerang prosesor AMD Zen, nggawe bocor antarane intine CPU logis sing beda, kinerja 250 Kbps kanthi tingkat kesalahan 5.59% lan 168.58 Kbps kanthi koreksi kesalahan. Dibandhingake karo metode Spectre v1 klasik, serangan anyar 2.6 kaping luwih cepet.

Dikarepake yen nglindhungi saka serangan cache mikro-op mbutuhake owah-owahan sing bakal nyuda kinerja luwih saka yen sampeyan ngaktifake proteksi serangan Spectre. Minangka kompromi optimal, diusulake kanggo mblokir serangan kasebut ora kanthi mateni caching, nanging ing tingkat ngawasi anomali lan ngenali negara cache sing khas kanggo serangan.

Kaya ing serangan Spectre, ngatur bocor saka kernel utawa proses liyane mbutuhake eksekusi urutan perintah (gadget) tartamtu ing sisih pangolahan korban, sing ndadΓ©kakΓ© eksekusi instruksi spekulatif. Udakara 100 gadget sing padha ditemokake ing kernel Linux, sing bakal dicopot, nanging solusi kanggo generasi kasebut ditemokake sacara periodik, contone, sing ana gandhengane karo program BPF sing dirancang khusus ing kernel.

Source: opennet.ru

Add a comment