Chikwata chevaongorori kubva kuYunivhesiti yeVirginia neYunivhesiti yeCalifornia yakaratidza kurwiswa kutsva kweiyo microarchitecture yeIntel uye AMD processors, yakawanikwa kuburikidza nereverse engineering yezvisina kunyorwa CPU maficha. Nzira yekurwisa yakarongwa inokwirisa ma processor 'epakati micro-op cache, iyo inogona kushandiswa kuburitsa ruzivo rwakarasika panguva yekufungidzira kuraira.
Nezvinangwa zvekugadzirisa, processor inotanga kuita mimwe mirairo mukufungidzira, pasina kumirira kuti kuverenga kwapfuura kupedziswe, uye kana ikazoona kuti kufanotaura kwanga kusiri kwechokwadi, inodzosera kuvhiya kumamiriro ayo ekutanga, asi iyo data yakagadziriswa panguva yekufungidzira inochengetwa mu cache, zviri mukati mazvo zvinogona kutsanangurwa.
Zvinocherechedzwa kuti nzira itsva inokunda zvakanyanya kurwiswa kweSpecter v1 mukuita, inoita kuti kurwiswa kuve kwakaoma kuona, uye hakuna kuvharwa nenzira dziripo dzekudzivirira kubva kudivi-chiteshi kurwiswa kwakagadzirirwa kuvharira kusakuvara kunokonzerwa nekufungidzira kuurayiwa kwemirairo (semuenzaniso, kushandisa iyo LFENCE rairo inovharira kubuda mumatanho ekupedzisira ekufungidzira asi inodzivirira maitiro ekufungidzira, asi inodzivirira kuita microaka kurwisa kukonzeresa).
Iyo nzira inoshanda kune Intel uye AMD processor modhi yakaburitswa kubva 2011, kusanganisira iyo Intel Skylake uye AMD Zen akatevedzana. MaCPU emazuva ano anotyora mirairo yakaoma processor kuita iri nyore RISC-senge micro-ops, iyo yakavharirwa mune yakaparadzana cache. Iyi cache yakasiyana zvakanyanya nepamusoro-level cache; haisvikike zvakananga uye inoita seyekutepfenyura buffer yekukurumidza kuwana mibairo yekudhidha mirairo yeCISC muRISC micro-ops. Nekudaro, vaongorori vakawana nzira yekugadzira mamiriro anomuka panguva yekunetsana kwecache uye kubvumira munhu kuti atore zviri mukati meiyo micro-op cache nekuongorora mutsauko munguva dzekuita kwemamwe mabasa.

Iyo micro-op cache muIntel processors yakakamurwa zvichienderana neCPU tambo (Hyper-Threading), nepo AMD Zen processors vachishandisa yakagovaniswa cache, iyo inogadzira mamiriro ekudonha kwedata kwete mukati metambo imwe chete yekuuraya, asiwo pakati petambo dzakasiyana muSMT (kudonha kwedata kunogoneka pakati pekodhi inomhanya pane dzakasiyana zvine musoro CPU cores).
Vaongorori vakapa nzira yekutanga yekuona shanduko mu micro-operation cache uye mamiriro akasiyana-siyana ekurwiswa anobvumira kugadzirwa kwenzira dzekutapurirana data dzakavanzwa uye kushandiswa kwekodhi isina njodzi kuburitsa data rakavanzika, zvese mukati meimwe nzira (semuenzaniso, kuburitsa data rekuita pakushandisa kodhi yebato rechitatu mumainjini ane JIT uye mu michina chaiyo), uye pakati pe kernel uye maitiro ari munzvimbo yemushandisi.
Pakuita Specter attack musiyano uchishandisa micro-op cache, vatsvakurudzi vakawana kushanda kwe965.59 Kbps nechiyero chekukanganisa che 0.22% uye 785.56 Kbps nekugadzirisa kukanganisa, pakugadzira kuvuza mukati mekero imwe chete nzvimbo uye ropafadzo. Pakudonha kunotora nhanho dzakasiyana dzeropafadzo (pakati pe kernel nenzvimbo yemushandisi), kuita kwacho kwaive 85.2 Kbps nekugadziriswa kwekukanganisa uye 110.96 Kbps nechiyero chekukanganisa che4%. Pakurwisa AMD Zen processors, kugadzira kuvuza pakati peakasiyana ane musoro CPU cores, kuita kwacho kwaive 250 Kbps nechiyero chekukanganisa che5.59% uye 168.58 Kbps nekugadzirisa kukanganisa. Kuenzaniswa neyemhando yepamusoro Specter v1 nzira, kurwisa kutsva kwaive 2.6 nguva nekukurumidza.
Zvinotarisirwa kuti kudzivirira kubva ku micro-op cache kurwiswa kunoda shanduko inodzikisira kuita zvakanyanya kupfuura kugonesa Specter kuchengetedzwa. Iyo yakakwana yekukanganisa ndeyekuvhara kurwiswa kwakadaro kwete nekudzima caching, asi nekutarisa anomalies uye kuona cache nyika dzinowanzo kurwisa.
Как и в атаках Spectre для организации утечки из ядра или других процессов требуется выполнение на стороне процессов-жертв определённой последовательности команд (гаджетов), приводящей к спекулятивному выполнению инструкций. В ядре Linux найдено около 100 подобных гаджетов, которые будут удалены, но периодически находят обходные методы для их генерации, например, связанные с запуском в ядре специально оформленных BPF-программ.
Source: opennet.ru
