Компания Microsoft наконец рассказала, как китайские хакеры из группировки Storm-0558 смогли похитить ключ подписи, который затем был использован для взлома правительственных учреждений в США и странах Западной Европы. Оказалось, ключ был получен из аварийного дампа Windows (crash dump) после взлома корпоративной учетной записи инженера Microsoft.
Напомню, что о краже ключа MSA и атаке на Exchange Online и Azure Active Directory (AD) более двух десятков организаций по всему миру, включая правительственные учреждения в США и странах Западной Европы, стало известно в середине июля 2023 года.
Тогда сообщалось, что в середине мая злоумышленникам удалось получить доступ к учетным записям Outlook, принадлежащим примерно 25 организациям, а также к некоторым учетным записям пользователей, которые, вероятно, были связаны с этими организациями. Названия пострадавших организаций и госучреждений не были раскрыты. Известно лишь, что в числе пострадавших числятся Госдеп США и Министерство торговли страны.
Как объясняли в Microsoft, для этой атаки злоумышленники использовали токены аутентификации, подделанные с помощью криптографического ключа MSA (Microsoft account consumer signing key), который используется для подписания токенов. Благодаря 0-day проблеме, связанной с валидацией в GetAccessTokenForResourceAPI, хакеры смогли подделать чужие подписанные токены Azure Active Directory (Azure AD или AAD) и выдать себя за своих жертв.
При этом аналитики компании Wiz, специализирующейся на облачной безопасности, заявляли, что проблема затронула все приложения Azure AD, работающие с Microsoft OpenID v2.0. Дело в том, что украденный ключ мог подписать любой токен доступа OpenID v2.0 для личных учетных записей (например, Xbox, Skype) и мультитенантных приложений AAD при определенных условия.
В ответ на эти обвинения исследователей представители Microsoft подчеркнули, что компания отозвала все ключи MSA, чтобы гарантировать, что злоумышленники не имеют доступа к другим скомпрометированным ключам (что полностью предотвращает любые попытки создания новых токенов).
Также подчеркивалось, что после аннулирования украденного ключа специалисты Microsoft не обнаружили дополнительных доказательств, указывающих на несанкционированный доступ к учетным записям клиентов с использованием того же метода подделки токенов.
Однако до инцидента возможности ведения журналов были доступны только клиентам Microsoft, которые оплатили соответствующую лицензию Purview Audit (Premium). Из-за этого Microsoft столкнулась с серьезной критикой со стороны ИБ-сообщества, и эксперты заявили, что сама Microsoft мешала организациям оперативно обнаружить атаки Storm-0558.
В результате, под давлением сообщества и Агентства по кибербезопасности и защите инфраструктуры США (CISA), компания согласилась бесплатно расширить доступ к данным облачных журналов, чтобы защитники могли обнаруживать подобные попытки взлома в будущем.
Но все это время в Microsoft не объясняли, каким образом такой важный ключ MSA вообще мог оказаться в руках хакеров.
Как теперь сообщают в компании, расследование инцидента выявило, что ключ MSA попал в аварийный дамп, созданный после сбоя системы еще в апреле 2021 года.
По словам представителей Microsoft, обычно такие ключи доверяют только проверенным сотрудникам, прошедшим проверку на благонадежность, и лишь в том случае, если они используют выделенные рабочие станции, защищенные многофакторной аутентификацией и использованием аппаратных токенов безопасности.
Причем ради безопасности в этой среде не допускается использование электронной почты, конференц-связи и других средств для совместной работы, поскольку они являются наиболее распространенными векторами для атак с использованием малвари и фишинга. Кроме того, эта среда отделена от остальной сети Microsoft, где сотрудники имеют доступ к электронной почте и прочим инструментам.
Несмотря на то, что аварийный дамп не должен содержать ключи подписи, неизвестная ошибка (которая уже исправлена), связанная с состоянием гонки, привела к тому, что ключ попал в дамп, и этого никто не заметил из-за другой ошибке (тоже уже исправленной). Позже этот дамп был перенесен из изолированной сети компании в корпоративную среду отладки, доступную из интернета.
В итоге злоумышленники обнаружили ключ после успешного взлома корпоративной учетной записи неназванного инженера Microsoft, который имел к этой среде отладки. Сообщается, что взлом был осуществлен с помощью «вредоносного ПО, похищающего токены».
«Из-за политики хранения журналов у нас нет логов с конкретными доказательствами кражи данным злоумышленником, но это был наиболее вероятный механизм, с помощью которого злоумышленники могли получить ключ, — сообщает Microsoft. — Наши методы сканирования учетных данных не обнаружили присутствия [злоумышленников], но эта проблема уже исправлена».
Также в сообщении компании объясняется, как просроченный потребительский ключ мог использоваться для подделки токенов важных корпоративных предложений. Дело в том, что в 2018 году компания Microsoft представила новый фреймворк, который работал как с потребительскими, так и с корпоративными облачными приложениями. Однако еще одна ошибка помешала корректной работе программного интерфейса, который предназначался для криптографической проверки того, какой ключ использовать для корпоративных учетных записей, а какой — для потребительских.
Тогда компания обновила свою документацию и библиотеки, чтобы разработчики приложений могли использовать этот эндпоинт для обеспечения Single Sign-On. Но Microsoft не обеспечила корректные автоматические проверки в этих библиотеках, которые могли бы гарантировать, что, например, корпоративный пользователь не пройдет валидацию с использованием потребительского ключа.
И даже инженеры Microsoft, начавшие использовать этот эндпоинт в 2022 году, тоже не осознавали, что надлежащие проверки отсутствуют.
«Таким образом, почтовая система принимала запрос на корпоративную почту, используя токен безопасности, подписанный потребительским ключом», — гласит отчет об инциденте.
Подчеркивается, что эту проблему тоже уже устранили.
Как уже отмечалось ранее, Microsoft упорно избегает слова «уязвимость» при описании инцидента, связанного с атаками Storm-0558. Вместо этого компания использует слово «проблема». На просьбу журналистов объяснить, что подразумевается под термином «проблема», в компании ответили: «Уязвимость — это специфический термин, и мы бы использовали термин “уязвимость”, если бы он был уместен. Под “проблемой” понимаются такие вещи, как неправильная конфигурация, ошибки оператора или случайные побочные продукты других действий».
Источник: xakep