03.12.2022 | Новая уязвимость в GitHub может повлиять на цепочку поставок ПО |
Исследователи компании ИБ-компании Legit Security обнаружили , что злоумышленник отправляет изменения в репозитории с открытым исходным кодом на GitHub. Это может привести к тому, что программные проекты, включающие последнюю версию компонента, будут компилировать обновления с вредоносным кодом. По словам экспертов, эта уязвимость «отравления артефактов» может повлиять на программные проекты, использующие GitHub Actions (сервис для автоматизации конвейеров разработки), путем запуска процесса сборки в тот момент, когда изменение обнаружено в программной зависимости. Legit Security смоделировала атаку на проект, на котором основан язык Rust, в результате чего проект был перекомпилирован с использованием вредоносной версии популярной программной библиотеки GCC. Атака использует автоматизированный процесс сборки через GitHub Actions. Уязвимый шаблон мог позволить злоумышленнику выполнять код привилегированным образом в рамках конвейера разработки, похищая секреты репозитория и подделывая код. Другими словами, в уязвимом рабочем процессе любой пользователь GitHub может создать форк, который создаст артефакт. Затем нужно внедрить этот артефакт в исходный процесс сборки репозитория и изменить его выходные данные. После эксплуатации злоумышленник может изменить ветки репозитория, запросы на вытягивание (pull requests), эксплуатировать ошибки, выпуски и все объекты, доступные для разрешений токена рабочего процесса. Поскольку Rust не ограничивал токен рабочего процесса для определенных областей, то хакеру доступны следующие разрешения:
Разрешения, которые получает злоумышленник В зависимости от конкретной конфигурации Rust киберпреступник может использовать эти разрешения для расширения атаки за пределы уязвимого репозитория на дополнительные активы Rust и бокового перемещения внутри организации.
Схема атаки на GitHub Actions Технический директор Legit Security Лиав Каспи сказал, что проблема затрагивает большое количество проектов с открытым исходным кодом, потому что сопровождающие обычно сначала тестируют предоставленный код, а уже после тестов анализируют его. GitHub подтвердил проблему и заплатил вознаграждение за информацию, а Rust уже исправил уязвимость. |
Проверить безопасность сайта