Ang isa pang kahinaan ay natukoy sa mga processor ng AMD na nagpapahintulot sa mga pag-atake ng Meltdown

Группа исследователей из Грацского технического университета (Австрия) и Центра Гельмгольца по информационной безопасности (CISPA) раскрыла сведения об уязвимости (CVE-2021-26318) во всех процессорах AMD, делающей возможным проведение атак по сторонним каналам класса Meltdown (изначально предполагалось, что процессоры AMD не подвержены уязвимости Meltdown). С практической стороны атака может применяться для организации скрытых каналов передачи данных, мониторинга за активностью в ядре или получения сведений об адресах в памяти ядра для обхода защиты на основе рандомизации адресов (KASLR) в процессе эксплуатации уязвимостей в ядре.

Компания AMD считает нецелесообразным принятие специальных мер для блокирования проблемы, так как уязвимость, как и выявленная в августе похожая атака, малоприменима в реальных условиях, ограничена текущими границами адресного пространства процесса и требует наличия в ядре определённых готовых последовательностей инструкций (гаджетов). Для демонстрации атаки исследователи загружали собственный модуль ядра с искусственно добавленным гаджетом. В реальных условиях для подстановки необходимых последовательностей атакующие могут использовать, например, регулярно всплывающие уязвимости в подсистеме eBPF.

Для защиты от нового вида атаки компания AMD рекомендовала применять методы безопасного кодирования, которые помогают блокировать атаки Meltdown, такие как использование инструкций LFENCE. Выявившие проблему исследователи рекомендуют включить более строгую изоляцию таблиц страниц памяти (KPTI), которая до этого применялась только для процессоров Intel.

В ходе эксперимента исследователям удалось добиться утечки информации из ядра в процесс в пространстве пользователя со скоростью 52 байта в секунду, при наличии в ядре гаджета, выполняющего операцию «if (offset < data_len) tmp = LUT[data[offset] * 4096];». Предложено несколько методов извлечения по сторонним каналам сведений, оседающих в кэше в ходе спекулятивного выполнения. Первый метод основан на анализе отклонений времени выполнения процессорной инструкцией «PREFETCH» (Prefetch+Time), а второй на изменении изменения энергопотребления при выполнении «PREFETCH» (Prefetch+Power).

Напомним, что классическая уязвимость Meltdown основывается на том, что в ходе спекулятивного выполнения инструкций процессор может выполнить обращение к закрытой области данных, после чего отбросить результат, так как выставленные привилегии запрещают такое обращение из процесса пользователя. В программе спекулятивно выполняемый блок отделяется от основного кода условным переходом, который в реальных условиях всегда срабатывает, но из-за того, что в условном операторе используется вычисляемое значение, которое процессор не знает во время упреждающего выполнения кода, осуществляется спекулятивное выполнение всех вариантов ветвления.

Dahil ang mga speculatively executed operations ay gumagamit ng parehong cache gaya ng normal na executed na mga tagubilin, posible sa panahon ng speculative execution na magtakda ng mga marker sa cache na sumasalamin sa mga content ng indibidwal na bits sa isang private memory area, at pagkatapos ay sa normal na executed code upang matukoy ang kanilang halaga sa pamamagitan ng timing pag-access ng pagsusuri sa naka-cache at hindi naka-cache na data.

Pinagmulan: opennet.ru

Magdagdag ng komento