BYOTC-атаки: как доверенные клиенты обходят защиту драйверов
Bring Your Own Trusted Caller (BYOTC) представляет собой технику атаки, при которой злоумышленник злоупотребляет доверенным клиентом пользовательского режима привилегированного драйвера Windows. Вредоносное ПО не загружает уязвимый драйвер напрямую. Вместо этого оно внедряет код в приложение, которому драйвер уже доверяет, и использует доступ этого приложения к привилегированным операциям.
Если ВПО получает возможность выполнять код внутри доверенного приложения, оно может вызывать функции драйвера, не обходя защиту подписи драйверов и список заблокированных уязвимых драйверов Microsoft.
Атака через Malwarebytes Chameleon
В деле Malwarebytes Chameleon злоумышленник запустил легитимный подписанный файл MBAM.exe, внедрил вредоносную DLL в его процесс, зарегистрировал процесс в качестве доверенного клиента и использовал взаимодействие с соответствующим драйвером для завершения процесса MsMpEng.exe Microsoft Defender.
Этот случай демонстрирует прямой путь BYOTC. Сначала происходит компрометация целостности среды выполнения доверенного клиента, после чего злоумышленник использует уже существующий у клиента доступ к функциям привилегированного драйвера.
Уязвимость в цепочке доверия System Informer
System Informer продемонстрировал второй пример, связанный с доверием при создании процессов. Драйвер KSystemInformer назначал клиентам кумулятивные уровни целостности от LOW до MAXIMUM. При оценке учитывались следующие параметры:
- верификация исполняемых файлов;
- родословная процессов;
- защита от несанкционированных дескрипторов;
- статус отладки;
- загруженные образы.
Обычный экземпляр, запущенный администратором, мог создать дочерний процесс с более высоким уровнем доверия. Этот процесс, в свою очередь, мог запустить еще один дочерний процесс, получавший право на привилегии MAXIMUM.
Атака строилась на манипуляции этой цепочкой доверия со стороны «злого родителя» (evil parent). Такой подход позволял недоверенному инициатору запустить создание высокодоверенного процесса и потенциально получить доступ к привилегированным API драйвера.
System Informer устранила проблему, запретив недоверенному инициатору получать привилегированный дескриптор создателя доверенного дочернего процесса. Дополнительным барьером стали существующие ограничения на дублирование дескрипторов через границы верифицированных процессов.
Необратимое отозвание доверия
Обновленная реализация также сделала нарушения защиты информации необратимыми. После обнаружения отладки или загрузки недоверенного образа устранение этого условия уже не позволяло восстановить предыдущее состояние доверия процесса.
Такой подход обеспечивает монотонное отозвание доверия и снижает уязвимости типа «время проверки, время использования» (TOCTOU).
Выводы
Приведенные случаи показывают, что подписанные бинарные файлы и тщательно проверенные цепочки процессов могут оставаться уязвимыми для эксплуатации. Риск сохраняется, если целостность кода во время выполнения и наследование доверия не контролируются достаточно строго.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



