В системе планирования бизнес-ресурсов Dynamics 365, ныне предлагаемой Microsoft как облачный сервис, была обнаружена возможность утечки сертификата и закрытого ключа, используемых для шифрования TLS-трафика между пользователем и сервером. Благодаря настойчивости исследователя упущение было исправлено — почти через четыре месяца после подачи им первого уведомления о проблеме.

В своей записи на Medium.com Маттиас Гливка (Matthias Gliwka) пишет, что доступ к ПО Dynamics 365, размещенному в Microsoft Azure, осуществляется через панель управления. Этот инструмент позволяет, в числе прочего, напрямую связываться по RDP с машиной, на которой запущено бизнес-приложение, если требуется отладка.

Обычно рабочий процесс разделен как минимум на три этапа: разработка, приемочное тестирование, выполняемое пользователем, и производство. Среда тестирования, создаваемая с помощью Dynamics 365 (называемая также «песочница»), схожа с производственной — за одним исключением. По словам Гливки, производственные серверы доступны лишь через веб-интерфейс, а «песочница» допускает административный RDP-доступ.

Заинтересовавшись настройками сервера, размещающего «песочницу», исследователь осуществил доступ к этой системе по RDP и к своему удивлению обнаружил, что встроенный менеджер сертификатов содержит действительный SSL-сертификат для домена sandbox.operations.dynamics.com и соответствующий закрытый ключ. Как оказалось, этот изданный УЦ Microsoft сертификат, используемый для шифрования трафика между пользователями Dynamics 365 и сервером, является общим для всех сэндбокс-сред — даже зарезервированных для других клиентов компании.

Проверив возможность экспорта закрытого ключа с помощью нехитрой программы, Гливка получил его за пару минут — несмотря на то, что на Windows закрытые ключи по умолчанию помечены как неэкпортируемые и менеджер сертификатов послушно следует таким указаниям.

Вывод был очевиден: заполучив сертификат TLS и ключ, автор атаки сможет из положения «человек посередине» не только просматривать трафик между пользователем и сервером, но также модифицировать его и внедрять вредоносный контент. Более того, поскольку цифровой сертификат подлинный, подмена ответов сервера не вызовет подозрений или ошибок на стороне клиента.

Гливка не преминул отметить, что пользователи «песочниц» — ценные объекты для атакующего. Они обычно занимают ключевые посты в организации и владеют важной информацией, да и сама сэндбокс-система зачастую содержит такие данные — это помогает  приблизить тестовое окружение к реальным условиям. По словам Гливки, с той же целью в Dynamics 365 предусмотрена функция, позволяющая копировать производственную базу данных в «песочницу».

Слив сертификата и закрытого ключа TLS был обнаружен 14 августа. Отчет был подан в Microsoft через три дня, но отклика не последовало. В подтверждение своей находки Гливка отослал зашифрованную копию закрытого ключа, который ему удалось получить, и запросил подтверждение. На сей раз ответ пришел — исследователя попросили детализировать проблему, которую в компании восприняли, как обход прав администратора.

Дальнейшие попытки Гливки убедить Microsoft в серьезности ситуации результата не дали, и ему пришлось обратиться к посторонней помощи: привлечь к переговорам знакомого из УЦ Microsoft и журналистов, один из которых обратился с запросом в отдел Microsoft по связям с общественностью и создал соответствующую запись в баг-трекере Mozilla. Итогом всех этих усилий стал ответ Microsoft от 5 декабря: все wildcard-сертификаты (с поддержкой поддоменов), ассоциированные с Dynamics 365, отозваны и заменены сертификатами, привязанными к конкретному клиентскому окружению.

Категории: Аналитика, Уязвимости