- BrainTools - https://www.braintools.ru -

Claude вскрыл 16 SAML-проектов за месяц вечеров. Чинить их оказалось некому

Claude вскрыл 16 SAML-проектов за месяц вечеров. Чинить их оказалось некому - 1

Об одной и той же уязвимости в Authentik — популярной опенсорсной системе корпоративного входа — независимо и почти одновременно сообщили восемь исследователей. Уязвимость (CVE-2026-57580 [1]) позволяла вставить в поле с идентификатором пользователя (NameID) XML-комментарий, обрезать значение до чужого адреса и привязать к жертве подконтрольную атакующему учетную запись — подпись при этом оставалась валидной. Срабатывало это не у всех: нужны определенные настройки сопоставления учетных записей, отличные от заданных по умолчанию. Закрыли проблему в версиях 2026.2.6 и 2026.5.5. Один из восьмерых — Эрик Чан (Eric Chiang), технический директор компании Oblique Security; для него эта находка была одной из шестнадцати. Свою историю он рассказал [2] в блоге 19 августа, а то, что желающих оказалось восемь, объясняет просто: очевидно, он не единственный, кто теперь взламывает с помощью ИИ.

Личные счеты с протоколом у Чана давние. Почти десять лет назад он добавил поддержку SAML в проект Dex — и та реализация со временем обросла уязвимостями. С тех пор он повторял, что SAML опасен по своей конструкции, а пару месяцев назад собрал накопленное раздражение в доклад об истории обходов SAML на конференции Sec Nerds SF. Дальше сработал чужой текст: прочитав эссе Нильса Провоса “Finding Zero-Days with Any Model”, Чан задумался, что будет, если скормить всю его многолетнюю ругань связке из ИИ-агентов. Он подал заявку в программу Anthropic Cyber Verification Program, чтобы с его аккаунта сняли защитные ограничения, получил доступ к модели Opus, способной писать эксплойты, — и в свободное время примерно за месяц попытался взломать все реализации SAML, до которых дотянулся. Из оборудования — подписка Max 20x за двести долларов в месяц.

Чтобы понять, почему это вообще возможно, достаточно одного примера. SAML — это подписанный пропуск: провайдер идентификации (IdP) выдает приложению XML-документ с адресом пользователя и криптографической подписью. Подпись при этом ставится под документом целиком. А документ читают два разных компонента: библиотека проверки подписи и логика [3] самого приложения. Если они разбирают XML хоть чуть-чуть по-разному, атакующий может подсунуть неподписанные данные под видом заверенных. Такие расхождения — не экзотика: с 2020 года обход в крупной SAML-библиотеке всплывает примерно раз в квартал, у одного только GitHub Enterprise их было четыре за 2024–2025 годы.

Технически Чан построил то же, к чему сходятся почти все “хакерские обвесы”: работу дробят между агентами, промежуточные результаты складывают в общее хранилище, задачи приоритизируют и дедуплицируют. Разница между кодингом и хакингом, объясняет он, в масштабе: чтобы починить баг или написать фичу, контекста нужно немного, а взлом требует исчерпывающего перебора. Конвейер получился двухфазным. Сначала фаза “гаджетов”: агенты ищут странности в поведении [4] библиотек. Затем фаза находок, где гаджеты комбинируют и подтверждают сквозным эксплойтом. Все это складывается в JSONL-файлы, которые обрабатывают отдельные шаги конвейера — например, шаг, отбрасывающий предложенные находки вне скоупа до того, как на их доказательство потратят токены.

Сам обвес Чан собрал легко. Удивило его другое: учить модель взламывать не пришлось. Более того, накопленный им корпус известных уязвимостей SAML делал только хуже — получив его, Claude принимался искать точные копии этих же багов в других библиотеках. Заметно лучше работала связка “модель угроз плюс свобода исследования”. Здесь он видит прямую рифму с агентным кодингом: чем сильнее модель, тем меньше ей нужно конкретных инструкций и тем больше — общих рамок.

Улов за месяц выглядит так. Четыре полных обхода аутентификации — в Authentik, PHP-библиотеке lightsaml, платформе OneUptime и Java-проекте saml-client. Еще двенадцать проектов, и, по его оговорке, счет открыт, оказались уязвимы к обходу подписи на второстепенных сообщениях протокола. Кроме основного ответа, подпись может стоять на запросе аутентификации (AuthnRequest), запросе атрибутов (AttributeQuery) и запросе на выход (LogoutRequest) — и вот эти сообщения безопасники традиционно не разглядывают. Отсюда раскрытие данных и принудительное завершение чужих сессий. Отдельная категория — отказ в обслуживании: SAML по своей природе обязан принимать произвольный XML, присланный POST-запросом из интернета, и почти все крупные библиотеки удалось довести до исчерпания памяти [5] неаутентифицированным запросом. В экосистеме Go патчи приняли, в Python и Node проблемы на момент публикации не закрыты. При этом структурно сломать протокол Чан не смог и открыто об этом жалеет: взрослые библиотеки за годы CVE обросли усиленными API, и “войти кем угодно” сегодня получается в основном там, где реализацию написали заново. Отсюда его практический вывод: не пишите свой SAML — возьмите готовую библиотеку, а лучше сразу OpenID Connect.

Но самая показательная часть истории — не находки, а попытки их сдать. С проектом OneUptime, который, по деликатной формулировке Чана, “принял ИИ всей душой”, вышло так: месяц тишины в ответ на приватный отчет, затем публичный issue — и в тот же день огромный пул-реквест, закрывающий уязвимость, без единого человеческого комментария. Чан сломал фикс. Появился новый большой пул-реквест. Он сломал и его. Только после третьего захода правки стали похожи на безопасные. Вывод он выносит одной строкой: писать безопасный SAML-код у LLM тоже получается плохо. С остальными проектами было не веселее — мейнтейнеры либо не отвечали, либо явно тонули: к неблагодарной работе опенсорс-мейнтейнера теперь добавился поток отчетов об уязвимостях, среди которых надо отличить настоящие от сгенерированного мусора. Одна компания потребовала прислать видеозапись экрана, чтобы отсеять машинные отчеты; Чан отказался, но из-за серьезности самой находки там все же ответили, починили и выдали CVE.

Оговорки тут необходимы. Это рассказ практика, а не эксперимент: нет ни цены прогона в токенах, ни доли ложных находок, которые отсеял конвейер, ни контрольной группы, показывающей, сколько тот же человек нашел бы за месяц руками. Три полных обхода из четырех пришлись на нишевые проекты. И у поста есть коммерческий подтекст — автор возглавляет стартап в области управления доступом, а под текстом стоит форма записи в waitlist. С другой стороны, находки заверены со стороны: выданными CVE, принятыми патчами в Go и публичными issue, по которым можно проверить хронологию. А главное подтверждение — те самые восемь исследователей, одновременно наткнувшихся на одну уязвимость в Authentik: метод рабочий ровно настолько, что он уже не уникален.

Заканчивается история фразой, которую стоит перечитать дважды: Чан остановился не потому, что у него кончились баги, а потому что кончился спрос на его отчеты. Искать уязвимости стало дешево — месяц вечеров и подписка за двести долларов; чинить их по-прежнему дорого, и людей на это столько же, сколько было. Есть у всего этого и обнадеживающая сторона, на которую сам Чан очень рассчитывает: спор о том, хорош протокол или плох, больше не обязан вестись анекдотами и статистикой CVE. Теперь можно просканировать весь GitHub и выложить на стол конкретные баги. Если вы считаете, что с протоколом что-то не так, у вас впервые есть инструменты это доказать — вопрос только в том, найдется ли кому чинить то, что вы докажете.

P.S. Поддержать меня можно подпиской на канал “сбежавшая нейросеть” [6], где я рассказываю про ИИ с творческой стороны.

Автор: runaway_llm

Источник [7]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/34681

URLs in this post:

[1] CVE-2026-57580: https://github.com/goauthentik/authentik/security/advisories/GHSA-35v6-hv2g-6992

[2] рассказал: https://oblique.security/blog/hacking-saml/

[3] логика: http://www.braintools.ru/article/7640

[4] поведении: http://www.braintools.ru/article/9372

[5] памяти: http://www.braintools.ru/article/4140

[6] “сбежавшая нейросеть”: https://t.me/ai_exee

[7] Источник: https://habr.com/ru/articles/1072702/?utm_campaign=1072702&utm_source=habrahabr&utm_medium=rss

www.BrainTools.ru

Rambler's Top100