د AMD پروسیسرونو کې یو بل زیان پیژندل شوی چې د میلټ ډاون بریدونو ته اجازه ورکوي

Группа исследователей из Грацского технического университета (Австрия) и Центра Гельмгольца по информационной безопасности (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 основывается на том, что в ходе спекулятивного выполнения инструкций процессор может выполнить обращение к закрытой области данных, после чего отбросить результат, так как выставленные привилегии запрещают такое обращение из процесса пользователя. В программе спекулятивно выполняемый блок отделяется от основного кода условным переходом, который в реальных условиях всегда срабатывает, но из-за того, что в условном операторе используется вычисляемое значение, которое процессор не знает во время упреждающего выполнения кода, осуществляется спекулятивное выполнение всех вариантов ветвления.

څرنګه چې په قیاس سره اجرا شوي عملیات د عادي اجرا شوي لارښوونو په څیر ورته کیچ کاروي، دا ممکنه ده چې د قیاس اجرا کولو پرمهال په کیچ کې مارکرونه تنظیم کړئ چې د شخصي حافظې ساحه کې د انفرادي بټونو مینځپانګه منعکس کوي، او بیا په نورمال ډول اجرا شوي کوډ کې د وخت له لارې د دوی ارزښت وټاکي. تحلیلونه زیرمه شوي او غیر محفوظ شوي ډیټا ته لاسرسی لري.

سرچینه: opennet.ru

Add a comment