Ang laing kahuyangan naila sa mga processor sa AMD nga nagtugot sa mga pag-atake sa 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 основывается на том, что в ходе спекулятивного выполнения инструкций процессор может выполнить обращение к закрытой области данных, после чего отбросить результат, так как выставленные привилегии запрещают такое обращение из процесса пользователя. В программе спекулятивно выполняемый блок отделяется от основного кода условным переходом, который в реальных условиях всегда срабатывает, но из-за того, что в условном операторе используется вычисляемое значение, которое процессор не знает во время упреждающего выполнения кода, осуществляется спекулятивное выполнение всех вариантов ветвления.

Tungod kay ang spekulatibo nga gipatuman nga mga operasyon naggamit sa sama nga cache sama sa kasagarang gipatuman nga mga instruksyon, posible sa panahon sa speculative execution nga magbutang og mga marker sa cache nga nagpakita sa mga sulod sa tagsa-tagsa nga mga bit sa usa ka pribadong memory area, ug dayon sa normal nga gipatuman nga code aron mahibal-an ang ilang bili pinaagi sa timing Ang pag-analisar nag-access sa cache ug non-cached nga datos.

Source: opennet.ru

Idugang sa usa ka comment