BlueKeep: patch-weekend для устаревшего зоопарка - как мы обновили всё включая WS2003
Экстренный патчинг под CVE-2019-0708: обновили все хосты включая Windows 2008 R2, на трёх WS2003 включили NLA как временную меру до полной замены.
Microsoft выпустила внеплановые патчи для Windows XP/2003/2008 против CVE-2019-0708 (BlueKeep), включая системы вне поддержки
Когда в середине мая мы публиковали результаты аудита периметра по BlueKeep, финал был открытым: патч установлен не везде, PoC-а в открытом доступе нет, окно для спокойного закрытия существует. С тех пор Microsoft выпустила внеплановые патчи - и для XP, и для Server 2003/2008, то есть для систем, которые официально вышли из поддержки. Это сигнал достаточно громкий, чтобы организовать экстренный patch-weekend прямо сейчас, не откладывая на следующий Patch Tuesday.
Мы его и организовали. Ниже - без прикрас о том, как это прошло.
Зачем внеплановый выходной
В рамках managed-сопровождения у нас несколько десятков клиентских инфраструктур в работе. Большинство - с регулярным патчингом и WSUS или аналогом. Но «регулярный» здесь означает «по расписанию», а не «экстренно». Стандартный цикл - одобрение обновлений раз в месяц, тестирование на пилотной группе, раскатка. На этот раз такой темп не подходил.
CVE-2019-0708 интересна именно тем, что уязвимость живёт до аутентификации: для эксплуатации достаточно сетевого доступа к порту. NLA как смягчающая мера поднимает аутентификацию чуть раньше в потоке соединения и усложняет жизнь атакующему, но это именно смягчение, не закрытие. Полное закрытие - только патч.
Поэтому - patch-weekend. Договорились с клиентами, предупредили о возможных перезагрузках, выставили maintenance-окна и пошли.
Что обновляли и как
Основная масса хостов - Windows Server 2012 R2 и 2016, плюс Windows 7 и 10 на рабочих станциях там, где инфраструктура смешанная. Здесь всё прошло штатно: WSUS одобрен, обновление встало, перезагрузка, проверка RDP - работает. Никаких сюрпризов.
Интереснее было с устаревшим стеком.
Windows Server 2008 R2. Этих хостов оказалось больше, чем хотелось бы. Терминальные серверы для бухгалтерии, серверы под специализированное ПО, одна виртуалка с 1С-компонентом, который «запускается только на 2008». Патч для 2008 R2 Microsoft выпустила штатный, через Windows Update / WSUS - так что технически обновление не сложнее, чем на свежей ОС. Сложность была в логистике: часть хостов обновлялась вручную, потому что WSUS у этих клиентов не покрывал весь парк, а ручной патчинг требует живого человека у каждого хоста. Раскатали за субботу.
Windows Server 2003. Вот здесь была история. Три хоста у одного клиента - файловый сервер, принт-сервер и ещё один с каким-то самописным учётным ПО двухтысячных годов. Microsoft выпустила патч и для 2003 - что само по себе редкость - но после его установки один из хостов при перезагрузке ушёл в цикл синего экрана. Пришлось откатиться, диагностировать, выяснить что у хоста конфликт с каким-то старым драйвером, и повторить установку после удаления этого драйвера. В итоге патч встал, хост поднялся - но часа четыре потеряли.
На двух оставшихся WS2003 патч встал чище, но мы приняли решение дополнительно включить NLA - не как замену патчу, а как дополнительный слой на период до полной замены этих машин. Потому что три хоста на Server 2003 в production в 2019 году - это техдолг, который надо закрывать, и NLA здесь скорее напоминание об этом долге, чем полноценная защита.
Что не обновилось и почему
Несколько хостов пришлось оставить на потом - не потому что забыли, а потому что maintenance-окно не позволяло перезагрузить их в выходные. Один - контроллер домена на критичном клиенте, у которого нет резервного DC в той же локации, и перезагрузка в выходные означала бы недоступность аутентификации для части сервисов. Договорились на среду ночью. Другой - хост с производственным ПО, которое нельзя останавливать без согласования с вендором.
Оба хоста пока без патча, но с закрытым 3389 снаружи и с NLA. Это не закрытие, но это снижение поверхности атаки до момента, когда патч можно поставить штатно.
Итог по выходным
Patch-weekend закрыли не идеально - часть хостов перенесена, один хост потребовал нетривиального вмешательства - но основная масса уязвимых машин обновлена. Те, кто остался, - под контролем с ограниченной поверхностью атаки.
Отдельный вывод, который стоит зафиксировать: внеплановый патчинг по критическому CVE обнажает организационные проблемы не хуже любого аудита. Кто не покрыт WSUS, у кого нет резервного контроллера домена, у кого хосты на Server 2003 без плана замены - всё это выходит на поверхность, когда надо обновить «весь парк за выходные». Это неприятно, но полезно.
PoC для BlueKeep в открытом доступе отсутствует. Работы по исследованию уязвимости продолжаются, и публикации в security-комьюнити говорят о том, что эксплойт реализуем. Патчить надо сейчас.