Uma falha crítica de segurança agora divulgada que afeta o Google Cloud Platform (GCP) Composer pode ser explorada para obter execução remota de código em servidores em nuvem por meio de um ataque à cadeia de suprimentos chamado confusão de deency.
A vulnerabilidade é nomeada no código CloudImposer através de um estudo de pesquisa.
“A vulnerabilidade poderia ter permitido que um invasor sequestrasse dependências internas de software que o Google pré-instala em cada pipeline do Google Cloud Composer”, disse a pesquisadora de segurança Liv Matan em um relatório compartilhado com o Hacker News.
A confusão de dependência (também conhecida como ataque de substituição), documentada pela primeira vez pelo pesquisador de segurança Alex Birsan em fevereiro de 2021, refere-se a um tipo de comprometimento da cadeia de fornecimento de software em que um gerenciador de pacotes é induzido a liberar um pacote malicioso de um repositório público em vez do pretendido. arquivo de mesmo nome do armazenamento interno.
Portanto, um agente de ameaça pode planejar um ataque em larga escala à cadeia de suprimentos publicando um pacote falso em um site público de pacotes com o mesmo nome do pacote desenvolvido internamente pela empresa e um número de versão superior.
Isso, por sua vez, faz com que o gerenciador de pacotes libere involuntariamente o pacote malicioso no repositório público em vez de no repositório privado, substituindo efetivamente as dependências existentes do pacote por sua contraparte maliciosa.
O problema identificado pela Tenable é semelhante, pois pode ser explorado para carregar um pacote malicioso no repositório Python Package Index (PyPI) com o nome “google-cloud-datacatalog-lineage-producer-client”, que pode ser pré-instalado por todas as instâncias do Composer com permissões elevadas.
Embora o Cloud Composer exija que o pacote em questão seja versionado (ou seja, versão 0.1.0), a Tenable descobriu que usar o argumento “–extra-index-url” durante o comando “pip install” coloca primeiro o download do pacote do público registro, abrindo assim a porta para a confusão de dependências.
Armados com esse privilégio, os invasores podem executar código, extrair informações da conta de serviço e ignorar o ambiente da vítima para outros serviços do GCP.
Após uma divulgação responsável em 18 de janeiro de 2024, foi corrigido pelo Google em maio de 2024, garantindo que o pacote fosse instalado apenas em um repositório privado. Ele também adicionou um aviso adicional para verificar a soma de verificação do pacote para garantir sua integridade e garantir que não foi adulterado.
Diz-se que a Python Packaging Authority (PyPA) está ciente da vulnerabilidade causada pelo argumento “–extra-index-url” desde pelo menos março de 2018, pedindo aos usuários que ignorem o uso do PyPI nos casos em que o empacotamento interno precisa ser feito . ele puxou.
“Espera-se que os pacotes sejam diferentes em nome e versão, portanto, duas rodas com o mesmo nome e versão de pacote são consideradas indistinguíveis do pipeline”, observou um membro do PyPA na época. “Este é um recurso intencional dos metadados do pacote e não será alterado.”
O Google, como parte de sua correção, agora também recomenda que os desenvolvedores usem o argumento “–index-url” em vez do argumento “–extra-index-url” e que os clientes do GCP usem o repositório virtual do Artifact Registry quando precisar muitas vezes. . arquivos.
“O argumento ‘-index-url’ reduz o risco de ataques de dependência ao procurar apenas pacotes no registro definidos como o valor fornecido desse argumento”, disse Matan.