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

Проверка хранилища сертификатов 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).

  1. Скачайте утилиту Sigcheck с сайта Microsoft (https://technet.microsoft.com/ru-ru/sysinternals/bb897441.aspx)
  2. Распакуйте архив Sigcheck.zip в произвольный каталог (например, C:installsigcheck)
  3. Откройте командную строку и перейдите в каталог с утилитой: cd C:installsigcheck
  4. В командной строке выполните команду
    sigcheck.exe–tv
    , или
    sigcheck64.exe –tv
    (на 64 битных версиях Windows)
  5. При первом запуске утилита sigcheck попросит принять условия использованияУтилита Sigcheck от Sysinternals - провера сертификатов и подписей
  6. После этого утилита скачает с сайта Microsoft и поместит свой каталог архив authrootstl.cab со списком корневых сертификатов MS в формате Certification Trust List.
  7. Утилита сравнит список сертификатов установленных на компьютере со списком корневых сертификатов MSFT в файле authrootstl.cab. В том случае, если в списке коревых сертификатов компьютера присутствуют сторонние сертификаты, SigCheck выведет их список. В нашем примере на компьютере имеется один сертификат с именем test1 (это самоподписанный сертификат созданный с помощью командлета New-SelfSignedCertificate, который я создавал для подписывания кода PowerShell скрипта)sigcheck выявление "левых", недовереных и поддельных сертификатов в хранилище корневых сертификатов
  8. Каждый найденный сторонний сертификат стоит проанализировать на предмет необходимости его присутствуя в списке доверенных. Желательно также понять какая программа установила и использует его.
    Совет. В том случае, если компьютер входит в домен, скорее всего в списке «сторонних» окажутся корневые сертификаты внутреннего центра сертификации CA, и другие сертификаты, интегрированные в образ системы или распространенные групповыми политиками, которые с точки зрения MSFT могут оказаться недоверенными.
  9. Чтобы удалить данный сертификат их списка доверенных, откройте консоль управления сертификатами (msc) и разверните контейнер Trusted Root Certification Authorities (Доверенные корневые центры сертификации) -> Certificates и удалите сертификаты, найденные утилитой SigCheck.Удаление недоверенных сертификатов

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

Windows 7
Проверка хранилища сертификатов Windows на наличие недоверенных корневых сертификатов