Весной 2018 года пользователи Windows начали сталкиваться с ошибкой, которая ранее практически не встречалась.
Вскоре выяснилось, что сообщение «Еncryption oracle remediations» возникало при попытке осуществить соединение клиентского ПК с удалённой машиной, и происходило это при следующих обстоятельствах:
Рассмотрим причины возникновения ошибки и как можно исправить ситуацию.
Итак, мы уже знаем, что на многих версиях Виндовс (серверных вариантов 2016/2012/2008, за исключением 2013, а также клиентских, начиная с 7) без установленных кумулятивных патчей, если вы пытаетесь осуществить соединение с удалённым ПК по RDS/RDP, может возникнуть проблема Remote Desktop connection.
Другими словами, при удалённом подключении к компьютеру во время процедуры проверки подлинности шифрования произошла ошибка CredSSP, причиной которой может быть несовпадение протоколов шифрования. Это происходит потому, что на одной из машин (клиентской или удалённой) не установлены соответствующие обновления, вышедшие после марта 2018 года.
Именно тогда Microsoft начала распространять обновление, направленное на защиту выявленной уязвимости протокола CredSSP, грозящей вероятностью удалённого выполнения кода злоумышленниками. Технические детали проблемы достаточно подробно приведены в бюллетене CVE2018-0886. Спустя два месяца вышло ещё одно обновление, вводившее по умолчанию запрет на возможность клиентской машины Windows связываться с удалённым сервером, если на нём версия протокола CredSSP не была пропатчена мартовским обновлением.
То есть если у вас стоит клиентская Windows с вовремя установленными майскими обновлениями, а вы совершаете попытку соединиться с удалёнными серверами, на которых, начиная с весны 2018 года, не производилась установка кумулятивных обновлений безопасности, такие попытки будут заканчиваться аварийно. При этом клиентская машина получит сообщение о невозможности выполнить удалённое подключение вида CredSSP.
Итак, причиной возникновения ошибки может оказаться исправление разработчиками протокола шифрования CredSSP, появившееся в результате выхода следующих обновлений:
В указанном перечне указаны номера обновлений, вышедших в мае 2018 года, в настоящее время необходимо устанавливать более свежие пакеты накопительных (их ещё называют кумулятивными) обновлений. Выполнить эту операцию можно несколькими способами. Например, обратившись к службе Windows Update, базирующейся на серверах разработчика, или с использованием локального сервера WSUS. Наконец, вручную скачать необходимые заплатки безопасности можно через Microsoft Update Catalog (это каталог обновлений Виндовс).
В частности, для поиска обновлений для своего компьютера, на котором установлена «десятка» сборки 1803, за май 2020 года поисковый запрос должен иметь следующий вид: windows 10 1803 5/*/2020.
Существует два пути выхода из сложившейся ситуации. Как нетрудно догадаться, один из них – удаление обновлений безопасности на клиентском компьютере, установленных после марта 2018 года. Разумеется, такой шаг считается весьма рискованным и настоятельно не рекомендуется, поскольку имеются другие варианты решения проблемы. Но он – самый простой в исполнении, и его можно использовать для однократной попытки доступа к удалённой машине.
А теперь рассмотрим альтернативные «правильные» варианты исправления ошибки, возникающей при проверке подлинности CredSSP.
Один из них – отключить (одноразово) процедуру проверку версии CredSSP на удалённом ПК во время попытки соединения по RDP. В этом случае вы остаётесь защищёнными, патчи остаются установленными, риск есть только во время сеанса связи.
Алгоритм действий:
Выключение политики EncryptionOracleRemediation позволит вашему компьютеру подключаться даже к непропатченным удалённым ПК и серверам без наличия свежих обновлений безопасности.
Рассмотрим, как работает политика EOR. Она имеет три уровня защиты от уязвимостей протокола CredSSP при отсутствии патчей:
Отметим, что на некоторых клиентских машинах (например, домашней версии Виндовс) редактор локальных политик в сборку не включён. В этом случае внесение изменений, позволяющих связываться с удалёнными машинами без пропатченных обновлений на серверной стороне, вносится вручную правкой реестра.
Для этого вводим в консоль «Выполнить» строку:
REG ADD HKML\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2
Эту процедуру можно применить ко всем рабочим станциям, используя доменную GPO (консольный запуск – gpmc.msc), а можно применить скрипт PowerShell (чтобы получить перечень рабочих станций, принадлежащих данному домену, можно воспользоваться командлетом Get-ADComputer, входящим в состав RSAT-AD-PowerShell) следующего содержания:
Import-Module ActiveDirectory
$PSs = (Get-ADComputer -Filter *).DNSHostName
Foreach ($computer in $PCs) {
Invoke-Command -ComputerName $computer -ScriptBlock {
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2
}
}
Но чтобы избежать лишнего риска, необходимо сразу после подключения к удаленной машине при наличии соответствующих прав установить актуальные обновления, используя службу Windows Update (она должна быть включена). Эту операцию можно выполнить вручную, скачав свежие кумулятивные обновления и выполнив их установку в соответствии с указанным ранее алгоритмом.
Если вы хотите исправить ошибку шифрования CredSSP на Виндовс XP/Server 2003, которые в настоящее время уже не поддерживаются, но в силу определённых обстоятельств вами используются, необходимо все эти машины пропатчить Embedded POSReady 2009.
Мы не упомянули ещё об одном сценарии возникновения ошибочного сообщения «Еncryption oracle remediation» – когда с удалённым сервером всё в порядке, а непропатченным оказывается клиентский компьютер. Она будет возникать, если на удалённой машине активирована политика, блокирующая попытки установления связи с непропатченными клиентскими ПК.
В данном случае удалять обновление безопасности на клиенте не нужно. При неудачной попытке связаться с сервером следует проверить, когда последний раз на клиентской машине производилась установка кумулятивных обновлений безопасности. Выполнить проверку можно посредством использования модуля PSWindowsUpdate, а также выполнив команду в консоле:
gwmi win32_quickfixengineering |sort installed on -desk
Если дата достаточно старая (необязательно до марта 2018 года), установите самое свежее кумулятивное обновление для вашей версии Windows.
https://www.youtube.com/watch?v=bvWAh1Mq03s