16-летний исследователь взломал внутреннюю аналитическую платформу Microsoft одной упущенной криптографической проверкой. Система Titan, где хранились базы с примерно 17,3 трлн строк, требовала JWT для входа, но не проверяла подпись токена. Школьник создал поддельный токен с алгоритмом none, добавил в поле upn имя admin и получил полный административный доступ.
Исследователь под ником Faav исследовал API сервиса Titan. Веб-интерфейс был защищён VPN, но REST-эндпоинты оставались открыты в интернете. Один из маршрутов позволял выполнять SQL-запросы. Для проверки подлинности сервис анализировал JWT-параметры: tenant, audience, идентификатор приложения и пользователя. Однако он делал это без проверки криптографической подписи токена.
Faav создал неподписанный JWT и в поле upn записал admin. Система сопоставила это значение с локальным пользователем ID 1, которому была назначена роль администратора. Проверочный запрос SELECT 1 выполнился успешно.
Из 56 старых маршрутов в конфигурациях сервиса 30 всё ещё работали. Они вели через 24 конфигурации к 17 базам ClickHouse с 9863 таблицами. По статистике баз исследователь оценил объём в 17 333 335 124 315 строк. Это число не означает утечку того же количества пользовательских данных — оно включает исторические записи, дубликаты и производные наборы. Faav видел в метаданных около 25 тыс. аккаунтов, 17 990 адресов сотрудников и 15 001 запись об организационной структуре. Он проверил доступ к аналитике Bing на двух выборках и не загружал данные массово.
Большую часть исследования провел ИИ-агент Antares, созданный школьником. Система десять дней перебирала варианты и анализировала ответы сервера, поэтапно проходя проверки. Агент подставлял электронные адреса, но не додумался, что поле upn может быть обычным локальным именем. Вариант admin предложил сам исследователь — это показало границу текущих возможностей автоматизированного тестирования безопасности.
Antares нашёл доступный API 25 августа. Faav подтвердил администраторский доступ и 5 сентября отправил отчёт в Microsoft Security Response Center. 9 сентября компания закрыла уязвимый API и выплатила $5000 награды. После согласования условий раскрытия исследователь опубликовал подробный технический разбор.
Случай Titan демонстрирует, почему дополнительные проверки авторизации становятся бесполезными без верификации подписи токена. Сервер тщательно сверял несколько параметров, но атакующий мог самостоятельно изменить содержимое токена и выдать его за подлинный. История также показывает правильный подход к баунти: исследователь остановился после подтверждения доступа, уведомил разработчиков и позволил им исправить проблему, вместо того чтобы публиковать уязвимость и оставлять пользователей без защиты.
Подобная ошибка уже была обнаружена в 2026 году в библиотеке pac4j-jwt, где некорректная обработка неподписанных токенов позволяла указать произвольную роль в JWT без настоящего ключа.
Microsoft разрабатывает автоматизацию для поиска таких проблем на этапе проектирования. Весной компания выпустила открытые инструменты RAMPART и Clarity для проверки безопасности ИИ-систем. История с Titan показывает другой аспект этой тенденции: автоматика способна вести техническую разведку неделями, но решающий шаг нередко требует одной человеческой идеи.
