Аккаунты пользователей, которые используют сквозную идентификацию для быстрой авторизации в онлайн-сервисах, могут быть взломаны. Как следует из бюллетеня Координационного центра по чрезвычайным ситуациям США (CERT), учетные данные можно скомпрометировать из-за некорректной обработки XML-запроса, который содержит логин клиента.

Проблема кроется в SAML — универсальном протоколе, применяемом при реализации технологии единого входа (SSO). Соглашение, разработанное в 2001 году, устанавливает стандарты обмена данными между сервером идентификации и приложением, которое запрашивает авторизацию пользователя.

Как оказалось, некоторые библиотеки, которыми пользуются провайдеры SSO, неправильно обрабатывают строку с логином и в ряде случаев могут вернуть в ответ учетные данные другого клиента. Проблема заключается в нетипичной интерпретации XML-кода с комментариями. Идентификатор пользователя, разделенный служебным сообщением, должен восприниматься сервисом авторизации как единое целое, но иногда до сервера доходит лишь его первая часть. Если она совпадает с логином другого абонента, приложение получит его регистрационные данные.

Таким образом, злоумышленник, который имеет аккаунт с именем sample-user-fraudster на одном из сервисов сквозной авторизации, может отправить на него запрос от имени sample-user<комментарий>-fraudster. В ответ мошенник получит токен сеанса для пользователя sample-user и будет иметь возможность работать с приложением от его имени.

SAML слегка устарел и повсеместно вытесняется OpenID, а также собственными протоколами авторизации социальных сетей. Тем не менее, многие провайдеры технологии единого входа, такие как Cisco или Microsoft, все еще применяют этот стандарт. Уязвимости замечены не у всех операторов, использующих SAML. Выявленные ошибки закрываются обновлением проблемных библиотек.

Это не первый случай, когда популярный SSO-протокол становится объектом внимания специалистов по информационной безопасности. В прошлом году с проблемами при передаче учетных данных в формате SAML столкнулся бизнес-мессенджер Slack. Разработчики приложения выплатили 3000 долларов специалисту, обнаружившему проблему.

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