Перевірка сховища сертифікатів 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: \ install \ sigcheck \)
  3. Відкрийте командний рядок і перейдіть в каталог з утилітою: cd C: \ install \ sigcheck \
  4. У командному рядку виконайте команду sigcheck.exe-tv, або sigcheck64.exe -tv (На 64 бітових версіях Windows)
  5. При першому запуску утиліта sigcheck попросить прийняти умови використання
  6. Після цього утиліта завантажить з сайту Microsoft і помістить свій каталог архів authrootstl.cab зі списком кореневих сертифікатів MS в форматі Certification Trust List.Порада. Якщо на комп'ютері відсутня пряме підключення до Інтернету, файл authrootstl.cab можна скачати самостійно за посиланням http://download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab і вручну помістити в каталог з утилітою SigCheck
  7. Утиліта порівняє список сертифікатів встановлених на комп'ютері зі списком кореневих сертифікатів MSFT в файлі authrootstl.cab. У тому випадку, якщо в списку корових сертифікатів комп'ютера присутні сторонні сертифікати, SigCheck виведе їх список. У нашому прикладі на комп'ютері є один сертифікат з ім'ям test1 (Це самоподпісанний сертифікат створений за допомогою командлета New-SelfSignedCertificate, який я створював для підписування коду PowerShell скрипта)
  8. Кожен знайдений сторонній сертифікат варто проаналізувати на предмет необхідності його присутнім в списку довірених. Бажано також зрозуміти яка програма встановила і використовує його.Порада. У тому випадку, якщо комп'ютер входить до домену, швидше за все в списку "сторонніх" виявляться кореневі сертифікати внутрішнього центру сертифікації CA, і інші сертифікати, інтегровані в образ системи або поширені груповими політиками, які з точки зору MSFT можуть виявитися недовірених.
  9. Щоб видалити даний сертифікат їхнього списку довірених, відкрийте консоль управління сертифікатами (msc) І розгорніть контейнер Trusted Root Certification Authorities (Довірені кореневі центри сертифікації) -> Certificates і видаліть сертифікати, знайдені утилітою SigCheck.

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