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