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

    Производитель компьютеров 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 и установить его как только оно будет доступно.
    ESET NOD32
    0,00
    Компания
    Поделиться публикацией

    Похожие публикации

    Комментарии 13

      0
      Да он и здесь есть, могли бы заменшнить
      d_olex
        +1
        Адвизори от Lenovo это просто таки эталонное «кисо абиделось». По-хорошему им следовало бы поступить как професcионалам, а именно — засунуть куда поглубже свою личную неприязнь ко мне и разместить в тексте адвизори ссылки на оригинальную статью и эксплойт что бы дать кастомерам максимум технической инфы о проблеме. Но поскольку на безопасность в Lenovo хотели плевать — то получилось как получилось.
          +1
          Я бегло прочитал пост, и наткнулся на вот это странное предложение:
          После снятия защиты на модификацию памяти чипа, эксплойт может разместить там свой код. Для передачи управления на него используется 0day уязвимость в прошивке Lenovo, которая позволяет выполнить произвольный SMM-код с использованием механизма функций обратного вызова (callback).

          Не уверен что правильно понял что именно вы хотели этим сказать, но суть следующая: 0day уязвимость и техника обхода PRx flash write protection это две отдельные штуки которые на прямую друг к другу не относятся, я просто объединил все в одну статью что бы не плодить сущностей.
          0day уязвимость в SMM коллбеке позволяет выполнить повышение привилегий и исполнить произвольный код в SMM, а техника атаки на PRx (она не только для Lenovo, это должно работать много где) позволяет обойти flash write protection имея на руках исполнение произвольного кода в SMM в кач-ве начального условия.
            0
            Правильно ли я понимаю, что первая часть ресерча, которая относится к обходу механизма безопасности SPI Protected Ranges используется для снятия защиты на запись той части памяти чипа, где будет размещен SMM-код, а вторая часть посвящена 0day уязвимости в драйвере, с помощью которой можно передать на SMM-код управление. Если да, то это и имелось в виду.
              0
              > Правильно ли я понимаю, что…

              Нет, читайте статью и README к эксплойту более внимательно. Он дает исполнение произвольного кода в SMM без всяких pre requirements (не считая админского доступа к ОС), а описанная в первой части статьи техника нужна для того, что бы превратить это исполнение произвольного SMM кода в обход flash write protection.
                0
                Я подправлю несколько моментов в посте сегодня.
                  0
                  Подпись под последней фоткой еще подправьте, это исполнение произвольного кода в SMM а не обход PRx.
            +3
            Ну и да, вот небольшой прогноз по реакции индустрии на эту 0day уязвимость:
            Intel будет продолжать молчать, в своей кодовой базе они исправили это два года назад, а дальше — хоть трава не расти.
            Lenovo выпустит обновление фирмвари в течении следующих 2-х месяцев.
            Другие вендоры в продуктах которых присутствует этот же уязвимый код (в настоящий момент подтверждено его наличие в лептопах от HP) ничего не будут делать до тех пор, пока их не начнут тыкать в эту уязвимость носом (а тыкать носом их скорее всего не будут потому что некому).
            Security has no market value, baby.
              0
              Дим, у всех продуктов, которые затронуты, EOL либо уже позади, либо завтра наступит. Это не SHNMV, это бизнес и ничего личного. Да и смысл реагировать на любые уязвимости в EDK1+, если там и без них — решето…
                0
                За всех вендоров не скажу, но многие уязвимые модели Lenovo будут еще как минимум пару лет поддерживаться — они тот старый код только в скайлейковских машинах выкинули которые вышли на рынок считай недавно.
              0
              > Прошивка для Lenovo могла быть разработана Intel или AMD.

              фейс-палм. Перевод не соответствует оригинальному тексту. Подчеркну, что там написано, что Леново использует наработки трех основных вендоров БИОСов (АМИ? Phoenix? Insyde?), которые в основе своего кода берут код от производителей процессоров — Интел и АМД.

              Статья из серии alizar такой alizar.
                0
                Да, это правильно. Текст исправлен.
                  0
                  спасибо!

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое