Исследователи в области кибербезопасности обнаружили уязвимость повышения привилегий в сервисе Cloud Functions на платформе Google Cloud Platform. Эта уязвимость, получившая название ConfusedFunction, может позволить злоумышленнику несанкционированно получить доступ к другим сервисам и конфиденциальным данным.
Компания Tenable, выявившая эту проблему, пояснила,что злоумышленник может повысить свои привилегии до уровня учётной записи Default Cloud Build Service и получить доступ к множеству сервисов, таких как Cloud Build, хранилище (включая исходный код других функций), реестры артефактов и контейнеров.
Подобный доступ позволяет злоумышленнику осуществлять боковое перемещение и повышение привилегий в проекте жертвы, а также получать несанкционированный доступ к данным и даже обновлять или удалять их.
Cloud Functions представляет собой серверное окружение для выполнения задач, позволяющее разработчикам создавать одноцелевые функции, которые запускаются в ответ на определённые события в облаке без необходимости управления сервером или обновления фреймворков.
Проблема, обнаруженная Tenable, заключается в том, что учётная запись Cloud Build создаётся автоматически и связывается с экземпляром Cloud Build по умолчанию при создании или обновлении функции Cloud Function. Эта учётная запись обладает чрезмерными привилегиями, что позволяет злоумышленнику, имеющему доступ к созданию или обновлению функции Cloud Function, использовать эту лазейку для повышения своих привилегий до уровня учетной записи Cloud Build.
Такие привилегии могут быть использованы для доступа к другим сервисам Google Cloud, которые создаются вместе с функцией Cloud Function, включая Cloud Storage, Artifact Registry и Container Registry. В гипотетическом сценарии атаки уязвимость ConfusedFunction может быть использована для утечки токена учётной записи Cloud Build через веб-хук.
После ответственного раскрытия информации, Google обновила стандартное поведение, чтобы Cloud Build использовал учётную запись Compute Engine по умолчанию для предотвращения злоупотреблений. Однако, стоит отметить, что эти изменения не применяются к уже существующим экземплярам.
Исследователь Tenable Лив Матан отметил, что уязвимость ConfusedFunction подчёркивает проблемные сценарии, которые могут возникнуть из-за сложности программного обеспечения и межсервисного взаимодействия в облачных сервисах.
Хотя исправление со стороны GCP снизило степень серьёзности проблемы для будущих развертываний, оно не полностью устранило её. Развёртывание функции Cloud Function все ещё запускает создание указанных сервисов GCP, что требует назначения минимально необходимых, но все же достаточно широких привилегий учётной записи Cloud Build в процессе развёртывания функции.
Уязвимость ConfusedFunction подчёркивает необходимость постоянной бдительности и правильного управления привилегиями в IT-сфере. Регулярный аудит безопасности и принцип наименьших привилегий должны быть основой стратегии кибербезопасности любой компании.