Яд в сердце Amazon. Найдена дыра, позволявшая отравить код и незаметно заразить 66% всех облачных сред мира

leer en español

Яд в сердце Amazon. Найдена дыра, позволявшая отравить код и незаметно заразить 66% всех облачных сред мира

Как получить полный контроль над репозиториями AWS, просто подобрав красивый ID на GitHub?

image

Исследователи из компании Wiz обнаружили критическую уязвимость в инфраструктуре AWS, которая при неблагоприятном сценарии могла привести к компрометации всей экосистемы Amazon Web Services, включая консоль управления и учетные записи клиентов по всему миру.

Речь идет о сбое в системе AWS CodeBuild, сервисе, который автоматически собирает и проверяет код для множества проектов Amazon. Как выяснили специалисты, из-за ошибки в настройках злоумышленник мог получить административный доступ к ключевым репозиториям AWS на GitHub, в том числе к тем, от которых напрямую зависит работа AWS Console.

По оценке Wiz, уязвимость была настолько серьезной, что позволяла неавторизованным атакующим внедрять вредоносный код в официальные библиотеки AWS. Это открывало прямой путь к масштабной атаке через цепочку поставок, с потенциальным воздействием на миллионы облачных сред.

Исследователи дали находке название CodeBreach. Эксплуатация бага позволяла утекать привилегированным учетным данным, а получив их, атакующий фактически становился администратором репозитория. В таком статусе можно было напрямую вносить изменения в основную ветку кода, одобрять любые pull request и получать доступ к секретам, хранящимся в репозитории.

Особенно опасным был тот факт, что под угрозой оказался репозиторий aws-sdk-js-v3, JavaScript SDK Amazon. Эта библиотека лежит в основе AWS Console и широко используется сторонними разработчиками. По данным Wiz, JavaScript SDK применяется примерно в 66% облачных сред, и его компрометация могла привести к цепной реакции заражений.

Корень проблемы оказался на удивление простым. Wiz изучала механизм, с помощью которого AWS определяет, какие пользователи GitHub считаются доверенными мейнтейнерами проектов. В CodeBuild использовался фильтр, проверяющий идентификаторы пользователей GitHub с помощью регулярного выражения.

Ошибка заключалась в том, что система не требовала точного совпадения ID. Если доверенный мейнтейнер имел, условно, идентификатор «12345», то пользователь с ID «0123456» тоже проходил проверку, так как строка содержала нужную последовательность символов.

GitHub выдает числовые идентификаторы последовательно, и у старых аккаунтов они короче. Исследователи воспользовались этим и создали сотни тестовых учетных записей, пока одна из них не получила ID, удовлетворяющий ошибочному фильтру. После этого внешние исследователи фактически стали доверенными участниками проекта.

Под этим предлогом они отправили pull request, добавив зависимость от стороннего NPM-пакета, который был настроен на кражу учетных данных GitHub. Спустя короткое время им удалось получить токен доступа с полными административными правами к репозиторию aws-sdk-js-v3. Полученный токен принадлежал автоматизированной учетной записи с правами администратора. Это означало полный контроль над репозиторием и возможность незаметно внедрять вредоносный код.

JavaScript SDK обновляется еженедельно и автоматически публикуется сначала на GitHub, а затем в NPM. Злоумышленник мог бы подложить вредоносный код непосредственно перед релизом, после чего зараженная версия разошлась бы по тысячам проектов. Подобная схема атаки уже использовалась ранее. Всего месяц назад злоумышленники скомпрометировали пользователей расширения Amazon Q для VS Code, что показало, насколько реалистичен такой сценарий.

Теперь компания заявила, что уязвимость устранена, а все связанные риски закрыты.

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

По словам AWS, признаков того, что уязвимость была использована реальными злоумышленниками, обнаружено не было.

Как отмечают в Wiz, подобные системы создают идеальные условия для атак с минимальным порогом входа и максимальными последствиями. И хотя в данном случае обошлось без утечек и компрометации клиентов, сама ситуация стала тревожным сигналом для всей индустрии.