Intel және AMD процессорларының микроархитектуралық құрылымдарына жаңа шабуыл

Вирджиния университетінің және Калифорния университетінің зерттеушілер тобы құжатсыз процессор мүмкіндіктерін кері инженериялау кезінде анықталған Intel және AMD процессорларының микроархитектуралық құрылымдарына шабуылдың жаңа түрін ұсынды. Ұсынылған шабуыл әдісі нұсқауларды алыпсатарлық орындау кезінде жинақталған ақпаратты алу үшін пайдаланылуы мүмкін процессорларда аралық микро-оптикалық кэшті пайдалануды қамтиды.

Оңтайландыру мақсатында процессор алдыңғы есептеулердің аяқталуын күтпей-ақ, кейбір нұсқауларды алыпсатарлық режимде орындауға кіріседі, ал егер кейін болжамның ақталғанын анықтаса, ол операцияны бастапқы күйіне қайтарады, бірақ өңдеу кезінде өңделген деректер. алыпсатарлық орындау кэшке сақталады, оның мазмұнын анықтауға болады.

Жаңа әдіс Spectre v1 шабуылынан айтарлықтай асып түсетіні, шабуылды анықтауды қиындататыны және нұсқауларды алыпсатарлық орындаудан туындаған осалдықтарды блоктауға арналған бүйірлік арналық шабуылдардан қорғаудың қолданыстағы әдістерімен бұғатталмағаны атап өтіледі (мысалы, пайдалану LFENCE нұсқаулығы алыпсатарлық орындаудың соңғы кезеңдеріндегі ағып кетуді блоктайды, бірақ микроархитектуралық құрылымдар арқылы ағып кетуден қорғамайды).

Әдіс 2011 жылдан бері шығарылған Intel және AMD процессор үлгілеріне, соның ішінде Intel Skylake және AMD Zen серияларына әсер етеді. Заманауи процессорлар күрделі процессор нұсқауларын жеке кэште кэштелген қарапайым RISC тәрізді микро операцияларға бөледі. Бұл кэш жоғары деңгейдегі кэштерден түбегейлі ерекшеленеді, тікелей қол жетімді емес және CISC нұсқауларын RISC микронұсқауларына декодтау нәтижелеріне жылдам қол жеткізу үшін ағындық буфер ретінде әрекет етеді. Дегенмен, зерттеушілер кэшке қол жеткізу қайшылықтары кезінде туындайтын жағдайларды жасаудың жолын тапты және белгілі бір әрекеттердің орындалу уақытындағы айырмашылықтарды талдау арқылы микро операциялық кэштің мазмұнын бағалауға мүмкіндік берді.

Intel және AMD процессорларының микроархитектуралық құрылымдарына жаңа шабуыл

Intel процессорларындағы микро операциялық кэш CPU ағындарына (Hyper-Threading) қатысты сегменттелген, ал AMD Zen процессорлары ортақ кэшті пайдаланады, ол тек бір орындау ағыны ішінде ғана емес, сонымен қатар SMT жүйесіндегі әртүрлі ағындар арасында да деректердің ағып кетуіне жағдай жасайды. (түрлі логикалық процессорлық ядроларда жұмыс істейтін код арасында деректердің ағып кетуі мүмкін).

Зерттеушілер микро-операция кэшіндегі өзгерістерді анықтаудың негізгі әдісін және жасырын деректерді беру арналарын құруға және осал кодты бір процесс ішінде құпия деректердің ағып кетуіне мүмкіндік беретін бірнеше шабуыл сценарийлерін ұсынды (мысалы, орындау кезінде процесс деректерінің ағып кетуі үшін). JIT бар қозғалтқыштардағы және виртуалды машиналардағы үшінші тарап коды) және пайдаланушы кеңістігіндегі ядро ​​мен процестер арасындағы.

Микро операциялық кэшті пайдаланып Spectre шабуылының нұсқасын ұйымдастырған кезде зерттеушілер бір мекенжайда ағып кетуді ұйымдастырған жағдайда қатені түзетуді пайдаланған кезде 965.59% қате жылдамдығымен 0.22 Кбит/с өнімділікке қол жеткізе алды. кеңістік және артықшылық деңгейі. Әртүрлі артықшылық деңгейлерін қамтитын (ядро мен пайдаланушы кеңістігі арасындағы) ағып кету кезінде қатені түзету қосылған өнімділік 785.56 Кбит/с және қателік деңгейі 85.2% болғанда 110.96 Кбит/с болды. AMD Zen процессорларына шабуыл жасағанда, әртүрлі логикалық процессордың ядролары арасында ағып кетуді тудырған кезде өнімділік 4% қате жылдамдығымен 250 Кбит/с және қатені түзетумен 5.59 Кбит/с болды. Классикалық Spectre v168.58 әдісімен салыстырғанда жаңа шабуыл 1 есе жылдам болды.

Микро операциялық кэш шабуылынан қорғау үшін Spectre шабуылынан қорғауды қосқаннан гөрі өнімділікті төмендететін өзгерістер қажет болады деп күтілуде. Оңтайлы ымыра ретінде мұндай шабуылдарды кэштеуді өшіру арқылы емес, аномалияларды бақылау және шабуылдарға тән кэш күйлерін анықтау деңгейінде блоктау ұсынылады.

Spectre шабуылдарындағы сияқты, ядродан немесе басқа процестерден ағып кетуді ұйымдастыру құрбандық процестерінің жағында командалардың (гаджеттердің) белгілі бір тізбегін орындауды талап етеді, бұл нұсқаулардың алыпсатарлық орындалуына әкеледі. Linux ядросында 100-ге жуық ұқсас гаджет табылды, олар жойылады, бірақ оларды генерациялау үшін уақытша шешімдер мезгіл-мезгіл табылып отырады, мысалы, ядрода арнайы жасалған BPF бағдарламаларын іске қосумен байланысты.

Ақпарат көзі: opennet.ru

пікір қалдыру