Как безопасно протестировать подозрительный .sys-драйвер в виртуальной машине

Как безопасно протестировать подозрительный .sys-драйвер в виртуальной машине

Вы скачали драйвер с неофициального сайта — и теперь боитесь запускать его на основном компьютере. Или ваш антивирус ругается на .sys-файл, но вы не уверены, это вирус или ложное срабатывание. Или вы разработчик, проверяете кастомный драйвер, который не прошёл WHQL-подпись. Всё это — повод не рисковать, а запустить драйвер в изолированной среде. Виртуальная машина — ваш лучший друг в этой ситуации. Но не просто запустить её — нужно сделать это правильно. Иначе вы рискуете не только не получить нужную информацию, но и заразить свою сеть.

Почему именно виртуальная машина?

Драйверы (.sys) работают на уровне ядра Windows — они имеют полный доступ к памяти, устройствам, процессору. Один баг или злонамеренный код в драйвере может:

  • заблокировать систему синим экраном смерти (BSOD);
  • отключить антивирус;
  • записать руткит в загрузочный сектор;
  • даже выйти за пределы ОС и повлиять на хост-систему, если виртуализация неправильно настроена.

Виртуальная машина (ВМ) — это не просто «отдельная Windows». Это изолированная среда, где вы можете наблюдать за поведением драйвера, не рискуя своим основным компьютером. Но только если вы сделаете это правильно. Многие люди запускают .sys в ВМ, как будто это обычный .exe — и удивляются, когда драйвер всё равно проникает в хост. Потому что они не знают, как настроить ВМ для безопасного анализа.

Что нужно для тестирования: минимальный набор

Вам не нужен мощный сервер. Достаточно:

  1. Хост-система (ваш основной компьютер) с Windows 10/11 или Linux.
  2. Гипервизор: Hyper-V (если у вас Windows Pro/Enterprise), VMware Workstation Pro или VirtualBox (бесплатно).
  3. Гостевая ОС: чистая Windows 10/11 (64-bit) — желательно без обновлений, если вы тестируете старый драйвер.
  4. Драйвер .sys и, желательно, файл, который его загружает (.exe, .dll, скрипт).
  5. Инструменты для анализа: Process Monitor, WinDbg, Autoruns — все бесплатные от Microsoft.

Важно: не используйте Windows 7 или XP — они устарели, и современные драйверы могут просто не запуститься. Но и не ставьте последнюю версию Windows, если вы тестируете драйвер, который был написан 5 лет назад — он может сломаться из-за изменений в ядре.

Как настроить ВМ для безопасного тестирования

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

Вот что делать перед запуском драйвера:

  1. Отключите сеть. В настройках ВМ выберите «Не подключено» или «Host-only» (если используете VirtualBox/VMware). Никакого интернета — ни для загрузки обновлений, ни для «звонков домой».
  2. Отключите общие папки и буфер обмена. Даже если вы не настраивали их — проверьте. В VMware: VM > Settings > Options > Shared Folders. В VirtualBox: Devices > Shared Clipboard > Disabled.
  3. Отключите USB-перенаправление. Драйвер может пытаться взаимодействовать с внешним устройством — и если вы подключите флешку, он может её заразить.
  4. Сделайте снепшот. Перед запуском драйвера — сохраните состояние ВМ. Это ваша «точка восстановления». Если драйвер сломает систему — вы просто откатитесь и начнёте заново.
  5. Запустите ВМ от имени обычного пользователя, а не администратора. Многие драйверы требуют прав админа, но если вы запустите их от обычного пользователя — вы увидите, как они пытаются эскалировать привилегии. Это важный признак вредоносности.

Как загрузить .sys-драйвер в ВМ

Просто скопировать файл в ВМ — недостаточно. Драйвер — это не программа, которую можно запустить двойным кликом. Его нужно загрузить в ядро. Есть три способа:

Способ Как сделать Когда использовать Риск
Через devcon.exe Скачайте DevCon из Windows Driver Kit. Запустите: devcon install driver.sys driver.inf. Нужен .inf-файл. Драйвер имеет корректный .inf-файл и подписан (даже самоподписанный). Низкий — если инф-файл честный.
Через Service (sc.exe) Создайте службу: sc create MyDriver binPath= "C:\drivers\driver.sys" type= kernel, затем sc start MyDriver. Драйвер — это служба ядра, не требует .inf. Средний — если драйвер не проверяет, что его вызывают легально.
Через загрузчик (например, Loader.exe) Запустите сторонний инструмент вроде DriverLoader или DriverView — они умеют загружать .sys без регистрации. Драйвер не имеет .inf, и вы не знаете, как его вызвать. Высокий — такие утилиты сами могут быть вредоносными.

Самый безопасный способ — devcon.exe. Он работает как Windows Driver Model, и если драйвер не прошёл проверку подписи — система просто откажет в загрузке. Если вы видите, что драйвер работает через sc create — это уже красный флаг: он обходит защиту ядра.

Что смотреть после загрузки драйвера

После запуска — не отходите от экрана. Сразу откройте:

  • Process Monitor (ProcMon) — фильтруйте по Process Name = System. Смотрите, какие файлы, реестр, устройства читает/пишет драйвер. Если он обращается к C:\Windows\System32\drivers\ — нормально. Если к C:\Users\ или HKEY_CURRENT_USER\Software\ — подозрительно.
  • Task Manager — проверьте, не появился ли неизвестный процесс с высоким потреблением CPU или памяти.
  • WinDbg — если система не упала, подключите его как удалённый отладчик. Установите символы Windows (Microsoft Symbol Server) и смотрите, какие драйверы загружены: lm — список, !drvobj drivername 2 — детали.
  • Autoruns — вкладка Drivers. Проверьте, появился ли ваш .sys там. Если да — значит, он зарегистрировался как служба. Это не обязательно плохо, но требует внимания.

Если система упала — это уже ответ. BSOD с кодом DRIVER_IRQL_NOT_LESS_OR_EQUAL или SYSTEM_SERVICE_EXCEPTION — почти всегда драйвер. В таких случаях смотрите дамп памяти: !analyze -v в WinDbg покажет, какой именно драйвер вызвал сбой.

Частые ошибки — и как их избежать

  1. Запускаю в ВМ с интернетом — драйвер может скачать вредоносный модуль или отправить данные. Решение: всегда отключайте сеть.
  2. Использую общие папки для передачи драйвера — драйвер может скопировать себя на хост. Решение: копируйте через буфер обмена или USB-флешку, но только если она отключена от хоста до завершения теста.
  3. Тестирую на Windows 11 с включённым Secure Boot — если драйвер не подписан, он не загрузится. Вы решите, что он «безвредный», а на старой системе он сработает. Решение: отключите Secure Boot в настройках ВМ (UEFI Settings).
  4. Запускаю драйвер от имени админа — вы не увидите попыток эскалации привилегий. Решение: всегда запускайте от обычного пользователя.
  5. Не делаю снепшот — если драйвер повредил систему, вам придётся переустанавливать ВМ. Решение: снепшот — обязательный шаг. Делайте его до каждого теста.

Что выбрать: Hyper-V, VirtualBox или VMware?

Все три работают. Но есть нюансы:

Гипервизор Плюсы Минусы Для кого
Hyper-V Встроен в Windows Pro/Enterprise. Лучшая производительность. Хорошо работает с WinDbg. Не работает на Windows Home. Требует включения виртуализации в BIOS. Если у вас Windows Pro и вы хотите максимальную стабильность.
VMware Workstation Pro Отличная поддержка драйверов, стабильная отладка. Можно настраивать сеть, устройства, прерывания. Платный (есть бесплатная версия, но без некоторых функций). Если вы анализируете драйверы часто — профессионал или исследователь.
VirtualBox Бесплатен. Работает на всех ОС. Прост в настройке. Хуже работает с драйверами ядра — иногда не перехватывает прерывания. Меньше инструментов для отладки. Для разового теста, если нет доступа к другим гипервизорам.

Если вы только начинаете — возьмите VirtualBox. Если вы делаете это регулярно — переходите на VMware. Hyper-V — лучший выбор, если вы работаете в корпоративной среде и уже используете Windows Pro.

Сценарии выбора: что делать в разных ситуациях

  • Ситуация: вы скачали .sys с сайта с подозрительным названием — используйте VirtualBox, отключите сеть и общие папки, сделайте снепшот, загрузите через sc create. Если система не упала — проверьте ProcMon: если драйвер пишет в реестр или копирует файлы в C:\ProgramData — это вредоносный код. Удалите ВМ.
  • Ситуация: вы разрабатываете драйвер и тестируете его на совместимость — используйте Hyper-V с включённым отладочным режимом. Подключите WinDbg. Установите символы. Проверьте, как драйвер ведёт себя при загрузке, отключении устройства, сбое памяти. Делайте снепшоты перед каждым изменением кода.
  • Ситуация: антивирус ругается на .sys от известного производителя, но вы не уверены — запустите в VMware. Проверьте цифровую подпись: signtool verify /v driver.sys. Если подпись есть — но антивирус ругается — возможно, драйвер использует методы, похожие на руткиты (например, скрывает процессы). Проверьте через Process Explorer: есть ли необычные скрытые потоки.

Как лучше делать: рекомендации от практика

  1. Всегда используйте чистую, необновлённую Windows — особенно если тестируете старый драйвер. Обновления меняют API ядра, и драйвер может не работать не из-за вредоносности, а из-за несовместимости.
  2. Не загружайте драйвер через PowerShell или cmd от админа — используйте только sc или devcon. PowerShell может быть подменён.
  3. Сохраняйте логи: скриншоты ProcMon, дампы BSOD, логи WinDbg. Это ваша доказательная база.
  4. Если драйвер работает — не оставляйте ВМ включённой. Выключите, сделайте снепшот, а потом удалите драйвер через sc delete и перезагрузите ВМ. Это проверит, что он не оставил «следов».
  5. Если вы видите, что драйвер обращается к \Device\HarddiskVolume или \Device\PhysicalMemory — это очень тревожный признак. Так делают руткиты.

Что делать после теста

Если драйвер оказался вредоносным — не просто удалите ВМ. Удалите её полностью. Иногда драйверы записывают себя в загрузочные секторы виртуальных дисков. Удалите .vmdk, .vhdx или .vdi файлы. Не просто выключите — удалите.

Если драйвер оказался легитимным — но не подписан — подумайте: зачем вы его используете? Драйверы без цифровой подписи — это риск. Даже если он «безопасный» — он не пройдёт проверку в Windows Update, и на новых версиях Windows он просто не загрузится. Лучше найти официальную версию.

Если вы разработчик — подпишите драйвер через Microsoft Partner Center. Это займёт 2–3 дня, но вы избавитесь от проблем с безопасностью и совместимостью.

Итог: что делать прямо сейчас

Если вы держите в руках подозрительный .sys-файл — не запускайте его на основном компьютере. Не пытайтесь «проверить» его через онлайн-анализаторы — они не видят драйверы ядра. Не пытайтесь запустить в обычной Windows с антивирусом — он может не сработать.

Вот ваша последовательность действий:

  1. Установите VirtualBox (если нет Hyper-V или VMware).
  2. Создайте новую ВМ с Windows 10 64-bit.
  3. Отключите сеть, общие папки, USB, буфер обмена.
  4. Сделайте снепшот.
  5. Скопируйте .sys и .inf (если есть) в ВМ.
  6. Загрузите драйвер через devcon install или sc create.
  7. Запустите Process Monitor и WinDbg.
  8. Смотрите, что делает драйвер.
  9. Если всё нормально — удалите его через sc delete и перезагрузите ВМ.
  10. Если что-то подозрительное — удалите ВМ полностью.

Тестирование драйверов — это не про «всё может быть вирусом». Это про то, чтобы знать, что именно происходит. Вы не должны бояться .sys-файлов. Вы должны понимать, как они работают. И виртуальная машина — ваш самый надёжный инструмент для этого.

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

Оцените статью
PEFile — Безопасность и технологии простым языком