1 July 2016

Lenovo выпустила уведомление безопасности для своих компьютеров

Блог компании ESET NOD32 corporate blog
Производитель компьютеров Lenovo выпустил для своих пользователей уведомление безопасности Lenovo Security Advisory LEN-8324. Речь идет об уязвимости в firmware (прошивке) выпускаемых компанией компьютеров, в т. ч. в известной серии ноутбуков ThinkPad. Уязвимость можно отнести к типу Local Privilege Escalation, поскольку она позволяет атакующему исполнить код в режиме микропроцессора System Management Mode (SMM). Код SMM является самым привилегированным с точки зрения системы, так как его приоритет исполнения даже выше чем у запущенной в системе ОС или гипервизора, который может контролировать виртуальные машины.



Lenovo не раскрывает информацию об уязвимости, однако, очевидно, что речь идет именно о той уязвимости, детали которой несколько дней назад были опубликованы security-ресерчером под ником Cr4sh. Исследователь представил свои результаты исследования защищенности прошивки ноутбуков ThinkPad и опубликовал информацию об уязвимости в реализации механизмов защиты BIOS_CNTL и SPI Protected Ranges (PRx), которые позволяют коду прошивки защищать регионы SPI flash-памяти чипа (NVRAM) от перезаписи. Такая защита не позволяет модифицировать легитимный исполняемый код прошивки или интегрировать в SMRAM память посторонний код, например, бэкдор.



Продемонстрированный экспертом эксплойт позволяет не только обойти механизм защиты SPI Protected Ranges для записи своего SMM-кода, но также исполнить его с использованием 0day уязвимости в прошивке Lenovo. Механизм защиты SPI Protected Ranges вводит понятие специальных регистров с названиями PRx, которые позволяют коду прошивки задавать защищаемые от записи регионы SPI flash памяти. Так как регистры PRx недоступны для записи никому кроме кода прошивки, эксплойт использует специальный метод для их установки, аналогичный тому как это выполняет сам код прошивки.

Так как сброс системных регистров PRx возможен при переходе компьютера в режим S3 sleep, код прошивки сохраняет их в специальную структуру под названием Boot Script Table для последующего восстановления их оттуда после возврата из этого режима. Модифицируя эту структуру и имитируя возврат из режима S3, код атакующего может загрузить в регистры новые значения после пробуждения, т. е. обнулить их. Однако, для защиты от такого метода эксплуатации, стандарт UEFI регламентирует использование специального защитного механизма Boot Script Table под названием SMM LockBox. Защита SMM LockBox успешно обходится эксплойтом с использованием специальных системных операций.


Рис. Демонстрация работы эксплойта, успешная модификация регистров PRx.

Снятие защиты на модификацию памяти чипа используется эксплойтом с привлечением 0day уязвимости в прошивке Lenovo, которая и позволяет исполнить произвольный SMM-код с использованием механизма функций обратного вызова (callback) для обхода защиты SMM LockBox. Уязвимость присутствует в UEFI-драйвере Lenovo под названием SystemSmmRuntimeRt, который может вызвать функцию по указателю в передаваемой ему структуре, не проверяя этот указатель на принадлежность легитимному коду.


Рис. Уязвимый драйвер в UEFI прошивке Lenovo, который выполняет функцию по указателю из структуры не проверяя его.

Согласно опубликованной Lenovo информации, компания сама не занимается разработкой прошивок для своих компьютеров, делегируя эти обязанности на производителей BIOS/UEFI, которые, в свою очередь, обращаются за разработками и кодовой базе компаний Intel и AMD.

Since that time, Lenovo has actively undertaken its own investigation, which remains ongoing. At this point, Lenovo knows that vulnerable SMM code was provided to Lenovo by at least one of our Independent BIOS Vendors (IBVs). Independent BIOS vendors (IBVs) are software development firms that specialize in developing the customized BIOS firmware that is loaded into the PCs of original equipment manufacturers, including Lenovo. Following industry standard practice, IBVs start with the common code base created by chip vendors, such as Intel or AMD, and add additional layers of code that are specifically designed to work with a particular computer. Lenovo currently works with the industry’s three largest IBVs.

Согласно информации Cr4sh, уязвимость относится к прошивке производства Intel и присутствовала в ней еще до 2014 г. Уязвимый драйвер включен в состав новейшей версии прошивки ноутбуков ThinkPad T450s (1.22), а также ThinkPad X220 (1.42). Также потенциально он может располагаться в компьютерах производства Lenovo: ThinkCentre, ThinkStation, ThinkServer

Продемонстрированная уязвимость позволяет атакующим обойти такие современные механизмы защиты как Secure Boot, Virtual Secure Mode, а также Credential Guard на Windows 10. Защитная мера Secure Boot не позволяет вредоносному ПО типа буткитов получать контроль над системой пользователя на самом раннем этапе ее загрузки. Отключение Secure Boot снимает защитную меру проверки подлинности загрузчика ОС со стороны прошивки.


Рис. Демонстрация исполнения произвольного кода в SMM.

Мы рекомендуем владельцам компьютеров Lenovo дождаться выхода соответствующего обновления firmware и установить его как только оно будет доступно.
Tags:securitylenovovulnerability
Hubs: Блог компании ESET NOD32 corporate blog
+5
7.3k 18
Comments 13