11 июля 2023 года для операционной системы Windows 10 (актуальных версий) вышли очередные обновления безопасности, которые должны были закрыть уязвимость связанную с установкой драйверов, подписанных скомпроментированными сертификатами цифровой подписи. После установки этих накопительных обновлений, либо вышедших в последующие месяцы, у некоторых пользователей появились проблемы в работе устройств. Возникала ошибка с кодом 39, а в поле описания было указано, что Windows не может проверить цифровую подпись файла драйвера, так как сертификат был отозван. Эта проблема коснулась владельцев старых компьютеров, а точнее ноутбуков, так как нарушала работу Wi-Fi и/или Bluetooth.
Предыстория появления проблемы
В июне 2021 года здесь на Хабре появилась новость о том, что Microsoft признала, что подписала вредоносный драйвер. Там была ссылка на англоязычную статью специалиста по информационной безопасности компании G Data - Карстена Хана, где указывалось, что обнаружен руткит в драйвере, подписанный сертификатом с действительной цифровой подписью. Своё внимание к обнаруженной проблеме направили и другие специалисты в данной сфере. Изучение и понимание ситуации заняло пару лет, после чего в июле 2023 года здесь на Хабре появилась новость о том, что Хакеры использовали политику Microsoft для изменения даты подписи вредоносных драйверов до 29 июля 2015 года. Тут уже представлена расширенная информация об обнаруженной ранее проблеме и какое решение приняла Microsoft.
Так стало известно, что ещё с 2018-2019 годов существовали инструменты, разработанные китайскими хакерами, позволяющие внедрить руткит в файл драйвера устройства и подписать его сертификатом с действительной цифровой подписью. Но при этом, даты подписи изменённых драйверов необходимо было выбирать до 29 июля 2015 года. Злоупотребления обнаружили эксперты Sophos, Cisco Talos и Trend Micro. Были выявлены десятки поддельных сертификатов, которыми были подписаны сотни драйверов с внедрённым вредоносным кодом. В данной ситуации компания Microsoft решила отозвать старые сертификаты (до указанной выше даты), путём включения в июльский пакет обновления CRL (certificate revocation list - отзывной список сертификатов).
Последствия для пользователей
Если вы обладатель нового стационарного компьютера или ноутбука, выпущенного после 2015 года, то скорее всего входящие в него устройства работают под управлением таких же "свежих" драйверов. Вам не о чем беспокоится и установка очередных накопительных обновлений Windows 10, отзывающих какие-то там сертификаты для старых устройств, пройдёт для вам незамеченной. Но если ваш ПК более "древний", то после установки очередных накопительных обновлений Windows 10, вышедших в июле 2023 года или позже могут возникнуть проблем в работе устройств, так как ОС не допустить в работу драйвер с отозванной цифровой подписью.
Я владею ноутбуком HP Probook 4540s - модель из "бизнес серии", выпускавшаяся в 2012 году - старенький, тяжеленький, но меня устраивает. На нём тестирую свои сборки ОС семейства Windows. Хоть слово "сборка" иногда воспринимается негативно, но ничего противоестественного с образом WIM не делаю. Так, с помощью штатного инструмента DISM и своих скриптов, отключаю некоторые ненужные функции, удаляю "магазинные приложения", включаю .NET Framework 3.5 и интегрирую обновления. Всё это успешно делалось много лет, с периодичностью раз в год и не вызывало проблем. Очередная моя "сборка" устанавливалась на этот ноутбук и успешно проходила тест на работоспособность. Но этой зимой так не получилось.
Мой опыт обнаружения проблемы
В декабре 2023 года сделал свою сборку Windows 10 Enterprise LTSB 2016 (v1607), установил на свой ноутбук и после обновления драйверов обнаружил, что Wi-Fi и Bluetooth не работают. Причиной были ошибки описанные в начале статьи и ссылающиеся на отсутствующие (отозванные) сертификаты драйверов. Попробовал установить сборку этой же версии Windows 10, но сделанную мной годом ранее - всё работает с этими же драйверами. Однако, загрузка и установка обновлений из Центра обновлений Microsoft, после перезагрузки приводит к тому же результату. Подумал, что обновления в декабре выдались "неудачными" и решил подождать января. Подождал - то же самое.
Начал разбираться в проблеме и итерационным путём выяснять в каком же месяце в течение 2023 года вышли обновления нарушающие работу устройств. И выяснил! Сборка Windows 10 с интеграцией обновлений за июнь 2023 года является полностью рабочей, а с обновлениями за июль 2023 года - уже нет. Но тут же возникает опасность, что дай ОС выход в Интернет - она тут же обновится и станет нерабочей. Пробовал сделать сборку Windows 10 Enterprise LTSC 2019 (v1809) с интеграцией обновлений по январь 2024 года. Результат несколько лучше - не работал только Blurtooth. И опять же, итерационным путём выяснил, что крайние рабочие обновления были за июнь 2023 года.
Мой опыт решения проблемы
Первое, что пришло в голову, чтобы обойти проверку цифровой подписи драйверов устройств это отключить с помощью Локальных политик возможность такой проверки. Всё просто - выполнил gpedit.msc
и через редактор локальной групповой политики нашел соответствующий параметр в одном из разделов Административных шаблонов в Конфигурации компьютера и включил его. Даже, с помощью утилиты RegShot вычислил соответствующий твик реестра. Перегрузил и обнаружил, что решение оказалось нерабочим. Видимо в используемой версии Windows 10 данный параметр игнорируется.
Второе, что могло помочь судя по информации из различных источников в Интернете, это модификация сценария загрузки Windows, таким образом, чтобы ОС всегда загружалась в тестовом режиме с отключением цифровой подписи драйверов. При этом в углу экрана присутствовала бы надпись уведомляющая об этом. Это решение показалось мне "некрасивым", поэтому даже не стал его пробовать. Кто знает: есть ли какие-либо ограничения в работе ОС в тестовом режиме?
Я выбрал третий вариант: "досрочный" End of Support для используемых мною для создания своих сборок версий Windows 10. Собрал сборки с интеграцией накопительных обновлений по июнь 2023 года и на этом всё, финиш! Хотя всё же вложил последние зимние обновления .NET Framework 4.8 так как они ничего не портят. Также отключил с помощью локальных политик автоматическую проверку и установку обновлений. Соответствующий твик реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
;Отключить автоматическое обновление Windows
"NoAutoUpdate"=dword:00000001
Можно было бы отключить и службу Центра обновлений Windows, но тогда бы была утрачена возможность устанавливать драйверы устройств из репозитория Microsoft. При этом в интерфейсе настроек Windows остаётся кнопка Проверить обновления, нажатие на которую при доступе в Интернет приводит не только к проверке, но и к скачиванию и установке.
Мнение о решении Microsoft
Наверное, высшее руководство M$ считает, что компьютеры и ноутбуки старше 10 лет должны быть выкинуты пользователями на свалку, а взамен них куплены новые. Возможно, пользователи ноутбуков должны обратиться в специализированные мастерские, где им вскрыв корпус заменять плату комбинированного модуля Wi-Fi/Bluetooth на более новую со "свежими" драйверами.
Я считаю, что пользователь является собственником своего компьютера и должен иметь возможность принимать на себя риски, чтобы решать, допускать ли работу устройств с вероятностью присутствия руткита в драйвере или нет. Если не отключать автоматическое обновление, то какие есть способы решения изложенной здесь проблемы?