На конференции BlackHat Asia 2017 специалисты компании Cylance представили доклад, посвященный уязвимостям в прошивке мини-компьютеров Gigabyte BRIX, посредством которых в UEFI можно внедрить вредоносный код.
Сотрудники Cylance выявили сразу две проблемы в прошивках Gigabyte: CVE-2017-3197 и CVE-2017-3198. Первая уязвимость – ошибка разработчиков Gigabyte, которые не сумели правильно реализовать защиту от записи (write protection) для UEFI. Вторая проблема так же является «заслугой» разработчиков, так как файлы UEFI забыли снабдить криптографической подписью. Данная уязвимость тесно сопряжена с небезопасность процесса обновлений, в ходе которого используется HTTP, а валидация загруженных файлов с использованием контрольной суммы не производится.
Исследователи рассказали, что обе уязвимости можно использовать в System Management Mode (SMM) для внедрения вредоносного кода в саму прошивку. При этом атака начинается с простого эксплоита для браузера или вредоносного документа Word, после чего атакующий повышает свои привилегии и добирается до ядра, или одного из модулей ядра, к примеру, Capcom.sys, и может исполнить код в ring 0.
В качестве proof-of-concept исследователи продемонстрировали на конференции установку и работу UEFI-вымогателя (см. верхнюю иллюстрацию), который не позволяет устройствам BRIX загружаться. При этом эксперты отмечают, что аналогичным образом на машину можно поместить руткит, который «переживет» что угодно и сможет сохранять присутствие на компьютере годами.
Уязвимости были обнаружены еще в начале 2017 года, и несколько месяцев специалисты Cylance, совместно с Gigabyte, American Megatrends Inc и CERT/CC, работали над их исправлением. По словам исследователей, проблемам подвержены мини-компьютеры GB-BSi7H-6500 (версия прошивки vF6) и GB-BXi7-5775 (версия прошивки vF2). Инженеры Gigabyte должны выпустить исправленную версию прошивки (vF7 for GB-BSi7H-6500) в ближайшие дни. При этом сообщается, что для устройств GB-BXi7-5775 обновлений можно не ждать, так как их выпуск уже прекращен, а срок официальной поддержки истек.