AMD процессорларының алыпсатарлық орындау механизміндегі осалдық

Grsecurity жобасы шартсыз алға операциялардан кейін нұсқаулардың алыпсатарлық орындалуына қатысты AMD процессорларындағы жаңа осалдыққа (CVE-2021-26341) шабуыл әдісінің мәліметтері мен көрсетілімін жариялады. Егер шабуыл сәтті болса, осалдық ерікті жад аумақтарының мазмұнын анықтауға мүмкіндік береді. Мысалы, зерттеушілер ePBF ядросының ішкі жүйесінде артықшылықсыз кодты орындау арқылы мекенжай орналасуын анықтауға және KASLR (ядро жадының рандомизациясы) қорғау механизмін айналып өтуге мүмкіндік беретін эксплойт дайындады. Ядро жады мазмұнының ағып кетуіне әкелетін басқа шабуыл сценарийлерін жоққа шығаруға болмайды.

Осалдық алдын ала орындау кезінде процессор жадтағы көшу нұсқауынан кейін бірден нұсқауды алыпсатарлық түрде өңдейтін жағдайларды жасауға мүмкіндік береді (SLS, Straight Line Speculation). Сонымен қатар, мұндай оңтайландыру шартты секіру операторлары үшін ғана емес, JMP, RET және CALL сияқты тікелей сөзсіз секіруді білдіретін нұсқаулар үшін де жұмыс істейді. Шартсыз өту нұсқауларынан кейін орындауға арналмаған ерікті деректерді орналастыруға болады. Тармақ келесі нұсқауды орындауды қамтымайтынын анықтағаннан кейін процессор жай күйді кері қайтарады және алыпсатарлық орындауды елемейді, бірақ нұсқаулықтың орындалу ізі ортақ кэште қалады және бүйірлік арналарды іздеу әдістерін пайдаланып талдау үшін қол жетімді.

Spectre-v1 осалдығын пайдалану сияқты, шабуыл ядрода алыпсатарлық орындауға әкелетін белгілі бір нұсқаулар тізбегінің (гаджеттердің) болуын талап етеді. Бұл жағдайда осалдықты бұғаттау кодтағы осындай гаджеттерді анықтауға және оларға алыпсатарлық орындауды блоктайтын қосымша нұсқауларды қосуға байланысты. Алыпсатарлық орындау үшін шарттар eBPF виртуалды машинасында жұмыс істейтін артықшылықсыз бағдарламалар арқылы да жасалуы мүмкін. eBPF көмегімен гаджеттерді құру мүмкіндігін блоктау үшін жүйеде eBPF-ге артықшылықсыз кіруді өшіру ұсынылады («sysctl -w kernel.unprivileged_bpf_disabled=1»).

Осалдық Zen1 және Zen2 микроархитектурасына негізделген процессорларға, соның ішінде AMD EPYC және AMD Ryzen Threadripper процессорларының бірінші және екінші буындарына, сондай-ақ AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadreadreadreadreadreadreadreadreadre EPYC және AMD Ryzen процессорларына әсер етеді. PRO және APU сериялы процессорлары A. Нұсқаулардың алыпсатарлық орындалуын блоктау үшін тармақтық операциялардан кейін (RET, JMP, CALL) INT3 немесе LFENCE нұсқауларын шақыру ұсынылады.

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

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