Новости про MSI Afterburner и Windows

Эксплойт на базе драйвера стороннего ПО позволяет получить доступ к внутренним структурам операционной системы

Алексей Николайчук a.k.a. Unwinder, создатель и разработчик знаменитых программ RivaTuner, MSI Afterburner, EVGA Precision (X) и ряда других, поделился своими наблюдениями по поводу эксплойта на базе драйвера ASMMAP.

«Некоторое время назад был показан забавный эксплойт на базе ASUS’овского драйвера ASMMAP. Он продемонстрировал использование интерфейсов этого драйвера для мэппинга любого диапазона адресов физической памяти к своему виртуальному адресному пространству и дампа этого блока памяти в файл. Соответственно, можно получить доступ не только к данным любого процесса, но и к внутренним структурам ОС. Несколько дней назад эту концепцию развили ещё дальше, показав использование того же самого подхода уже для поиска блоков EPROCESS в физической памяти и подмены токена своего процесса токеном любого привилегированного процесса. Уже на базе других драйверов со сходным функционалом, NTIOLib и WinIO.

Но авторы эксплойта, похоже, не совсем осознают, какой ящик Пандоры они открыли, так как механизм мэппинга, который они посчитали простой дырой в данных драйверах, на самом деле является абсолютно стандартным механизмом для доступа к MMIO (memory mapped IO, режим доступа к портам какого либо устройства через адресное пространство физической памяти). Соответственно, такой интерфейс присутствует в драйверах десятков разновидностей ПО, работающих под Windows с железом напрямую. Не знаю в какую гигантскую дыру в безопасности в конечном итоге выльется демонстрация данного эксплойта и как с этим будут бороться, но как минимум свой драйвер RTCore от этого хотелось бы защитить уже сейчас. Поскольку интерфейсы мэппинга физической памяти предназначены для MMIO, то концепция защиты видится в ограничении возможности мэппинга неавторизированных адресов физической памяти, не принадлежащих никаким MMIO устройствам. Представляется это пока примерно следующим образом:

  • в интерфейсе для мэппинга теперь помимо желаемого диапазона адресов физической памяти также нужно будет передать и локацию владельца этого адресного пространства — валидного PCI-устройства (то есть номер PCI-шины, устройства и функции) и индекс BAR-регистра;
  • драйвер будет считывать из BAR-регистра данного устройства базовый адрес MMIO-апертуры, мэппинг будет возможен только если желаемый диапазон адресов для мэппинга лежит внутри апертуры этого устройства;
  • при мэппинге будут пропускаться без валидации некоторые фиксированные диапазоны физических адресов, не принадлежащие никаким PCI-устройствам (например, теневая копия VGA BIOS в диапазоне 0xC0000 — 0xDFFFF);
  • поскольку теоретически злоумышленник может попытаться временно перепрограммировать BAR какого-либо устройства для создания видимости принадлежности нужного адреса этому устройству, будут заблокированы для записи адреса BAR любого PCI-устройства в интерфейсах для доступа к конфигурационному пространству PCI;
  • поскольку доступ к конфигурационному пространству PCI особо умные товарищи могут попытаться обойти через прямой доступ к портам PCI-контроллера, интерфейс доступа к портам также будет блокировать попытки записи в порт данных PCI-контроллера, если в порту адреса контроллера выставлен адрес BAR-регистра любого устройства.»

До версии 2.2.4 обновилась программа MSI Afterburner

В плане новых возможностей релиз решительно ничем положительным не примечателен, так как это бинарные исходники  версии 2.2.3 плюс обновлённная база устройств с поддержкой свежих нереференсов MSI серий 650 и 660.

А для пользователей есть две новости — плохая и хорошая.

Плохая заключается в том, что NVIDIA, увы, таки дожала угрозами MSI и всё-таки заставила заблокировать поддержку управления напряжением топового Kepler'а (N680GTX Lightning).

Не очень ясно, чем таким провинились покупатели одних из самых дорогих карт? Может мало денег заносят и, таким образом, корпорация приглашает их покупать двухпроцессорный GeForce GTX 690? В любом случае это дело не наше, пусть производители карт сами разбираются с NVIDIA, мы же перейдём к хорошей новости.

Она заключается в том, что Алексей Николайчук оставил на свой страх и риск оставил «лазейку» для разблокировки, при которой формально и волки сыты, и овцы целы.

Как же вернуть управление напряжением на N680GTX Lightning в версии 2.2.4? Для этого необходимо выполнить довольно простые манипуляции — отредактировать файл профиля (.\Profiles\VEN_10DE&DEV_1180....cfg), добавив в него несколько строк:

[Settings]
VDDC_Generic_Detection = 0
VDDC_CHL8318_Detection = 46h
VDDC_CHL8318_Type = 1

Данные действия отключают функции модуля регулировки напряжения от NVIDIA и включают регулировку напряжения через прямой доступ к контроллеру напряжения CHL8318, а также устанавливают режим управления напряжением через него.

Для SLI-конфигурации необходимо отредактировать подобныи образом профиль каждой карты в связке.

Скачать программу можно как обычно из раздела Утилиты.

На сайте обновлён раздел Утилиты

Кроме новых версий программ, в нём появился новый «старый друг».

Итак, в разделе обновлены следующие программы:

  • MSI Afterburner, одна из наследниц RivaTuner;
  • программа NVIDIA Inspector для мониторинга параметров видеоподсистемы, её разгона и управления профилями драйвера NVIDIA;
  • GPU-Z, универсальная утилита, выдающая подробную информацию о видеокартах и интегрированных решениях на базе современных графических процессоров;
  • GPU Caps Viewer, утилита-бенчмарк, отображающий различную полезную информацию о видеоподсистеме и сопутствующих вещах — драйвере, OpenGL, CUDA, OpenCL и т.д.

Кроме того отличнейшая утилита и просто кладезь информации CPU-Z обзавелась на сайте собственной страницей: