Уязвимости в UEFI Gigabyte позволяют установить буткит вне ОС

Уязвимости в UEFI Gigabyte позволяют установить буткит вне ОС

Уязвимости в UEFI Gigabyte позволяют установить буткит вне ОС

Исследователи из Binarly REsearch обнаружили серьёзные уязвимости в UEFI-прошивке материнских плат Gigabyte. Бреши позволяют атакующим выполнять произвольный код в System Management Mode (SMM) — самом привилегированном режиме работы процессора x86. Проще говоря, это уровень доступа, куда не доберётся ни антивирус, ни операционная система.

В общей сложности описано четыре уязвимости, каждая из которых связана с тем, что прошивка Gigabyte некорректно обрабатывает данные, передаваемые через системные прерывания:

CVE Компонент Суть проблемы Что может сделать атакующий
CVE-2025-7029 Power/Thermal Config Непроверенный указатель регистра RBX Запись в защищённую область SMRAM
CVE-2025-7028 Flash Service SMM Подмена указателя на функцию Получение доступа к операциям с флеш-памятью
CVE-2025-7027 NVRAM Service SMM Двойная разыменовка указателя Запись в SMRAM через переменные конфигурации
CVE-2025-7026 Power Management SMM Непроверенный RBX в команде Запись по любому адресу в SMRAM

 

Для эксплуатации этих уязвимостей злоумышленнику нужны права администратора, после чего он может подготовить регистры и инициировать SMI — системное прерывание, которое вызовет уязвимый код прошивки. Результат — полный контроль над системой, включая возможность:

  • устанавливать незаметные буткиты, переживающие переустановку ОС,
  • отключать защиту прошивки и Secure Boot,
  • сохраняться в скрытой памяти, к которой не имеет доступа обычное ПО.

Особо тревожно, что ошибки в коде были известны давно — оригинальный поставщик прошивки (AMI) выпустил исправления, но они так и не дошли до финальных сборок прошивок Gigabyte. Это яркий пример того, как сбои в цепочке поставок прошивок приводят к реальным рискам для пользователей.

Компания Gigabyte признала проблему и выпустила обновления прошивок, которые уже доступны на её сайте поддержки. Раскрытие уязвимостей проходило при координации с CERT/CC, а Binarly REsearch отмечены за ответственное сообщение о проблеме.

Что делать пользователям:

  • Перейти на сайт поддержки Gigabyte, найти свою модель и установить последнее обновление прошивки.
  • Не откладывать — такие уязвимости позволяют обойти практически любые уровни защиты.
  • В организациях стоит внедрить регулярное обновление прошивок как часть политики управления уязвимостями — это так же важно, как и патчи ОС.

Создатель Диспетчера задач объяснил, почему загрузка CPU в Windows врёт

Бывший инженер Microsoft Дэйв Пламмер, приложивший руку к таким знаковым вещам, как поддержка ZIP в Windows и меню «Пуск» в Windows NT, рассказал, как на самом деле Диспетчер задач считает загрузку процессора. И заодно объяснил, почему цифры в этом инструменте иногда кажутся немного странными, особенно если сравнивать их с тем, как компьютер ощущается в реальной работе.

По словам Пламмера, идея просто показать, насколько занят процессор на деле куда сложнее, чем кажется.

Вопросов тут сразу слишком много: занят чем именно, на одном ядре или на всех, прямо сейчас или в среднем за последние секунды, в пользовательском режиме или на уровне ядра? Как только начинаешь во всём этом разбираться, простая шкала загрузки уже перестаёт выглядеть такой уж простой.

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

Самым очевидным решением мог бы быть простой расчёт по времени между обновлениями интерфейса. Но Пламмер от такого подхода отказался: он посчитал, что полагаться на точность GUI-таймера — идея так себе. Он даже сравнил это с попыткой доверить точный ритм метронома, который едет в кузове пикапа по разбитой дороге.

Вместо этого он заложил в Диспетчер задач другой принцип. Утилита запрашивает, сколько процессорного времени каждый процесс суммарно использовал с момента запуска (отдельно в пользовательском и системном режимах).

Затем из нового значения вычитается предыдущее, полученное во время прошлого обновления. Так определяется, сколько CPU-времени процесс съел за конкретный промежуток. А дальше это сравнивается с общим объёмом процессорного времени, которое было израсходовано всеми процессами за тот же период.

Звучит не очень просто, но именно такой метод, по словам Пламмера, даёт более точный результат, чем грубый расчёт по таймеру. Проблема в другом: современные процессоры стали намного сложнее, чем во времена, когда создавался классический Диспетчер задач.

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

Именно поэтому Диспетчер задач иногда может показывать вроде бы нестрашные цифры, хотя компьютер при этом ощутимо тормозит (или наоборот). Дело не обязательно в ошибке инструмента. Просто сам показатель загрузки процессора уже давно перестал быть идеальным универсальным маркером производительности.

RSS: Новости на портале Anti-Malware.ru