Bring your own vulnerable driver (BYOVD) — техника, подразумевающая загрузку в систему легитимного драйвера с действительной цифровой подписью, содержащего известные уязвимости. Название техники содержит отсылку к распространенной корпоративной политике BYOD (bring your own device), которая подразумевает возможность приносить собственное устройство для работы в офисе. В случае BYOVD злоумышленник не ищет уязвимые драйверы в атакованной системе, а «приносит» свои собственные.
Злоумышленников интересуют драйверы, которые работают на том же уровне привилегий, что и ядро ОС. При этом современные версии Windows проверяют цифровую подпись драйверов и запрещают на уровне ядра тех драйверов, у которых нет сертификата или он недействителен. При использовании BYOVD атакующий, получив права администратора в системе, устанавливает легитимный подписанный драйвер, содержащий известные уязвимости, таким образом обходя защиту, и может выполнять произвольный код на уровне ядра.
Техникой BYOVD пользуются как APT-группы, так и финансово-мотивированные киберпреступники, такие как операторы шифровальщиков.
Цели применения BYOVD
Техника BYOVD часто применяется для нейтрализации средств защиты (подобные атаки и используемые в них инструменты называют «убийцами антивирусов/EDR«, AV/EDR killers). Получив доступ к системе на уровне ядра, атакующий может принудительно завершать защищенные процессы антивирусов и EDR-решений, удалять перехватчики событий (хуки) и блокировать передачу телеметрии. Как следствие, вредоносное ПО и прочая активность злоумышленников остаются незамеченными.
Доступ к ядру через уязвимый драйвер также позволяет злоумышленникам скрывать следы своего присутствия, незаметно закрепляться в системе и обходить проверку цифровой подписи для последующей загрузки вредоносного кода.
Защита от BYOVD
Противодействие BYOVD осложняется тем, что установка драйвера для систем мониторинга выглядит легитимной: администратор запускает доверенный файл от проверенного вендора. Тем не менее есть несколько методов борьбы с этой техникой.
- Списки блокировки (blocklists), которые составляют и поддерживают Microsoft и разработчики защитных решений. Эти списки содержат данные об известных уязвимых драйверах и их сертификатах. В последних версиях Windows загрузка драйверов из списка блокировки Microsoft Vulnerable Driver Blocklist запрещена по умолчанию.
- Механизмы виртуализации для обеспечения безопасности (VBS) и целостности кода с защитой гипервизора (HVCI). Эти функции создают защищенную среду для проверки кода ядра и затрудняют эксплуатацию уязвимых драйверов.
- Принцип наименьших привилегий. Эта политика усложняет получение прав администратора, которые, как правило, необходимы для загрузки драйвера в систему.