O time de pesquisa da Tenable descobriu uma vulnerabilidade no Google Cloud Platform (GCP), envolvendo seu serviço de computação sem servidor (serverless) Cloud Function e seu serviço de pipeline Cloud Build CI/CD. O GCP corrigiu o ConfusedFunction para futuras contas do Cloud Build, mas, as instâncias existentes permanecem em risco, sendo necessária uma ação imediata.
"A vulnerabilidade ConfusedFunction destaca os cenários problemáticos que podem surgir devido à complexidade do software e à comunicação entre serviços de um provedor de nuvem", explica Liv Matan, engenheira de pesquisa sênior da Tenable. "Para dar suporte à compatibilidade com versões anteriores, o GCP não alterou os privilégios das contas de serviço do Cloud Build criadas antes da implementação da correção. Isso significa que a vulnerabilidade ainda está afetando instâncias existentes e recomendamos que os clientes tomem medidas imediatas."
O que é ConfusedFunction e por que essa descoberta é importante?
É uma vulnerabilidade no Google Cloud Platform (GCP) que permite a escalada de privilégios das permissões do Cloud Function para as de conta de serviço padrão do Cloud Build. Essas permissões incluem altos privilégios em serviços como o Cloud Build, armazenamento (incluindo o código-fonte de outras funções), registro de artefatos e de contêineres.
A Cloud Functions no Google Cloud Platform são funções sem servidor acionadas por eventos. Elas dimensionam e executam códigos automaticamente em resposta a eventos específicos, como solicitações HTTP ou alterações de dados. Quando um usuário do GCP cria ou atualiza uma Cloud Function, um processo de backend de várias etapas é acionado. Esse processo, entre outras coisas, anexa uma conta de serviço padrão do Cloud Build à instância do Cloud Build que é criada como parte da implantação da função. Essa conta de serviço padrão dá ao usuário permissões excessivas. Esse processo acontece em segundo plano e não é algo que usuários comuns teriam conhecimento.
Um invasor que obtém acesso para criar ou atualizar uma Cloud Function pode aproveitar para escalar privilégios para a conta de serviço padrão do Cloud Build e outros serviços do GCP, incluindo Cloud Storage e Artifact Registry ou Container Registry. Ao explorar o fluxo de implantação e a confiança falha entre os serviços, um invasor pode executar o código como a conta de serviço padrão do Cloud Build.
O GCP confirmou que havia corrigido o ConfusedFunction, até certo ponto, para contas do Cloud Build criadas após 14 de fevereiro de 2024. Embora a correção tenha reduzido a gravidade do problema para implantações futuras, não o eliminou completamente. Para cada função de nuvem usando a conta de serviço do Cloud Build herdada, o conselho é substituí-la por uma conta de serviço de privilégio mínimo.