GhostRace - Intel, AMD, ARM және IBM процессорларындағы алыпсатарлық орындау механизміне шабуыл

Vrije Universiteit Amsterdam және IBM зерттеушілері GhostRace (CVE-2024-2193) код атауымен заманауи процессорлардағы алыпсатарлық орындау механизміне жаңа шабуыл жасады. Мәселе Intel, AMD, ARM және IBM шығарған процессорларда пайда болады. Шабуылдың принциптерін көрсету үшін, Spectre класындағы шабуылдарға тән сенімділік деңгейімен секундына 12 КБ өнімділігімен Linux ядросының жадынан деректерді шығаруға мүмкіндік беретін эксплуатациялық прототипі жарияланды. Виртуализация жүйелеріне шабуыл жасау кезінде қонақтық жүйенің шабуылшысы хост ортасының немесе басқа қонақ жүйелерінің жады мазмұнын анықтай алады.

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

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

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

GhostRace - Intel, AMD, ARM және IBM процессорларындағы алыпсатарлық орындау механизміне шабуыл

Linux 5.15.83 ядросының кодын талдау кезінде зерттеушілер қазірдің өзінде босатылған жадқа алыпсатарлық қол жеткізуге әкелетін 1283 гаджетті анықтады (SCUAF - Speculative Concurrent Use-After-Free). Әлеуетті түрде шабуыл виртуалдандыру жүйелеріне, кез келген ОЖ ядроларына және ағынды синхрондау примитивтері шартты мәлімдемелер арқылы тексерілетін бағдарламаларға жасалуы мүмкін және код тармақталған операцияларды алыпсатарлық орындауға мүмкіндік беретін платформаларда орындалады (x86, ARM, RISC-V, т.б.).

Шабуылға тосқауыл қою үшін синхрондау примитивтерін сериялауды пайдалану ұсынылады, яғни. құлыптау күйін тексеретін cmpxchq нұсқауынан кейін LFENCE процессор нұсқаулығын қосу. Linux ядросына қосу үшін ұсынылған қорғау әдісі LMBench эталонында шамамен 5% өнімділік айыппұлына әкеледі, себебі LFENCE шақыруы барлық алдыңғы әрекеттер орындалмай тұрып келесі нұсқауларды алдын ала орындауды өшіреді.

Linux ядросын жасаушылар мен орталық процессорларды шығаратын компаниялар бұл мәселе туралы 2023 жылдың соңында хабардар болды. AMD осалдықтың болуы туралы есепті жариялады, онда Spectre v1 шабуылдарынан қорғау үшін стандартты әдістерді пайдалану ұсынылды. Intel және ARM әлі жауап берген жоқ. Linux ядросының әзірлеушілері өнімділік айыппұлына байланысты жақын болашақта синхрондау примитивтерін сериялаудың ұсынылған әдісін пайдаланғысы келмейді, бірақ IPI Storming (Inter-Process Interrupt Storming) пайдалану техникасынан қорғау үшін қажетті шектеулерді енгізіп қойған ( CVE-2024-26602) процессті қажетті сәтте үзу үшін (процесс жұмыс істеп тұрған кезде іске қосылған үзу өңдеушісінің аяқталуына кедергі жасайтын үзілістермен процессордың өзегін толтыру) уақытты қамтамасыз ету үшін эксплойтте пайдаланылады. әлдеқашан босатылған жадқа алыпсатарлық қол жеткізу терезесі.

Xen гипервизорында ағып кететін гаджеттердің әлі анықталмағанына қарамастан, Xen әзірлеушілері бұрын қосылған BRANCH_HARDEN қорғау әдісіне ұқсас қорғалған LOCK_HARDEN құлыптау механизмін енгізу үшін өзгертулер дайындады. Өнімділікке жағымсыз әсер етуі мүмкін болғандықтан, сондай-ақ Xen-ге шабуыл жасау мүмкіндігі туралы дәлелдердің болмауына байланысты LOCK_HARDEN режимі әдепкі бойынша өшірілген.

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

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