Изображение: Unsplash
Исправленная уязвимость позволяла эксплуатировать опасную ошибку в подсистеме Intel Management Engine и по-прежнему может присутствовать в устройствах других вендоров, использующих процессоры Intel.
Компания Apple выпустила обновление для macOS High Sierra 10.13.4, которое устраняет уязвимость в прошивке персональных компьютеров (CVE-2018-4251), обнаруженную экспертами Positive Technologies Максимом Горячим и Марком Ермоловым. Подробная информация об этом представлена на сайте технической поддержки Apple.
Вот как описывает проблему Максим Горячий: «Уязвимость позволяет злоумышленнику с правами администратора получить несанкционированный доступ к критически важным частям прошивки, записать туда уязвимую версию Intel ME и через ее эксплуатацию тайно закрепиться на устройстве. В дальнейшем он сможет получить полный контроль над компьютером и осуществлять шпионскую деятельность, без малейшей вероятности быть обнаруженным».
О Manufacturing Mode
Intel ME имеет специальный режим работы — так называемый Manufacturing Mode, который предназначен для использования исключительно производителями материнских плат. Данный режим предоставляет дополнительные возможности, которые может использовать злоумышленник. Об опасности данного режима и его влиянии на работу Intel МЕ уже говорили исследователи, в том числе и нашей компании (How to Become the Sole Owner of Your PC), но многие производители до сих пор данный режим не выключают.
Находясь в режиме Manufacturing Mode, Intel ME позволяет выполнять специальную команду, после чего ME-регион становится доступным на запись через встроенный в материнскую плату SPI-контроллер. Имея возможность запускать код на атакуемой системе и отправлять команды в Intel ME, злоумышленник может перезаписывать прошивку Intel ME, в том числе на версию, уязвимую для CVE-2017-5705, CVE-2017-5706 и CVE-2017-5707, и таким образом выполнять произвольный код на Intel ME даже в системах с установленным патчем.
Оказалось, что в MacBook этот режим также включен. Хотя в самой прошивке предусмотрена дополнительная защита от атаки на перезапись регионов SPI Flash (в случае если доступ к какому-либо региону открыт, прошивка не позволяет загрузить ОС), исследователи обнаружили недокументированную команду, которая перезагружает Intel ME без перезагрузки основной системы, что делало возможным обход данной защиты. Стоит отметить, что похожую атаку можно провести не только на компьютерах фирмы Apple.
Positive Technologies разработали специальную утилиту, позволяющую проверить статус режима Manufacturing Mode. Скачать ее можно по этой ссылке. Если результат проверки показывает, что режим включен, мы рекомендуем вам обратиться к производителю вашего компьютера для получения инструкций по его выключению. Утилита предназначена для ОС Windows и Linux, поскольку пользователям компьютеров Apple достаточно установить указанное выше обновление.
Об Intel Management Engine
Intel Management Engine представляет собой интегрированный в микросхему Platform Controller Hub (PCH) микроконтроллер с набором встроенных периферийных устройств. Через PCH осуществляется почти все общение процессора с внешними устройствами, поэтому Intel ME имеет доступ практически ко всем данным на компьютере. Исследователям удалось найти ошибку, которая позволяет выполнять неподписанный код внутри PCH на любой материнской плате для процессоров семейства Skylake и выше.
О масштабе проблемы
Уязвимые чипсеты Intel используются во всем мире, от домашних и рабочих ноутбуков до корпоративных серверов. Ранее выпущенное Intel обновление не исключало возможность эксплуатации уязвимостей CVE-2017-5705, CVE-2017-5706 и CVE-2017-5707, так как при наличии у атакующего доступа на запись к ME-региону он всегда может записать уязвимую версию МЕ и проэксплуатировать уязвимость в ней.
Комментарии (23)
reversecode
14.06.2018 18:42Нашли и нашли, лучше скажите сколько вам за это заплатил еппл?
KonstantinSpb
14.06.2018 19:51Секрет, кто ж про такое скажет. Да еще и NDA скорей всего подписали, для Open Source community ничего полезного.
h0t_max
14.06.2018 20:58Ну вот, Вы опять отправляете меня на
три буквыNDA.) Боюсь разочаровать всех в очередной раз, но у apple нет программы вознаграждения за уязвимости в x86 платформах, поэтому денег не дали и NDA даже не просили подписывать. ;(reversecode
14.06.2018 21:43А зачем вы еплу сделали хорошо если он вас за это даже не отблагодарил?
Oleg_Dolbik
14.06.2018 21:48+1В первую очередь помогли пользователям OSX… Спасибо…
reversecode
14.06.2018 22:01Если бы пользователи OSX кушали спасибо и жили в спасибо, то их бы не существовало в природе
h0t_max
14.06.2018 22:03Да в принципе из тех же побуждений, из которых я в детстве машинки разбирал — любопытно было;)
reversecode
15.06.2018 09:58Я о другом..., поделитесь контактами мецената который обеспечивает вашей компании такой не прибыльный род занятий
KonstantinSpb
14.06.2018 23:07+1Помниться на BlackHat EU 2017 был к вам вопрос, выложите ли Вы ME boot-rom (тот который mask-ROM, OTP(One-Time-Programmable) внутри чипсета), ответ был, что выложите, а воз и ныне там.
h0t_max
14.06.2018 23:45Да тут каюсь, мне потом наши юристы сказали, что с распространением чужих блоков не все так просто. Мы рассказывали про основные отличия от bypass’а, который можно найти в сети, совсем недавно (https://github.com/ptresearch/IntelME-Crypto/blob/master/Intel%20ME%20Security%20keys%20Genealogy%2C%20Obfuscation%20and%20other%20Magic.pdf)
CodeRush
15.06.2018 02:39+2Скажу спасибо h0t_max и здесь тоже, я потратил на исправление этой уязвимости примерно месяц, потому что нужно не только выключить manufacturing mode, но и сделать так, чтобы он не мог случайно или специально включиться обратно.
oteuqpegop
15.06.2018 02:50+1Можно поподробнее про включение обратно? Мне казалось, что он преднамеренно сделан необратимо отключаемым. Вероятно, что-то можно сделать на очень раннем этапе загрузки, но в этом случае левый код будет отвергнут BootGuard, по идее.
CodeRush
15.06.2018 03:02Достаточно сбросить содержимое ME data region (еще точнее, ME FS) и manufacturing mode включится обратно. Есть сведения про то, что МЕ может самостоятельно выключить MM при определенных настройках дескриптора, но т.к. мы не используем рекомендованные Интел настройки (там закрыт доступ к региону МЕ на чтение, а это не позволяет инспектировать его, что недопустимо), то к нашим машинам это неприменимо. BootGuard мы также не используем по разным причинам, на современных системах начиная с iMac Pro вместо него используется собственные технологии защиты прошивки от модификации.
h0t_max
15.06.2018 10:59Есть мнение, что mmode — это фюз, но на самом деле признаком выключениям этого режимы является файл eom на ФС МЕ, если его нет то прошивка считает, что она в manufacturing modе.
Sarymian
15.06.2018 06:01Простите, я кажется туплю, но:
Уязвимость позволяет злоумышленнику с правами администратора получить несанкционированный доступ...
Серьезно? Мне кажется илизлоумышленникпользователь с правами админа — это уже смертный грех. Так при чём тут ME? (я не оправдываю технологию, я в ключе данной статьи, для эксплуатации надо иметь права админа).CodeRush
15.06.2018 06:40Успешная эксплуатация позволяет получить гораздо большие права, чем права администратора в ОС: она позволяет перехватить контроль над МЕ и получить управление еще до старта основного процессора.
Frankenstine
15.06.2018 12:40Я правильно понял, что «уязвимость» состоит в не выключенном производителем режиме Manufacturing Mode, а фикс — в его выключении? Я бы назвал такое не уязвимостью, а неправильной конфигурацией (misconfiguration).
h0t_max
15.06.2018 12:53Для прошивок неверная конфигурация BIOS — это очень распространенная проблема. Это принято считать уязвимостью так как зачастую через такие ошибки злоумышленники может проникнуть или закрепиться на системе. Вот недавний похожий пример: https://blog.eclypsium.com/2018/06/07/firmware-vulnerabilities-in-supermicro-systems/.
CodeRush
15.06.2018 14:02Это и есть мисконф, но уязвимостью он быть не перестает, т.к. позволяет повысить привилегии при помощи ряда шагов, которые по отдельности вроде бы вполне безобидные, а вместе — уже совсем нет.
Sabubu
Этот IME напоминает бекдор: код, выполняющийся в нем, закрытый, а отключить его нельзя.
interprise
Напоминает? да это в чистом виде бэкдор, честно, не разу не читал об этой технологии в положительном ключе.