Slack устраняет серьезную брешь в реализации SAML

В четверг специалисты облачной платформы для обмена сообщениями Slack завершили латание серьезной бреши в системе безопасности, которая негативно сказывалась на компонентах платформы, использующих стандарт SAML для авторизации пользователей.

Главным образом ошибка в реализации SAML затрагивала корпоративных клиентов, которые используют этот механизм для подтверждения прав доступа к учетным записям Slack.

SAML — это открытый стандарт, который определяет, каким образом осуществляется аутентификация и авторизация пользователей в сервисах компании. Это фреймворк, на основе которого происходит обмен данными между поставщиком удостоверений и сервис-провайдером для обеспечения доступа к пользовательской учетной записи. Кроме того, SAML позволяет реализовать интерфейс единого входа в различных системах, платформах и на других ресурсах.

Уязвимость, о которой идет речь, обнаружил в феврале исследователь Антонио Сансо (Antonio Sanso), старший программист в Adobe. В следующем месяце компания Slack подтвердила наличие ошибки и поблагодарила специалиста, присудив ему награду в 3000 долларов США. Согласно Slack, специалисты компании внесли исправления в системы, где была обнаружена эта проблема.

«Эта уязвимость относится к классу проблем Confused Deputy («неумышленный посредник»)», — написал Сансо в личном блоге о своей находке.

Данная проблема заключается в возникновении ошибки при передаче привилегий, когда компьютерная программа получает разрешения на одно действие, но использует их для совершенно другого.

Сансо обнаружил, что экземпляры Slack SAML позволяют предыдущим пользователям (с истекшим оператором контроля) снова открыть учетную запись Slack, доступ к которой им больше не предоставляется. Оператор контроля — это правило XML, на основе которого сервис-провайдер принимает решение по обеспечению доступа к учетным записям.

Кроме того, Сансо выяснил, что истекший оператор контроля можно использовать и в злонамеренных целях.

«Если говорить точнее, я использовал старый и истекший (да, истекший!!) оператор контроля Github из своего архива, который был подписан для другого пользователя (т. е. с чужим именем пользователя), и ввел его на Slack. Slack без проблем принял его, и я вошел в канал Slack с именем пользователя старого и истекшего оператора контроля, который даже не был зарегистрирован в Slack».

Представители Slack отказались комментировать эту ситуацию и лишь заявили, что проблема была полностью исправлена к четвергу.