16-летний исследователь нашел баг Microsoft, получил админ-доступ к базам данных с 17,3 трлн строк

Microsoft безопасность уязвимость утечка данных хакер Titan theregister.com

Обнаружена критическая уязвимость в Microsoft Titan! Узнайте, как 16-летний хакер получил доступ к 17 триллионам строк данных. Защитите свои данные!

16-летний специалист по безопасности по имени Фаав обнаружил уязвимость аутентификации в аналитической службе Microsoft Titan, которая позволила ему получить права администратора, отправлять несанкционированные SQL-запросы без действительных учетных данных и потенциально получить доступ к аналитическим базам данных, содержащим примерно 17,3 триллиона хранимых строк.

Titan — это внутренняя аналитическая платформа, доступ к которой через веб-интерфейс ограничен сотрудниками Microsoft. Фаав, с помощью созданного им ИИ-ботханта по имени Antares, обнаружил, что может получить доступ к API Titan через хост Azure Cloud Services, поскольку Titan не проверял подпись токена входа.

С тех пор Microsoft заблокировала API и выплатила Фааву вознаграждение в размере 5000 долларов за его исследование. Он говорит, что прорыв произошел после 10 дней ошибок аутентификации, когда он вернулся к проблеме после выполнения школьных заданий в пятницу и наконец смог выполнить SQL-запрос как администратор Titan после 1 часа ночи в субботу.

«Было 2 часа ночи», — сообщил Фаав в блоге о своих находках. «Я хотел кричать, или хотя бы что-нибудь сказать вслух, но мои родители спали. Поэтому я просто сидел и смотрел на 17 333 335 124 315 и снова проверил расчеты».

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

«Мы ценим возможность изучить результаты, представленные Фаавом», — говорится в заявлении Microsoft, предоставленном Фааву для его блога. «Их сообщение и скоординированное раскрытие уязвимостей помогли нам лучше защитить наших клиентов, укрепив наши сервисы. Мы ценим и уважаем безопасные исследования безопасности в рамках программы Microsoft Bug Bounty Program и надеемся на дальнейшее сотрудничество с Фаавом в будущем».

Мальчик и его бот

Исследование началось 25 августа, когда Antares обнаружил общедоступный API Titan. В течение следующих 10 дней человек и бот тестировали проверки аутентификации JSON Web Token (JWT) сервиса и имена участников пользователей (UPN) в формате электронной почты, в конечном итоге обнаружив неподписанный токен, который мог получить доступ к локальному поиску пользователей Titan, но не к UPN, который Titan распознавал.

Ранним утром 5 сентября Фаав изменил UPN неподписанного токена с идентификатора в формате электронной почты на admin. Titan распознал его как локальное имя пользователя, преобразовал его в локальный идентификатор пользователя 1, который имел роль администратора, и позволил ему выполнять SQL-запросы. Вывод, по словам Фаава:

Titan проверял содержимое JWT (арендатор, аудитория, идентификатор приложения, пользователь), но никогда не проверял подпись, что является самой важной частью любой проверки аутентификации. Проверки аутентификации напоминали отель, где у каждой двери был работающий считыватель ключ-карт, но любая ключ-карта открывала любую комнату. Несмотря на всю логику контроля доступа, существующую в приложении, одно отсутствующее звено делало все это бессмысленным. Если вы разработчик (или кодирующий агент), читающий это, самый важный вывод из этого поста — убедитесь, что вы проверяете подписи превыше всего при создании системы аутентификации.

Это дало Фааву доступ к базе данных метаданных платформы Titan, и оттуда он мог напрямую запрашивать таблицы приложений. Метаданные содержали:

  • Около 25 000 записей учетных записей и адресов электронной почты.

  • 17 990 записей электронной почты сотрудников.

  • 15 001 запись об организациях сотрудников.

  • 355 конфигураций баз данных.

  • 20 979 определений SQL для виртуальных наборов данных.

  • 24 569 панелей мониторинга, 425 891 диаграмма и 27 347 определений наборов данных.

Каталог пользователей и использования Titan раскрывал должности сотрудников, отделы и иерархию управления, что, как отмечает исследователь, могло быть полезно для атак социальной инженерии — «хотя я никогда не тестировал и не демонстрировал этого», — добавил он.

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

17,3 триллиона строк данных

Затем он нашел джекпот, протестировав 56 маршрутизирующих значений из архивированной конфигурации и обнаружив, что 30 из них все еще активны. «Каждое маршрутизирующее значение указывало на конфигурацию серверной части, и каждая конфигурация содержала одну или несколько баз данных, поэтому 30 активных значений были разрешены через 24 конфигурации в 17 подключенных аналитических баз данных, охватывающих 9 863 уникальных имени таблиц», — написал охотник за ошибками.

Общее количество составляет около 17,3 триллиона строк, что, по словам Фаава, является оценкой хранения, полученной из метаданных, и, вероятно, включает исторические, дублированные и производные данные. «Но в любом случае довольно большое число».

С 6 по 8 сентября Microsoft попросила подростка прекратить тестирование и запросила его IP-адрес, чтобы подтвердить отсутствие злонамеренной деятельности, выходящей за рамки исследования по программе Bug Bounty.

Днем позже Редмонд заблокировал конечную точку и сообщил Фааву, что «отчет побудил к немедленному расследованию и устранению оставшейся уязвимости». Microsoft присудила охотнику за ошибками 5000 долларов за его работу 17 сентября.®

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

В тренде:

Похожие новости: