Анализ проблем верификации драйверов Windows
УДК 681.3.066
Анализ проблем верификации драйверов Windows
© Н.Г. Ершов, Н.Ю. Рязанова
МГТУ им. <...> Н.Э. Баумана, Москва, 105005, Россия
Статья посвящена вопросам, связанным с безопасностью работы ОС Windows. <...> Показано, что драйверы режима ядра, в которых используются средства взаимоисключения, могут быть потенциально опасными для системы и являться причиной краха системы. <...> Анализируются результаты работы включенных в систему
средств верификации Driver Verifier. <...> Для проведения анализа разработаны драйверы режима ядра, содержащие разные типы угроз, и выполнена их верификация. <...> Определены возможности и сформулированы практические рекомендации по использованию системных средств верификации с целью обнаружения и исключения
из их кода потенциально опасных участков. <...> Операционные системы (ОС) семейства Windows, в отличие от
систем Linux, являются «закрытыми». <...> Это значит, что изменить код
ядра системы нельзя. <...> Изменить функциональность операционной системы Microsoft Windows можно, только
написав соответствующий драйвер режима ядра. <...> Некорректно написанный драйвер может разрушить систему, что приведет к потере
хранимой в системе информации. <...> Драйвер, содержащий потенциально опасный код, может быть успешно откомпилирован, отлажен и
установлен в системе. <...> При этом такой код может быть не выявлен ни
на одном из этапов разработки драйвера. <...> Взаимоисключение в ОС Windows реализуется с помощью специальных объектов ядра, отличающихся друг от друга особенностями реализации. <...> Некорректно выполненное в драйвере взаимоисключение, особенно в ситуациях многократного обращения к
разделяемым ресурсам, может привести к взаимоблокировкам потоков ядра и краху системы. <...> Н.Г. Ершов, Н.Ю. Рязанова
При отладке драйверов необходимо их тщательно тестировать и
верифицировать. <...> В состав операционных систем Microsoft Windows
XP и созданных позднее для выявления проблемных драйверов
включен Диспетчер проверки драйверов Microsoft Driver Verifier.exe <...>