Rosenbridge: аппаратный бэкдор в некоторых процессорах x86

· Безопасность
Исследователь Кристофер Домас обнаружил скрытое непубличное ядро в процессорах VIA C3, позволяющее пользовательскому коду получить доступ к памяти ядра ОС в обход всех аппаратных защит.

cover.svg

Исследователь безопасности Кристофер Домас (Christopher Domas, известный как @xoreaxeaxeax) представил проект rosenbridge — детальное описание аппаратного бэкдора, встроенного в ряд настольных, мобильных и промышленных процессоров архитектуры x86.

Скрытое ядро внутри процессора

Суть находки в том, что рядом с основным x86-ядром в кристалле располагается небольшое дополнительное ядро, работающее на собственной, не-x86 системе команд. Домас называет её «глубоко встроенным набором инструкций» (deeply embedded instruction set). Это ядро активируется битом в специальном регистре процессора (MSR), после чего его можно «запустить» отдельной инструкцией и передавать ему команды, завёрнутые в особым образом сформированные x86-инструкции.

Опасность в том, что скрытое ядро исполняет эти команды в обход всех проверок привилегий и защиты памяти. Код из пользовательского пространства (ring 3) получает возможность свободно читать и изменять данные ядра операционной системы (ring 0). По словам автора, rosenbridge залегает глубже любого известного сопроцессора вроде Intel Management Engine или AMD Platform Security Processor: он имеет доступ не только ко всей памяти процессора, но и к его регистрам и конвейеру исполнения.

Кого это касается

Формально активация бэкдора требует прав ядра. Однако исследователи обнаружили, что на некоторых системах он включён по умолчанию — а значит, любой непривилегированный код может захватить контроль над ядром без всяких дополнительных условий.

Затронутыми считаются процессоры VIA C3. Эта линейка ориентирована на промышленную автоматизацию, торговые терминалы, банкоматы, медицинское оборудование, а также встречалась в потребительских настольных и портативных компьютерах. Хорошая новость: масштаб уязвимости ограничен — в поколениях процессоров после C3 этой функции уже нет.

Без злого умысла

Домас подчёркивает, что не приписывает производителю злых намерений. По его версии, механизм, вероятно, задумывался добросовестно — как полезная возможность для встраиваемого рынка — и был по недосмотру оставлен включённым на ранних поколениях чипов. VIA известна процессорами с низким энергопотреблением, удачными для встраиваемых решений.

В репозитории опубликованы инструменты: утилита для проверки процессора (запускать её нужно на «голом железе», не в виртуальной машине), скрипт для закрытия бэкдора на ранней стадии загрузки, а также ассемблер для скрытого набора команд и целый арсенал фаззеров, с помощью которых и был найден незадокументированный механизм. Автор преподносит работу как учебный кейс и мысленный эксперимент: демонстрацию того, как подобные закладки могут возникать в усложняющихся процессорах и как их можно выявлять.


Источник: Hacker News

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.