CVE-2020-0688
Microsoft Exchange Server
2021-11-03
Microsoft Exchange Server Validation Key fails to properly create unique keys at install time, allowing for remote code execution.
Технический анализ и план устранения
Суть уязвимости
Уязвимость существует в Microsoft Exchange Server 2010, 2013, 2016 и 2019. При установке сервера генерируется не уникальный, а один и тот же ключ проверки (validationKey) и ключ дешифрования (decryptionKey) для машинного ключа ViewState на всех серверах. Аутентифицированный злоумышленник может создать специальный запрос к серверу Exchange (OWA), используя известные статические ключи, что приведет к десериализации недоверенных данных и выполнению произвольного кода на сервере с правами SYSTEM.
Как исправить
Установите последние накопительные обновления (Cumulative Updates) для вашей версии Exchange Server, которые содержат исправление. Патч был выпущен в феврале 2020 года.
- Определите точную версию Exchange Server (например, Exchange Server 2016 CU17).
- Установите соответствующее накопительное обновление (CU) или обновление безопасности:
- Exchange Server 2010: Установите Обновление безопасности для Exchange Server 2010 с пакетом обновления 3 (SP3) (KB4536989). Обратите внимание: Exchange 2010 вышел из расширенной поддержки.
- Exchange Server 2013: Установите Обновление безопасности для Exchange Server 2013 CU23 (KB4536988).
- Exchange Server 2016: Установите Обновление безопасности для Exchange Server 2016 CU16 и CU17 (KB4536987).
- Exchange Server 2019: Установите Обновление безопасности для Exchange Server 2019 CU5 и CU6 (KB4536987).
Важно: Перед установкой обновлений убедитесь, что у вас есть актуальная резервная копия сервера. Установка может потребовать перезагрузки.
Временное решение
Если немедленная установка патча невозможна, примените следующие меры:
-
Ограничьте доступ к Outlook Web App (OWA) и ECP:
- Настройте брандмауэр (например, Windows Firewall) или сетевой экран, чтобы разрешить доступ к портам OWA (обычно 443) и ECP только с доверенных IP-адресов (офисные сети, VPN).
- Пример правила Windows Firewall (PowerShell):
powershell New-NetFirewallRule -DisplayName "Allow OWA from Trusted" -Direction Inbound -Protocol TCP -LocalPort 443 -RemoteAddress 192.168.1.0/24, 10.0.0.0/8 -Action Allow
-
Используйте WAF (Web Application Firewall):
- Настройте правила в WAF (например, ModSecurity, Azure WAF, или аппаратном решении) для блокировки HTTP-запросов, содержащих в параметрах (
__VIEWSTATE,__VIEWSTATEGENERATOR,__EVENTVALIDATION) подозрительные или известные вредоносные payloads, эксплуатирующие эту уязвимость.
- Настройте правила в WAF (например, ModSecurity, Azure WAF, или аппаратном решении) для блокировки HTTP-запросов, содержащих в параметрах (
-
Мониторинг (Компенсирующий контроль):
- Включите детальное аудитлоггирование IIS на сервере Exchange и настройте SIEM-систему на обнаружение аномальных запросов к
/owa/и/ecp/, особенно содержащих длинные или закодированные строки в параметрах ViewState. - Регулярно проверяйте журналы событий Windows и IIS на предмет ошибок ASP.NET, связанных с десериализацией.
- Включите детальное аудитлоггирование IIS на сервере Exchange и настройте SIEM-систему на обнаружение аномальных запросов к