Как проверить, не подменён ли на компьютере Driver Signature Enforcement

Если вы читаете это, скорее всего столкнулись с подозрительной ситуацией: драйвер установился без предупреждения, система ведёт себя странно, или вы просто хотите убедиться, что защита Windows работает как положено. Driver Signature Enforcement (DSE) — это механизм, который не даёт загружаться неподписанным драйверам. Его отключение или подмена — популярный приём как среди пиратов, так и среди злоумышленников. Разберёмся, как это проверить и что делать.

Зачем вообще заботиться о Driver Signature Enforcement

Windows требует цифровую подпись для драйверов ядра. Это не прихоть Microsoft — единственный способ гарантировать, что код, получающий полный доступ к системе, действительно от заявленного разработчика и не был изменён. Когда DSE работает корректно, неподписанный драйвер просто не загрузится. Если его отключили или подменили — в систему может попать что угодно: кейлоггер, бэкдор, майнер.

Типичные сценарии, когда стоит проверить:

  • вы ставили «взломанную» программу, которая попросила отключить проверку подписи;
  • компьютер стал заметно тормозить без видимых причин;
  • антивирус ругается на системные файлы или драйверы;
  • вы получили ПК от кого-то и не знаете, что там натворили до вас.

Быстрая проверка через командную строку

Самый простой способ — встроенная утилита SigChecker из состава Windows SDK, но есть более быстрый путь. Откройте командную строку от администратора и введите:

  1. bcdedit /set testsigning off — если после выполнения вы получите сообщение «The operation completed successfully», значит, проверка подписи активна и была в нормальном состоянии. А вот если появится ошибка доступа или неожиданный ответ, это повод насторожиться.
  2. Теперь проверьте текущее состояние параметра:

Не рекомендую случайно включать тестовый режим, если вы до этого его не использовали — это может сломать загрузку некоторых легальных драйверов. В данном случае мы смотрим результат, но не сохраняем изменения.

Более надёжный способ проверить факт отключения DSE без изменения настроек:

  1. Откройте msinfo32 (нажмите Win+R, введите msinfo32).
  2. Перейдите в «Программная среда» → «Системная информация» и найдите строку «Test-Signing» или «NoInteractiveServices».
  3. Если видите, что параметр TESTSIGNING ON — DSE отключён, и любой неподписанный драйвер может загружаться.

Но это не самый глубокий метод. Бывает, что злоумышленники идут дальше и подменяют файлы ядра так, чтобы думали, что DSE работает, а на самом деле он молча пропускает вредоносный код.

Глубокая проверка системных файлов

Driver Signature Enforcement обеспечивается ядром Windows и цепочкой криптографических проверок. Ключевые файлы-участники:

  • ci.dll — библиотека целостности кода (Code Integrity);
  • ntoskrnl.exe — само ядро;
  • winload.efi / winload.exe — загрузчик ОС.

Если они подменены — DSE может быть выключена на уровне ядра, и проверки выше ничего не покажут. Вот как это выявить:

Шаг 1: Скачайте и запустите SigCheck

Официально утилита доступна как часть Windows SDK, но я бы советовал брать её из проверенных источников вроде сайта Sysinternals (Microsoft). Альтернатива — используние встроенной утилиты sfc /scannow, но она проверяет не все компоненты подписи. Лучше всего взять DriverView с NirSoft и приглядеться к списку драйверов:

  1. Скачайте DriverView с официального сайта NirSoft.
  2. Запустите от имени администратора.
  3. Отсортируйте по столбцу «Signed» / «Verified».
  4. Посмотрите, есть ли драйверы со значением «Not signed» или с подозрительным сертификатом.

Если среди загруженных драйверов есть неподписанные, но при этом вы не ставили их специально — скорее всего, DSE было отключено во время их установки или подмена произошла раньше.

Шаг 2: Проверьте целостность системы через DISM

Откройте PowerShell администратора и выполните:

  • DISM /Online /Cleanup-Image /CheckHealth — быстрый тест.
  • DISM /Online /Cleanup-Image /ScanHealth — более глубокий анализ, занимает 5–10 минут.
  • Если в отчёте появятся упоминания о повреждённых файлах ядра или хранилища компонентов, это тревожный сигнал.

Если DISM сообщает, что хранилище компонентов повреждено и не может быть восстановлено — возможно, файлы были подменены вручную.

Шаг 3: Анализ загрузочного сектора и загрузчика

Самые изощрённые атаки подменяют winload.efi. Проверить можно так:

  1. Убедитесь, что включён Secure Boot в UEFI. Если он выключен без вашего ведома — это красный флаг.
  2. В командной строке проверьте состояние: Confirm-SecureBootUEFI (в PowerShell). Должно быть True.
  3. Если False, а вы не отключали — проверьте настройки BIOS/UEFI и журналы событий.

Какие признаки указывают на подмену

Помимо инструментальной проверки, есть косвенные признаки, которые сложно заметить, но если вы здесь, значит, что-то уже напрягло:

  • Программы, которые «ломают» DSE (например, Driver Signature Enforcement Overrider), оставляют следы в реестре и папке C:\Windows\System32\drivers\ в виде временных файлов и модифицированных драйверов.
  • В журнале событий (eventvwr.msc) → «Журналы Windows» → «Система» ищите события с источников «CodeIntegrity» и «DeviceGuard». Если там есть события с идентификаторами 3033 или 3034 — значит, загружались неподписанные драйверы, что при работающем DSE невозможно.
  • Необъяснимое появление скрытых учётных записей или служб с названиями, похожими на системные, но с опечатками.

Если нашли хотя бы один из этих признаков, пора принимать меры.

Сравнение методов проверки: что выбрать

Разные подходы дают разную глубину анализа. Вот таблица, которая поможет сориентироваться:

Метод Сложность Что обнаруживает Надёжность
bcdedit + DriverView Низкая Явное отключение DSE, наличие неподписанных драйверов Средняя — не видит скрытую подмену ядра
DISM + sfc /scannow Средняя Повреждение системных файлов, изменение компонентов Высокая для стандартных атак
Проверка Secure Boot Низкая Отключение аппаратной проверки загрузчика Высокая на уровне загрузки
Анализ журналов Event Viewer Средняя Факты загрузки неподписанного кода (события 3033/3034) Очень высокая, но требует расшифровки
Проверка цифровых подписей через SigCheck Низкая Подмену конкретных файлов Высокая для анализа отдельных драйверов

Что делать, если обнаружили проблему

Конкретные шаги зависят от того, насколько глубоко проникновение и что именно вы защищаете.

Ситуация 1: DSE временно отключён, но файлы целы

Если вы видите, что TESTSIGNING ON, но DISM и sfc ничего не находят подозрительного, скорее всего, отключение сделали для установки какого-то легального, но без подписи драйвера (например, старое оборудование). В этом случае:

  1. Включите проверку подписи: bcdedit /set testsigning off, перезагрузитесь.
  2. Удалите или обновите драйверы, из-за которых отключали DSE.
  3. Убедитесь, что Secure Boot включён.
  4. После перезагрузки повторно проверьте через DriverView и журналы.

Ситуация 2: Найдены неизвестные неподписанные драйверы

Если в системе появились драйверы без подписи, и вы не ставили их осознанно:

  1. Сохраните их имена (правый клик → свойства в DriverView).
  2. Поищите в интернете информацию о конкретном файле. Часто вредоносные драйверы маскируются под системные имена с опечатками.
  3. Если это точно не ваш легальный драйвер — удалите файл вручную из System32\drivers и прочистите реестр (осторожно!) от ссылок на него.
  4. Запустите DISM /Online /Cleanup-Image /RestoreHealth и sfc /scannow.
  5. Меняйте пароли и проверяйте систему антивирусом с актуальными базами.

Ситуация 3: Подозрение на подмену ядра или winload.efi

Это самый серьёзный случай. Если вы видите, что Secure Boot отключен, но вы не отключали, или sfc постоянно находит и «исправляет» одни и те же файлы — возможно, атака на уровне загрузчика.

Рекомендации:

  • Отключите интернет, физически отсоедините сетевой кабель/Wi-Fi.
  • Сделайте загрузочную флешку с чистой Windows и с неё запустите проверку файлов (можно через WinPE).
  • Лучше всего — переустановка системы с форматированием системного раздела, потому что если загрузчик подменён, вы никогда не будете уверены в чистоте ОС.
  • После переустановки обязательно включите Secure Boot и проверьте, что DSE активна по умолчанию.

Частые ошибки при проверке и восстановлении

Люди часто натыкаются на следующие грабли:

  • Слепо отключают DSE «для установки программы», не понимая, что после этого любой драйвер станет доступен для загрузки, включая вредоносный.
  • Путают легальные драйверы без подписи и подозрительные. То, что драйвер не подписан, не всегда значит, что он вредоносный — но это повод внимательнее его изучить.
  • Запускают sfc /scannow и думают, что всё проверено. На самом деле sfc не видит подмену на уровне ядра, если она сделана хитро.
  • Игнорируют события в журнале, считая их техническими. А между тем там прямая информация о попытках загрузки неподписанного кода.
  • Не восстанавливают систему после удаления драйверов, оставляя дыры в реестре и конфигурации.

Рекомендации на будущее

Чтобы не попасть в подобную ситуацию снова:

  • Всегда держите Secure Boot включённым, если нет веских причин его отключать.
  • Не используйте программы, которые массово отключают DSE — они часто идут в комплекте с пиратским ПО и могут содержать закладки.
  • Регулярно смотрите в DriverView на предмет неподписанных драйверов, особенно после установки сомнительного софта.
  • Не игнорируйте предупреждения антивируса о системных драйверах — это может быть реальной угрозой.
  • Делайте резервные копии важных данных и образ системы, чтобы в случае серьёзного проникновения можно было быстро откатиться на известно чистое состояние.

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

Если вы заподозрили, что Driver Signature Enforcement был отключён или подменён, действуйте по такой схеме:

  1. Проверьте текущее состояние через msinfo32 и наличие TESTSIGNING ON.
  2. Запустите DriverView и поищите неподписанные драйверы. Запишите их имена.
  3. Проанализируйте журнал событий Windows на предмет событий CodeIntegrity 3033/3034.
  4. Запустите DISM и sfc для оценки целостности системных файлов.
  5. Убедитесь, что Secure Boot включён (особенно если вы не трогали UEFI).
  6. Если нашли подозрительные драйверы — удалите их, восстановите систему и проверьте антивирусом.
  7. Если подозрения серьёзные (подмена winload или ядра) — переустановите ОС с форматированием системного раздела.

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

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