Специалисты по безопасности Джесси Майкл (Jesse Michael) и Микки Шкатов (Mickey Shkatov) компании Eclypsium изучили более 40 драйверов различных вендоров и обнаружили типовые ошибки ПО и уязвимости, которые позволяют приложениям с низким уровнем доступа использовать заложенные в драйверы функции для выполнения злонамеренных действий в наиболее «чувствительных» зонах операционной системы, таких как ядро ОС.
В список вендоров оборудования, драйвера которых имеют серьезные и схожие уязвимости входят:
— American Megatrends International (AMI);
— ASRock;
— ASUSTeK Computer;
— ATI Technologies (AMD);
— Biostar;
— EVGA;
— Getac;
— GIGABYTE;
— Huawei;
— Insyde;
— Intel;
— Micro-Star International (MSI);
— NVIDIA;
— Phoenix Technologies;
— Realtek Semiconductor;
— SuperMicro;
— Toshiba.
«Существует ряд аппаратных ресурсов, которые обычно доступны только с помощью привилегированного программного обеспечения, такого как ядро ОС, и должны быть защищены от вредоносного режима чтения или записи из приложений пользовательского пространства», — заявил в своем выступлении Микки Шкатов, специалист по безопасности компании Eclypsium.
«Однако, в ряде рассмотренных нами случаев был обнаружен схожий и определенный «дефект» в механизме работы драйверов, заложенный еще на стадии их создания и компиляции, когда подписанные драйверы предоставляют функциональные возможности, которые могут неправильно использоваться приложениями пользовательского пространства для произвольного чтения или записи этих конфиденциальных ресурсов без каких-либо ограничений или проверок со стороны ОС», — рассказал Микки Шкатов.
В заключении своего выступления эксперты по безопасности из компании Eclypsium утверждают, что обнаруженные ими ошибки и уязвимости в драйверах многих вендоров — это результат «плохой» практики при разработке ПО, которая не учитывает необходимые уровни безопасности при разработке драйверов и дальнейших их проверок перед выпуском в производство.
Оказывается, что многими вендорами при разработке драйверов использовался общий шаблон проектирования программного обеспечения, который вместо того, чтобы в каждом отдельном случае заставлять драйвер выполнять только определенные и конкретные задачи, был написан более гибким способом, который позволяет выполнять произвольные действия от имени пространства пользователя без учета необходимых уровней безопасности.
А ведь такая практика может привести к печальным последствиям как для пользователей, так и для разработчиков драйверов и производителей оборудования.
Полную версию своего исследования с примерами использования уязвимостей в драйверах вендоров Джесси Майкл и Микки Шкатов представили в своем докладе на конференции DEF CON 2019.