fbpx
24 сентября, 2021
IT и компьютерная техника Топ новости

Исследователь обнаружил драйвер AMD, который отключает для игр некоторые функции безопасности

Исследователь обнаружил драйвер AMD, который отключает для игр некоторые функции безопасности

16 мая ИБ-специалист Алекс Ионеску (Alex Ionescu) рассказал в Twitter, что он обнаружил на своем тестовом ПК на базе Ryzen 7 1700 внутри Windows 10 замаскированный драйвер AMD, который изменяет настройки системы при обнаружении в выполняемых процессах определенного списка игр. Такое поведение может стать проблемой для безопасности системы, так как позволяет использовать уязвимости.

Ионеску обнаружил, что в системе есть файл AMDPciDev.sys, который сертифицирован WHQL как драйвер PnP PCI и установлен в операционной системе как устройство с «фиктивной функцией PCIe».

Исследователя заинтересовала такая фиктивная ассоциация устройства, он решил провести реверс-инжtниринг драйвера. В ходе этого процесса Ионеску зафиксировал некоторые странные особенности поведения драйвера, такие как работа его алгоритма хеширования, а также отслеживание создания и завершения новых процессов в системе и их мониторинг в процессе выполнения задач.

Оказалось, что драйвер «AMD PCI» задействовал процедуру уведомления о создании процессов, которая, проверяет все имена запущенных процессов в системе и сравнивает их по своему внутреннему списку из 19 хешированных имен. Если найдено какое-либо совпадение с этим списком (фактически это был список исполняемых файлов игр), то драйвер меняет в системе бит MSR для отключения или включения определенных аппаратных оптимизаций, например, выполняет отключение или управление кэшем инструкций. С одной стороны это может вызвать нестабильную работу системы под нагрузкой, но улучшить производительность игры. Ионеску пояснил, что драйвер вносит изменения не только для запущенной игры — он отключает часть защитных механизмов всей системы.

По мнению исследователя, проблема этого драйвера в том, что в его коде используется «очень слабый 32-битный хеш — например, CRC или XOR». Это может привести к конфликтам программных хешей, когда система считает, что игра запущена, даже если на самом деле это может быть критический процесс или другое программное обеспечение, которое само по себе не предназначено для этой специальной обработки драйвером. Также интерфейс драйвера позволяет проверять, есть ли какие-либо совпадения в его списке процессов, а также очищать списки и добавлять дополнительные хэши на время текуей загрузки в системе.

Другая проблема драйвера заключается в том, что его настройки безопасности позволяют любому приложению в пользовательском режиме задействовать непривилегированный интерфейс драйвера. Злоумышленник может использовать эту ситуацию, например, для создания сбоя в системе. Ионеску показал, как однострочная команда в PowerShell может привести к сбою системы на базе Ryzen 7. Код команды: (Get-NtFile DeviceNTPNP_PCI0031).DeviceIoControl(0x9C402400, 5, 5).

В итоге оказалось, что эти проблемы затрагивают только степпинг B1 процессоров серии Zen 1 (Ryzen 1xxx) и Zen 2 XT (Ryzen 3xxx). Ионеску уверен, что все равно проблема шире, так как сам драйвер уязвим, его использование запутано, его проверки плохо продуманы, список процессов произвольный, а AMD все делает за спиной пользователей, влияя на работу системы.

Related Posts

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *