1. Описание зафиксированной угрозы 


14 мая 2019 года, компания Microsoft опубликовала уведомление о новой уязвимости, обнаруженной в службе удаленных рабочих столов (Remote Desktop Services - RDS), ранее известной как Terminal Services. Данная служба позволяет пользователю контролировать удаленный компьютер или виртуальную машину через сетевое соединение по протоколу RDP (Remote Desktop Protocol). При этом, сам протокол RDP не подвержен уязвимости. Также уязвимости не подвержены системы с ОС Windows 8 и 10. Опасность уязвимости заключается в том, что она возникает на этапе преаутентификации и не требует пользовательского взаимодействия. Таким образом, она может передаваться от одной уязвимой системы к другой, заражая всё больше узлов, что схоже с характером распространения вируса WannaCry. На сегодняшний (29.05.19) день, пока не известно о случаях успешной эксплуатации уязвимости в реальных атаках, однако зафиксированы факты сканирования сети Интернет на предмет выявления уязвимых систем отдельными группировками.

В связи с обнаружением данной уязвимости, компания Microsoft пошла на несколько беспрецедентных шагов, во-первых – экстренный патч для версий Windows 7, 2008 и 2008 R2 был выпущен до официального "вторника обновлений", а во-вторых патч доступен даже для неподдерживаемых уязвимых систем, таких как Windows Server 2003 и Windows XP. Если в Вашей корпоративной инфраструктуре используются рабочие станции с уязвимыми версиями ОС, то JETCSIRT рекомендует немедленно установить официальные обновления от компании Microsoft, поскольку появление рабочего эксплоита - лишь вопрос времени.
В связи с обнаружением данной уязвимости, компания Microsoft пошла на несколько беспрецедентных шагов, во-первых – экстренный патч для версий Windows 7, 2008 и 2008 R2 был выпущен до официального "вторника обновлений", а во-вторых патч доступен даже для неподдерживаемых уязвимых систем, таких как Windows Server 2003 и Windows XP. Если в Вашей корпоративной инфраструктуре используются рабочие станции с уязвимыми версиями ОС, то JETCSIRT рекомендует немедленно установить официальные обновления от компании Microsoft, поскольку появление рабочего эксплоита - лишь вопрос времени.

2. Технические детали угрозы


На сегодняшний (29.05.19) день технические детали уязвимости активно изучаются. Известно, что она возникает, когда не аутентифицированный злоумышленник подключается к целевой системе по RDP и отправляет специально созданный запрос к службе удаленных рабочих столов (RDS). Уязвимость возникает на уровне пре-аутентификации и не требует никакого взаимодействия со стороны пользователя. Злоумышленник, которому удастся успешно проэксплуатировать уязвимость, получит возможность исполнить произвольный код на целевой системе. После эксплуатации уязвимости злоумышленнику будут доступны следующие действия:

  • Установка и удаление программ;
  • Просмотр, модификация и удаление данных;
  • Создание новых учетных записей с полными пользовательскими правами.
Исследователи из компании McAfee провели анализ официальных патчей от Microsoft для выяснения технических деталей уязвимости. Согласно исследованию экспертов McAfee, исправление Microsoft направлено на функции _IcaBindVirtualChannels и _IcaRebindVirtualChannels в уязвимом RDP драйвере termdd.sys. В процессе установления RDP сессии между клиентом и оконечной станцией, данные, описывающие подключение, передаются по виртуальным каналам Virtual Channel (VC). Эти каналы являются двунаправленными и бывают статическими (SVC) и динамическими (DVC). В Windows Server 2000 было определено всего 32 SVC, и чтобы обойти это ограничение – выделили 1 SVC, в котором были определены DVC. SVC создаются в начале сессии и остаются активными до ее завершения, тогда как DVC каналы - создаются и удаляются по требованию.
Уязвимость заключается в том, что в реализации протокола RDP от Microsoft (MS-RDPBCGR) существует SVC канал с именем “MS_T120”, который всегда создается под номером 31. Этот канал используется только разработчиками Microsoft, и не должно быть случаев легитимного использования данного SVC канала обычными пользователями. При установлении RDP соединения, сервер никак не проверяет имя канала, который предоставляет клиент. Поэтому потенциальный злоумышленник может инициировать RDP сессию с именем SVC канала “MS_T120” и номером отличным от стандартного 31.
Такая манипуляция с именем канала приводит к повреждению динамически распределяемой памяти в драйвере termdd.sys и возможности удаленного исполнения кода Remote Code Execution (RCE).
Эксперты McAfee, опубликовавшие данный материал, подтверждают, что после установки официального патча от Microsoft, рабочая станция перестает быть подвержена уязвимости.
Патч от Microsoft добавляет проверку параметров соединения, инициированного клиентом и пропускает канал с именем “MS_T120” только если его номер 31.
Кроме инженеров McAfee, об успешной эксплуатации уязвимости заявили также исследователи компании Checkpoint и Лаборатории Касперского. С помощью уязвимости, им удалось вызвать BSOD (Blue Screen of Dead) на уязвимой рабочей станции.

3. Рекомендации по устранению


Рекомендуется выполнить следующие действия (одно или несколько в зависимости от применимости к ИТ-процессам организации) для закрытия уязвимости:  как можно быстрее установить официальное обновление безопасности от Microsoft: для поддерживаемых систем (Windows 7, Server 2008, 2008 R2): https://portal.msrc.microsoft.com/en-US/securityguidance/advisory/CVE-2019-0708 o для неподдерживаемых систем (Windows XP, Server 2003): https://support.microsoft.com/ru-ru/help/4500705/customerguidance-for-cve-2019-0708  отключить службу Remote Desktop Services (RDS) если она не используется;  включить функционал Network Level Authentication (NLA), чтобы заблокировать попытки не аутентифицированных подключений; (Внимание! Возможна потеря RDP соединений для не доменных рабочих станций)  заблокировать или ограничить TCP порт 3389 на межсетевом экране, который защищает периметр; (Внимание! Если Вы используете RDP сервис на нестандартном порту, отличным от 3389, то уязвимость все равно может быть проэксплуатирована.) Стоит отметить, что даже если Вы планируете выключить службу RDS или заблокировать порт 3389 на МСЭ, то все равно необходимо установить официальные патчи от Microsoft! Также, специалисты компании NCC Group разработали первую сигнатуру для Suricata, определяющую эксплуатацию уязвимости BlueKeep.

4. Ссылки