Найти тему
WinITPro.ru - Блог админа

Как проверить хранилище сертификатов Windows на наличие недоверенных корневых сертификатов

Пользователям Windows все более тщательное внимание стоит уделать установленным на компьютере сертификатам. Недавние скандалы с сертификатами Lenovo Superfish, Dell eDellRoot и Comodo  PrivDog лишний раз свидетельствуют о том, что пользователю нужно быть внимательным не только при установке новых приложений, но и четко понимать, какое ПО и сертификаты предустановлены в системе производителем оборудования. Через установку поддельных или специально сгенерированных сертификатов злоумышленники могут осуществить атаки MiTM (man-in-the-middle), перехватывать трафик (в том числе HTTPS), разрешать запуск вредоносного ПО и скриптов и т.п.

Как правило такие сертификаты устанавливаются в хранилище  доверенных корневых сертификатов Windows (Trusted Root Certification Authorities). Разберемся, каким образом можно проверить хранилище сертификатов Windows на наличие сторонних сертификатов.

В общем случае в хранилище сертификатов Trusted Root Certification Authorities должны присутствовать только доверенные сертификаты, проверенные и опубликованные Microsoft в рамках программы Microsoft Trusted Root Certificate Program. Для проверки хранилища сертификатов на наличия сторонних сертификатом можно воспользоваться утилитой Sigcheck (из набора утилит Sysinternals).

  • Скачайте утилиту Sigcheck с сайта Microsoft (https://technet.microsoft.com/ru-ru/sysinternals/bb897441.aspx)
  • Распакуйте архив Sigcheck.zip в произвольный каталог (например, C:\install\sigcheck\)
  • Откройте командную строку и перейдите в каталог с утилитой: cd C:\install\sigcheck\
  • В командной строке выполните команду sigcheck.exe–tv, или sigcheck64.exe –tv (на 64 битных версиях Windows)

При первом запуске утилита sigcheck попросит принять условия использования

-2

Утилита сравнит список сертификатов установленных на компьютере со списком корневых сертификатов MSFT в файле authrootstl.cab. В том случае, если в списке коревых сертификатов компьютера присутствуют сторонние сертификаты, SigCheck выведет их список. В нашем примере на компьютере имеется один сертификат с именем test1 (это самоподписанный сертификат созданный с помощью командлета New-SelfSignedCertificate, который я создавал для подписывания кода PowerShell скрипта)

  • Каждый найденный сторонний сертификат стоит проанализировать на предмет необходимости его присутствуя в списке доверенных. Желательно также понять какая программа установила и использует его. Совет. В том случае, если компьютер входит в домен, скорее всего в списке «сторонних» окажутся корневые сертификаты внутреннего центра сертификации CA, и другие сертификаты, интегрированные в образ системы или распространенные групповыми политиками, которые с точки зрения MSFT могут оказаться недоверенными.
-3

Чтобы удалить данный сертификат их списка доверенных, откройте консоль управления сертификатами (msc) и разверните контейнер Trusted Root Certification Authorities (Доверенные корневые центры сертификации) -> Certificates и удалите сертификаты, найденные утилитой SigCheck.

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

Источник