Вредоносные программы, запускаемые на графических процессорах, обнаружить труднее, но это вовсе не означает, что они полностью невидимы для средств безопасности. Исследователи из подразделения Intel McAfee Labs в сотрудничестве с членами Intel Visual and Parallel Computing Group решили подтвердить этот тезис, проанализировав вредоносную программу JellyFish, появившуюся в марте.

Согласно их заключению, вошедшему в последний квартальный отчет McAfee об угрозах, запуск вредоносного кода на графических процессорах обнаружить не так просто, но, вопреки утверждениям его разработчиков, определенные следы все же остаются.

Атаки на графические процессоры: Паниковать не стоит

Создатели JellyFish заявляли, что одним из преимуществ использования вредоносным кодом графических процессоров является обращение к основной памяти компьютера с применением технологии прямого доступа (Direct Memory Access, DMA).

Несмотря на справедливость этого утверждения, выделение графическому процессору значительной части системной памяти требует привилегий ядра и должно осуществляться с помощью процесса, запускаемого на основном процессоре.

По словам исследователей из Intel, средства безопасности могут отслеживать и блокировать выполнение таких операций. Более того, соответствующие возможности уже реализованы в существующих средствах защиты ядра.

Если установка вредоносной программы, запускаемой на графическом процессоре, не была обнаружена, пользовательский код и драйвер ядра, задействованные в этом процессе, теоретически могут быть удалены из операционной системы хоста. Но это приводит к определенным проблемам.

Например, в системе Windows выполнение кода на графическом процессоре инициирует запуск процесса Timeout Detection and Recovery (TDR), который перезагружает графическую плату. Продолжительность тайм-аута перед выполнением соответствующей процедуры составляет две секунды, и любая попытка изменить это значение должна вызывать подозрение у продуктов безопасности.

Кроме того, длительное выполнение операций графическим процессором приводит к тому, что графический интерфейс перестает реагировать на действия пользователя. А это может свидетельствовать о присутствии вредоносной программы.

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

Разработчики JellyFish также утверждают, что код, сохраненный в графическом процессоре, остается там и после перезагрузки системы. Но, по словам исследователей Intel, речь здесь идет о сохранении данных, а не о коде, выполняемом автоматически.

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

Сегодня действительно ощущается нехватка инструментов, которые позволяли бы анализировать код, запускаемый на графических процессорах, однако продуктам безопасности такие функции и не нужны, потому что они способны обнаруживать другие признаки подобных атак.

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

Некоторые технологии защиты, разработанные Microsoft для противодействия руткитам, функционирующим на уровне ядра (например, Patch Guard, средство контроля за наличием у драйверов цифровой подписи Early Launch Anti-Malware — ELAM — и Secure Boot), помогают предотвратить и проникновение вредоносного кода в графический процессор. Функция Microsoft Device Guard, реализованная в Windows 10, позволяет выполнять только программы, подписанные Microsoft, и приложения, заслуживающие доверия, что тоже можно считать весьма эффективным средством блокирования атак такого рода.

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

 

1125