Пользователям Windows необходимо обращать внимание на подозрительные сертификаты сторонних производителей, установленные на их компьютерах. Используя поддельные самоподписанные сертификаты, добавленные пользователем в хранилище корневого центра сертификации, злоумышленники могут осуществлять атаки типа «человек посередине» (MiTM), перехватывать трафик (в том числе HTTPS), разрешать запуск вредоносных программ или скриптов и т. д.

Чтобы проверить хранилище сертификатов Windows на наличие недоверенных и подозрительных сертификатов сторонних производителей, можно использовать команду sigcheck инструмент. Этот инструмент позволяет сравнить список сертификатов, установленных на вашем компьютере, со списком доверенных корневых центров сертификации, который ведет компания Microsoft (в рамках программы Microsoft Trusted Root Certificate Program).

  1. Скачайте архив утилиты Sigcheck (https://learn.microsoft.com/en-us/sysinternals/downloads/sigcheck) и распакуйте его на локальный диск;
  2. Откройте командную строку и перейдите в каталог, в котором находится инструмент:
    cd c:\tools\sigcheck
  3. Проверьте наличие сертификатов сторонних производителей в хранилище Machine\root:
    sigcheck64.exe -tv root
    В этом примере инструмент показал, что в корневом ЦС машины установлены два сторонних сертификата DESKTOP-XXXXX и Windows Admin Center sigcheck проверка корневых сертификатов
  4. Чтобы проверить все хранилища сертификатов компьютера:
    .\sigcheck64.exe -tv *
    У пользователя могут быть установлены собственные сертификаты (это хранилище сертификатов, отличное от системного). Следующая команда выводит список всех подозрительных сертификатов, установленных в хранилище сертификатов текущего пользователя (добавьте параметр -u (пользователь)):
    \sigcheck64.exe -tuv *
    sigcheck64.exe - список сертификатов пользователя

    Некоторые вредоносные программы, которые не могут установить сертификат в системное хранилище, устанавливают его в хранилище сертификатов пользователя.

Sigcheck сравнивает список сертификатов, установленных на компьютере, со списком доверенных корневых сертификатов на сайте Microsoft и отображает только те сертификаты, которых нет в этом списке. В автономной среде (без прямого подключения к Интернету) может потребоваться вручную загрузить и скопировать файл authrootstl.cab файл (http://download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab), содержащий список корневых сертификатов в формате Certification Trust List, в папку инструмента. Это позволяет выполнить автономную проверку хранилища сертификатов.

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

На компьютерах, подключенных к домену, некоторые корневые сертификаты можно установить с помощью групповой политики (обычно это корневые сертификаты внутреннего центра сертификации).

Скопируйте отпечаток подозрительного сертификата из вывода sigcheck и удалите сертификат из хранилища с помощью команды:

certutil –delstore Root CB19F3F57A4EDB004059DEE436A1989D04275196

certutil - удалить корневой ЦС из cmd

Вы также можете удалить сертификат, используя компьютерную программу (certlm.msc) или пользователя (certmgr.msc) оснастка «Управление сертификатами».

Разверните Доверенные корневые центры сертификации -> Сертификаты и удалите сертификаты, найденные инструментом SigCheck.

Удаление корневого сертификата системы в Windows

В этом примере я удалил самоподписанный сертификат, созданный с помощью команды New-Self-Signed-Certificate для подписи кода сценария PowerShell.

Мы рекомендуем регулярно проверять хранилище сертификатов на компьютере, особенно на OEM-устройствах с предустановленной Windows (производители часто включают свои корневые сертификаты в образы OEM-версий ОС).