Watafiti kutoka Bitdefender
Athari hii ni ya darasa la Specter v1 na inategemea wazo la kurejesha data kutoka kwa akiba ya kichakataji iliyobaki baada ya utekelezaji wa kubahatisha wa maagizo. Ili kuboresha utendakazi, vitengo vya utabiri vya tawi vya CPU za kisasa hutumia utekelezaji wa mapema wa baadhi ya maagizo ambayo yana uwezekano mkubwa wa kutekelezwa, lakini bila kungoja hesabu ya mambo yote ambayo huamua utekelezaji wao (kwa mfano, wakati hali za tawi au vigezo vya ufikiaji hazijafanywa. bado imehesabiwa). Ikiwa utabiri haujathibitishwa, processor hutupa matokeo ya utekelezaji wa kubahatisha, lakini data iliyochakatwa wakati huo inabaki kwenye kashe ya kichakataji na inaweza kurejeshwa kwa kutumia njia za kuamua yaliyomo kwenye kashe kupitia njia za kando, kuchambua mabadiliko katika ufikiaji. wakati wa kuweka akiba na data ambayo haijahifadhiwa.
Upekee wa shambulio jipya ni utumiaji wa uvujaji unaotokea wakati wa utekelezaji wa kubahatisha wa maagizo ya SWAPGS, ambayo hutumiwa katika mifumo ya uendeshaji kuchukua nafasi ya thamani ya rejista ya GS wakati udhibiti unapita kutoka kwa nafasi ya mtumiaji hadi kwa kernel ya OS (GS). thamani inayotumika katika nafasi ya mtumiaji inabadilishwa na thamani inayotumika wakati wa shughuli kwenye kernel ). Katika kinu cha Linux, GS huhifadhi kiashiria cha per_cpu kinachotumiwa kufikia data ya kernel, na vielelezo vya hifadhi ya nafasi ya mtumiaji kwa TLS (Uhifadhi wa Ndani wa Thread).
Ili kuzuia kuita maagizo ya SWAPGS mara mbili wakati wa kufikia kernel tena kutoka kwa nafasi ya kernel au wakati wa kutekeleza msimbo ambao hauhitaji mabadiliko ya rejista ya GS, ukaguzi na tawi la masharti hufanywa kabla ya maagizo. Injini ya utekelezaji ya kubahatisha inaendelea kutekeleza msimbo kwa maagizo kwa SWAPGS bila kungoja matokeo ya hundi, na ikiwa tawi lililochaguliwa halijathibitishwa, hutupilia mbali matokeo. Kwa hivyo, hali inaweza kutokea wakati tawi ambalo halihusishi utekelezaji wa SWAPGS limechaguliwa kwa kubahatisha, lakini wakati wa utekelezaji wa kubahatisha thamani ya rejista ya GS itabadilishwa na maagizo ya SWAPGS na kutumika katika shughuli za kumbukumbu tegemezi ambazo huishia kwenye kashe ya CPU.
Watafiti wamependekeza hali mbili za shambulio ambazo prototypes za unyonyaji zimetayarishwa. Hali ya kwanza inatokana na hali ambapo maagizo ya SWAPGS hayatekelezwi kwa kubahatisha, ingawa kwa kweli yanatumika katika utekelezaji, na ya pili ni kinyume chake, wakati maagizo ya SWAPGS yanatekelezwa kwa kubahatisha, ingawa hayapaswi kutekelezwa. Kwa kila hali, kuna chaguo mbili za unyonyaji: mshambulizi anaweza kuamua thamani katika anwani maalum katika eneo la kernel, na mshambuliaji anaweza kutafuta thamani maalum katika anwani za nasibu kwenye kernel. Kufanya shambulizi huchukua muda mrefu na unyonyaji unaweza kuhitaji saa kadhaa kukamilisha uvujaji.
Kuna tatizo kwenye kinu cha Linux
Urekebishaji unahitaji kusakinisha sasisho la kernel kwenye mfumo wa mwenyeji na mazingira ya wageni, ikifuatiwa na kuwasha upya mfumo. Ili kuzima ulinzi kwenye Linux, chaguo la "nospectre_v1" linaweza kutumika, ambalo pia huzima hatua za kuzuia uwezekano wa SWAPGS. Marekebisho yanapatikana kama
Kulingana na watafiti kutoka Bitdefender, Intel ilifahamishwa kuhusu tatizo hilo mnamo Agosti mwaka jana. Iliamuliwa kurekebisha tatizo kwa utaratibu, ambalo watengenezaji kutoka Microsoft, Google na Linux kernel walihusika katika maendeleo ya uratibu wa kurekebisha. Wasindikaji wa zamani wa Intel, Daraja la kabla ya Ivy, ni ngumu zaidi kushambulia kwa sababu ya kukosekana kwa msaada kwa maagizo ya WRGSBASE yaliyotumiwa katika unyonyaji. Mifumo ya ARM, POWER, SPARC, MIPS, na RISC-V haiathiriwi na tatizo kwa sababu haitumii maagizo ya SWAPGS.
Tatizo linaathiri zaidi wamiliki wa wasindikaji wa Intel -
Kwenye mifumo ya AMD, ni hali ya pili tu ya shambulio lililoweza kutolewa tena, ambayo ni mdogo kwa usindikaji wa kubahatisha wa thamani ya msingi ya rejista ya GS, ambayo inaweza kutumika kutafuta maadili maalum katika maeneo ya kumbukumbu ya nasibu. Ili kuzuia chaguo hili la kushambulia
Chanzo: opennet.ru