AMD процессорларында Meltdown класының шабуылдарына мүмкіндік беретін тағы бір осалдық анықталды

Грац техникалық университетінің (Австрия) және Гельмгольц ақпараттық қауіпсіздік орталығының (CISPA) зерттеушілер тобы барлық AMD процессорларындағы Meltdown класын жүзеге асыруға мүмкіндік беретін осалдық (CVE-2021-26318) туралы ақпаратты ашты. бүйірлік арналық шабуылдар (бастапқыда AMD процессорларына Meltdown осалдығы әсер етпейді деп болжанған). Іс жүзінде шабуылды жасырын байланыс арналарын орнату, ядродағы белсенділікті бақылау немесе ядродағы осалдықтарды пайдалану кезінде KASLR қорғауын айналып өту үшін ядро ​​жадындағы мекенжайлар туралы ақпаратты алу үшін пайдалануға болады.

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

Осы жаңа шабуыл түрінен қорғау үшін AMD LFENCE нұсқауларын пайдалану сияқты Meltdown шабуылдарына тосқауыл қоюға көмектесетін қауіпсіз кодтау әдістерін пайдалануды ұсынады. Мәселені анықтаған зерттеушілер бұрын тек Intel процессорлары үшін қолданылған жад беті кестесінің қатаң оқшаулауын (KPTI) қосуды ұсынады.

Тәжірибе барысында зерттеушілер ядрода «if (offset < data_len) tmp = операциясын орындайтын гаджеттің болуын ескере отырып, ядродан ақпаратты пайдаланушы кеңістігіндегі процеске секундына 52 байт жылдамдықпен ағызып үлгерді. LUT[деректер[офсет] * 4096];” . Спекуляциялық орындау кезінде кэште аяқталатын бүйірлік арналар арқылы ақпаратты алудың бірнеше әдістері ұсынылды. Бірінші әдіс процессордың «PREFETCH» (Prefetch+Time) нұсқауының орындалу уақытындағы ауытқуларды талдауға негізделген, ал екіншісі «PREFETCH» (Prefetch+Power) орындау кезінде қуат тұтынудың өзгеруін өзгертуге негізделген.

Еске салайық, Meltdown классикалық осалдығы нұсқауларды алыпсатарлық орындау кезінде процессор жеке деректер аймағына қол жеткізе алады, содан кейін нәтижені алып тастай алады, өйткені орнатылған артықшылықтар пайдаланушы процесінде мұндай кіруге тыйым салады. Бағдарламада алыпсатарлық орындалатын блок негізгі кодтан шартты тармақпен бөлінеді, ол нақты жағдайларда әрқашан жанып тұрады, бірақ шартты оператор алдын ала орындау кезінде процессор білмейтін есептік мәнді қолдануына байланысты. код, барлық филиал опциялары алыпсатарлық түрде жүзеге асырылады.

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

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

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