В процессорах VIA C3 нашли аппаратный бэкдор Rosenbridge

В процессорах VIA C3 нашли аппаратный бэкдор Rosenbridge

Исследователь Кристофер Домас опубликовал на GitHub проект Rosenbridge, описание аппаратного бэкдора, обнаруженного в некоторых процессорах VIA C3. Бэкдор представляет собой отдельное, не относящееся к архитектуре x86, вычислительное ядро, встроенное рядом с основным x86-ядром прямо в кристалл процессора.

Это скрытое ядро включается управляющим битом в регистре MSR (регистр, специфичный для модели процессора), а затем активируется специальной инструкцией запуска. После включения ему можно передавать команды глубоко встроенного набора инструкций (Deeply Embedded Instruction Set, DEIS), упакованные в особым образом сформированную x86-инструкцию. Выполняя эти команды, скрытое ядро обходит все проверки памяти и привилегий: код из третьего кольца защиты (ring 3, обычный пользовательский режим) получает возможность свободно читать и писать данные нулевого кольца (ring 0, уровень ядра).

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

Авторы подчёркивают, что Rosenbridge, не то же самое, что известные сопроцессоры x86-платформ вроде Intel Management Engine или Platform Security Processor: скрытое ядро встроено глубже и имеет доступ не только ко всей памяти процессора, но и к его регистрам и конвейеру исполнения. По имеющимся данным, уязвимость затрагивает только линейку процессоров VIA C3, эти чипы применялись в промышленной автоматизации, POS-терминалах, банкоматах, медицинском оборудовании, а также в части настольных компьютеров и ноутбуков; в последующих поколениях процессоров VIA этой функции уже нет.

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

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

Ключевые факты

  • Проект Rosenbridge Кристофера Домаса описывает скрытое, не относящееся к x86, вычислительное ядро внутри некоторых процессоров VIA C3
  • Код из третьего кольца защиты (пользовательский режим) может обходить защиту процессора и читать/писать память нулевого кольца (уровень ядра)
  • На части систем бэкдор включён по умолчанию, без каких-либо дополнительных условий для активации
  • Отличается от известных сопроцессоров вроде Intel Management Engine или Platform Security Processor более глубоким доступом к памяти, регистрам и конвейеру исполнения
  • В репозитории есть утилита проверки процессора, скрипт для закрытия бэкдора и полный набор инструментов исследования (ассемблер, фаззеры, средства мониторинга ядра)

Почему это важно

Публикация показывает конкретный, воспроизводимый пример аппаратного бэкдора внутри x86-процессора, не теоретическую возможность, а рабочий код и утилиты, которые обходят нулевое кольцо защиты напрямую из пользовательского режима. Rosenbridge явно отличается от уже известных сопроцессоров (Intel Management Engine, Platform Security Processor) более глубоким доступом к ядру процессора, что расширяет модель угроз для встраиваемых и промышленных систем на архитектуре x86.

Кому это важно

В первую очередь, владельцам и интеграторам оборудования на процессорах VIA C3: систем промышленной автоматизации, POS-терминалов, банкоматов, медицинских устройств, а также части настольных компьютеров и ноутбуков, где устанавливались эти чипы. Материал также важен исследователям аппаратной безопасности и специалистам по низкоуровневой архитектуре x86, изучающим скрытые вычислительные блоки внутри процессоров.

Как это применить

Проверить конкретный процессор можно, склонировав репозиторий rosenbridge, собрав утилиту check и запустив её от имени root на «голом железе» (не в виртуальной машине) после загрузки модуля msr. Если проверка показывает уязвимость, в комплекте есть скрипт fix, который устанавливается и закрывает бэкдор на раннем этапе загрузки системы; после установки требуется перезагрузка. Авторы прямо предупреждают, что утилита в альфа-состоянии и может приводить к падению или зависанию систем без бэкдора, поэтому тестировать стоит осторожно.

Можно ли доверять

Источник, официальный репозиторий автора исследования на GitHub, то есть публикация из первых рук, а не пересказ третьих лиц. При этом в тексте нет ни даты обнаружения или публикации, ни номера CVE, ни ссылки на официальный бюллетень безопасности; не названы конкретные модели VIA C3 или число систем с включённым по умолчанию бэкдором, и не сказано, прокомментировала ли компания VIA эту находку. Это делает материал скорее предварительным техническим раскрытием, чем подтверждённым и формально оформленным сообщением об уязвимости.

Риски и подводные камни

Главный риск уже описан в самом источнике, на части систем бэкдор активен по умолчанию, и это даёт любому непривилегированному коду доступ уровня ядра без эксплойта в привычном смысле. Утилита проверки заточена под конкретное семейство процессоров и конкретное ядро: если бэкдор хоть немного отличается от исследованного варианта, инструмент его не найдёт. Даже применение прилагаемого fix не решает проблему полностью, атакующий, уже получивший доступ уровня ядра, может заново включить бэкдор. Наконец, сама утилита проверки в альфа-состоянии способна вызывать сбои и зависания на системах без уязвимости, так что запускать её вслепую на продакшн-оборудовании не стоит.

«Мы полагаем, что описанная функциональность была создана добросовестно как полезная возможность для встраиваемого рынка и по недосмотру осталась включённой в некоторых ранних поколениях процессора. Злого умысла здесь не подразумевается.»

— исследователи проекта Rosenbridge