Идентификувана е уште една ранливост во AMD процесорите која дозволува напади на Meltdown

Тим истражувачи од Техничкиот универзитет во Грац (Австрија) и Центарот за информациска безбедност во Хелмхолц (CISPA) открија информации за ранливост (CVE-2021-26318) во сите AMD процесори што овозможуваат извршување на Meltdown-класа напади на страничен канал (првично се претпоставуваше дека AMD процесорите не се засегнати од ранливоста на Meltdown). Во практична смисла, нападот може да се користи за да се воспостават тајни комуникациски канали, да се следи активноста во кернелот или да се добијат информации за адресите во меморијата на кернелот за да се заобиколи заштитата KASLR додека се искористуваат пропустите во кернелот.

AMD смета дека е несоодветно да се преземат посебни мерки за блокирање на проблемот, бидејќи ранливоста, како сличен напад откриен во август, е од мала корист во реални услови, е ограничена со сегашните граници на адресниот простор на процесот и бара присуство на одредени готови секвенци на инструкции (гаџети) во кернелот. За да го демонстрираат нападот, истражувачите го вчитаа сопствениот модул на јадрото со вештачки додаден гаџет. Во реални услови, напаѓачите можат да користат, на пример, редовно појавување ранливости во потсистемот eBPF за да ги заменат потребните секвенци.

За да се заштити од овој нов тип на напади, AMD препорача користење на безбедни техники за кодирање кои помагаат да се блокираат нападите на Meltdown, како на пример користење на инструкции за LFENCE. Истражувачите кои го идентификуваа проблемот препорачуваат да се овозможи построга изолација на мемориската табела (KPTI), која претходно се користеше само за процесорите на Интел.

За време на експериментот, истражувачите успеаја да испуштат информации од јадрото до процес во корисничкиот простор со брзина од 52 бајти во секунда, со оглед на присуството на гаџет во јадрото што ја извршува операцијата „if (offset < data_len) tmp = LUT[податоци[офсет] * 4096];“ . Предложени се неколку методи за преземање информации преку странични канали кои завршуваат во кешот за време на шпекулативно извршување. Првиот метод се базира на анализа на отстапувањата во времето на извршување на инструкцијата на процесорот „PREFETCH“ (Prefetch+Time), а вториот на промена на промената на потрошувачката на енергија при извршување на „PREFETCH“ (Prefetch+Power).

Потсетете се дека класичната ранливост на Meltdown се заснова на фактот дека за време на шпекулативно извршување на инструкциите, процесорот може да пристапи до област на приватни податоци и потоа да го отфрли резултатот, бидејќи поставените привилегии забрануваат таков пристап од корисничкиот процес. Во програмата, шпекулативно извршениот блок е одделен од главниот код со условна гранка, која во реални услови секогаш се активира, но поради фактот што условната изјава користи пресметана вредност што процесорот не ја знае при превентивното извршување на кодот, сите опции за гранка се вршат шпекулативно.

Бидејќи шпекулативно извршените операции го користат истиот кеш како вообичаено извршените инструкции, можно е за време на шпекулативно извршување да се постават маркери во кешот што ја рефлектираат содржината на поединечни битови во приватна мемориска област, а потоа во нормално извршен код за да се одреди нивната вредност преку времето анализата пристапува до кеширани и некеширани податоци.

Извор: opennet.ru

Додадете коментар