Исследовательская лаборатория Varonis обнаружила способ обхода многофакторной аутентификации в учетных записях Box, использующих SMS-коды для подтверждения входа.

Используя этот способ, хакер может применять украденные данные для взлома корпоративного аккаунта Box и эксфильтрации конфиденциальной информации без доступа к телефону жертвы атаки.

Мы сообщали об этой проблеме Box в ноябре 2021 г. через HackerOne; позже специалисты Box выпустили исправление. Это уже второй способ обхода MFA в Box, обнаруженный нами за последнее время. Ознакомьтесь с нашим способом обхода MFA с помощью аутентификатора.

С ростом потребности во внедрении и использовании многофакторной аутентификации многие SaaS-провайдеры начали предлагать несколько вариантов MFA, чтобы обеспечить пользователей дополнительной защитой от атак на учетные записи и пароли. Varonis Threat Labs анализирует разные виды MFA для оценки их безопасности.

По данным Box, 97 000 компаний, включая 68% предприятий из списка Fortune 500 используют решения Box для доступа к информации из любой точки мира и удобной совместной работы.

Подобно многим приложениям, Box дает возможность пользователям без системы единого входа (SSO) использовать приложение-аутентификатор, такое как Okta Verify или Google Authenticator, или SMS с одноразовым паролем для организации второго этапа аутентификации.

Как работает SMS-верификация в Box

После ввода имени пользователя и пароля в форме входа в Box устанавливается cookie-файл сеанса, и пользователю предлагается один из двух вариантов аутентификации:

  • Ввод временного одноразового пароля (TOTP), если пользователь подтвердил вход с помощью приложения-аутентификатора, или

  • Ввод SMS-кода, если пользователь выбрал получение пароля в SMS.

Если пользователь выбирает подтверждение входа через SMS, на его телефон отправляется код. Он должен ввести этот код для получения доступа к своей учетной записи Box.com.

В чём проблема?

Если пользователь не перейдет к странице подтверждения входа через SMS, он не получит сообщение с кодом, но cookie-файл сеанса всё равно будет создан. Злоумышленнику достаточно будет ввести адрес электронной почты и пароль пользователя (например, украденные в результате утечки паролей или фишинговой атаки), чтобы получить действительный файл cookie сеанса. Код из SMS не потребуется.

Объединение разных вариантов MFA

После создания cookie-файла хакер может отказаться от многофакторной аутентификации через SMS (которую выбрал пользователь) и вместо этого запустить MFA на основе TOTP, тем самым объединив два разных режима MFA.

Злоумышленник завершает процесс аутентификации, отправляя фактор аутентификации и код из своей учетной записи Box и приложения-аутентификатора в конечную точку верификации TOTP, используя cookie-файл сеанса, который он получил с помощью учетных данных жертвы.

Приложение Box не проверяло, выбирал ли пострадавший пользователь аутентификацию через TOTP и принадлежало ли используемое приложение-аутентификатор пользователю, который входил в систему. Из-за этого хакеру удалось войти в учетную запись Box жертвы без использования телефона или уведомления в SMS.

Посмотрите, как выглядит атака:

Этапы атаки

  1. Злоумышленник выбирает вход с помощью многофакторной аутентификации через приложение-аутентификатор и сохраняет фактор аутентификации.

  2. Злоумышленник вводит адрес электронной почты и пароль пользователя на странице account.box.com/login.

  3. Если пароль правильный, браузер злоумышленника получает новый cookie-файл аутентификации и перенаправляет его на /2fa/verification.

  4. Однако хакер не переходит по ссылке для входа с помощью SMS, а передает свой собственный фактор аутентификации и код из приложения-аутентификатора в конечную точку проверки TOTP: /mfa/verification.

  5. Таким образом, злоумышленник входит в учетную запись жертвы, и пострадавший пользователь не получает SMS.

    ВЫВОДЫ

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

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

    Наши специалисты выявили не одну, а две уязвимости в приложении, которые позволили нам войти в чужую учетную запись Box с MFA, используя только имя пользователя и пароль.

    Это подчеркивает необходимость реализации подхода, ориентированного на данные. Директорам по информационной безопасности необходимо задать себе следующие вопросы:

    • Узнаю ли я, была ли многофакторная аутентификация отключена или ее обошли во всех моих приложениях SaaS?

    • К какому объему данных может получить доступ злоумышленник, если он взломает обычную пользовательскую учетную запись?

    • Не доступны ли какие-либо данные слишком широкому кругу пользователей (и не находятся ли они в общем доступе) без необходимости?

    • В случае необычной попытки доступа к данным получу ли я оповещение?

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

Комментарии (4)


  1. GAS_85
    19.01.2022 12:54

    Приложение Box не проверяло, выбирал ли пострадавший пользователь аутентификацию через TOTP и принадлежало ли используемое приложение-аутентификатор пользователю

    Я правильно понял, что можно ввести любые 6 цифр?

    и код из своей учетной записи Box

    Или нужно иметь "свой" аккаунт с 2х факторной авторизацией? Как они тогда вообще сопастовляют что это валидный код, если не могут определить юзера?


    1. fedorro
      19.01.2022 17:00

      Или нужно иметь "свой" аккаунт с 2х факторной авторизацией?

      Да, нужен второй аккаунт. Видимо код сопоставляют с подставным аккаунтом, но после успешной проверки кода из куки достается ид сесссии, и уже из сессии Ид юзера угоняемого аккаунта.


      1. GAS_85
        20.01.2022 13:59

        Тогда я вообще запутался, user1 (злоумышленник) крадёт логин/почту user2.

        Злоумышленнику достаточно будет ввести адрес электронной почты и пароль пользователя (например, украденные в результате утечки паролей или фишинговой атаки)

        user1 не вводит свои данные, а только данные user2.

        Теперь, как user2 я обхожу авторизацию и ввожу "свой" код от user1... Как тут они вообще поняли что этот код от user1?

        Или они принимали рандомные 6 цифр и вообще не проверяли никак, или (ещё лучше) у всех юзеров один хэш для генерации кодов и, соотвественно коды user1 и user2 просто совпадут...


        1. fedorro
          20.01.2022 16:06
          +1

          1. Хацкер логинится с под учеткой user2, получает куку с сессией, но получение СМС-кода не жмет.

          2. Хацкер логинится под user1, заменяет куку сессии на куку user2 из шага 1, выбирает вторым фактором TOTP. TOTP работает нормально - проверяет что введенный код от аккаунта user1, но после успешной проверки вычитывается сессия из подмененнной куки, где написано что это user2 и логинит в соотв. учетку.