Дверь VPN и открытое окно API
16-летний исследователь Faav использовал свой инструмент автоматизации Antares, чтобы обнаружить Titan, внутренний аналитический сервис Microsoft. Это открытие выявило критическую архитектурную ошибку: корпоративный VPN защищал веб-интерфейс Titan, однако его облачный API и сопутствующая документация оставались общедоступными. Это несоответствие границ создало немедленную уязвимость.
Критически важно, что один конкретный API-маршрут, /v2/Query, обходил стандартную аутентификацию Entra ID. В отличие от других задокументированных маршрутов, /v2/Query, как сообщается, принимал необработанные SQL-запросы напрямую, предлагая вектор неаутентифицированного доступа к внутренней инфраструктуре данных Microsoft. Это единичное упущение представляло собой значительный провал в контроле доступа.
Faav воспользовался этим открытым окном, продемонстрировав, как общедоступный API в сочетании с обойденным механизмом аутентификации может подорвать даже надежную периметровую защиту. Этот инцидент подчеркивает необходимость проведения комплексных аудитов безопасности всех интерфейсов сервисов, а не только фронтенда.
JWT проверял всё, кроме подписи
Следующим шагом Faav стало изучение внутренней архитектуры Titan. Используя снимок Wayback Machine за 2023 год, он восстановил 56 определений таблиц, получив критически важный план структуры данных сервиса. Эта разведка выявила точные точки данных, доступные для запросов.
Затем возникла проблема с аутентификацией. Titan использовал JSON Web Tokens (JWT), и Faav обнаружил критический изъян: сервис проверял различные утверждения (claims) токена — такие как tenant, audience и app ID, — но полностью пропускал проверку криптографической подписи. Это упущение делало проверку утверждений бессмысленной.
Таким образом, токен с "alg": "none" в заголовке и пустой полезной нагрузкой подписи мог пройти все проверки. Без подписи, подтверждающей целостность и происхождение токена, Titan принимал поддельные учетные данные как легитимные. Одной проверки утверждений недостаточно для установления доверия; именно проверка подписи аутентифицирует отправителя токена и предотвращает подделку. Теперь у Faav был путь для обхода защиты Titan.
Одно слово превратило сломанный токен в доступ администратора
Faav столкнулся с последним препятствием: аутентификацией пользователя. Имена пользователей в формате email для Titan постоянно отклонялись, несмотря на поддельный JWT. После настойчивых попыток простое имя пользователя — admin — сработало, сопоставившись с локальным UserID 1, который по своей сути обладал административной ролью. Это единственное слово открыло обширный доступ.
Права администратора выявили значительный внутренний след. Faav получил доступ к 30 активным целям маршрутизации и 17 аналитическим базам данных, включая критически важную Bing Analytics. Раскрытые метаданные охватывали приблизительно 25 000 внутренних учетных записей Microsoft.
Основные цифры, такие как оценочные 17,3 триллиона строк, представляли собой теоретическую емкость хранилища доступных баз данных, а не подтвержденные записи, к которым был получен доступ или которые были похищены. Faav придерживался строгих этических принципов, никогда не затрагивал данные клиентов и сообщил об уязвимости в тот же день. Для получения дополнительной информации об этом примечательном раскрытии прочитайте статью Open Microsoft Database With 17 Trillion Total Rows and 25,000 User Accounts Hacked by a Bored Teenager. Microsoft устранила уязвимость конечной точки в течение четырех дней и выплатила вознаграждение в размере 5000 долларов.
Нравится статья? Получайте такие каждое утро на почту.
одно письмо в день · отписка в два клика · без сторонних трекеров
Исправление за четыре дня — и важный урок безопасности
Faav применил ответственное раскрытие информации, подтвердив, что никогда не получал доступ к данным клиентов. Microsoft отреагировала оперативно, ограничив доступ к открытой конечной точке и усилив проверку токенов в течение четырех дней. Эти быстрые действия предотвратили то, что могло стать катастрофическим взломом, учитывая 17,3 триллиона строк данных, к которым Faav мог получить доступ.
Вознаграждение в размере 5000 долларов, выплаченное Faav, вызвало дискуссии в сообществе. Многие утверждали, что выплата была скромной, учитывая потенциальное влияние административного доступа к 30 целям маршрутизации и 17 базам данных аналитики, включая Bing Analytics. Однако более широкий урок выходит за рамки размера вознаграждения.
Этот инцидент дает важные выводы для команд облачной безопасности. Убедитесь, что ваши системы проверяют подписи JWT и полностью отклоняют неподписанные токены, особенно те, которые используют уязвимость alg: "none". Кроме того, исключите учетные записи с привилегиями по умолчанию, такие как admin, которые привязаны к предсказуемым идентификаторам пользователей.
Наконец, независимое тестирование маршрутов API бэкенда имеет первостепенное значение. Интерфейс, защищенный VPN, создает ложное чувство безопасности, если неаутентифицированные общедоступные облачные конечные точки остаются открытыми. Надежная безопасность требует бдительности на всех уровнях, а не только на входе.
Часто задаваемые вопросы
Что такое Microsoft Titan?
Titan — это внутренняя аналитическая служба Microsoft, которая предоставляла доступ к целям маршрутизации и аналитическим базам данных.
Как Faav получил административный доступ?
API принимал JWT без проверки его подписи, а имя пользователя «admin» было привязано к учетной записи с административными привилегиями.
Были ли украдены данные из 17,3 триллиона строк?
О подтвержденных случаях кражи данных клиентов не сообщалось. Эта цифра описывает теоретический максимальный объем хранилища, и Faav заявил, что не получал доступ к данным клиентов.
Как отреагировала Microsoft?
По сообщениям, Microsoft исправила открытую конечную точку в течение четырех дней и выплатила Faav вознаграждение в размере 5000 долларов за найденную уязвимость.

