Всем привет!
Потрясающая статья от Wiz, в которой ребята делятся опытом того, как им удалось получить административные права от репозитория
aws/aws-sdk-js-v3.Сама суть атаки достаточно проста – сделать PR, который запустит процесс сборки и предоставит атакующим секреты.
Но дьявол, как обычно, в деталях.
Найти несколько Public CodeBuild Projects оказалось не сложно: информация об их настройках доступна всем.
Нюанс в том, что есть
webhook filters, которые определяют некоторый набор условий, что должны быть выполнены для запуска процесса сборки, в том числе, при реализации PR.Одним из таких фильтров является
ACTOR_ID - идентификатор пользователя, которому дозволено это реализовать.Казалось бы, это конец… Но нет! Присмотревшись к тому, как именно формируется это поле, команда поняла, что внутри обычная
regex-проверка. При этом проверка не на полное совпадение строки, а лишь на вхождение!И именно этим воспользовалась команда. Как именно – крайне рекомендуем прочитать – очень красиво и элегантно!
В итоге запустить сборку и получить административный доступ к репозиторию получилось. Да – push в main, принятие любых PR и т.д.
Таким образом, все пользователи
aws/aws-sdk-js-v3 могли бы получать очень «интересные обновления».Но все хорошо, что хорошо кончается. Wiz сообщили об этой находке в AWS и проблема была устранена.
На всякий случай в статье приведен перечень действий, которые позволят повысить уровень защищенности при использовании CodeBuild.