Uma vulnerabilidade descoberta no SDK Python usado para desenvolvimento de modelos de IA no Google Cloud revelou um risco grave para ambientes de Machine Learning. O problema, identificado pela equipe Unit 42 da Palo Alto Networks, permitia que invasores interferissem no processo de armazenamento e carregamento de modelos sem precisar possuir credenciais ou acesso direto ao projeto da vítima.
Batizada de “Pickle in the Middle”, a falha explorava uma combinação entre nomes previsíveis de buckets temporários, configurações automáticas de armazenamento e o uso de arquivos pickle em aplicações Python. Na prática, um atacante poderia criar uma estrutura falsa de armazenamento e tentar substituir arquivos utilizados durante fluxos de treinamento.
A descoberta mostra como a segurança de sistemas de inteligência artificial depende de vários componentes além do próprio modelo. Bibliotecas, automações, serviços de armazenamento e pipelines de desenvolvimento também precisam ser protegidos contra manipulações.
Como funcionava o ataque Pickle in the Middle no ambiente de machine learning
O problema estava relacionado ao funcionamento automático do SDK do Google Cloud para projetos de inteligência artificial. Em determinados cenários, quando o desenvolvedor não configurava manualmente um local de armazenamento, a ferramenta criava um bucket temporário para guardar arquivos intermediários.
Esse recurso seguia um padrão previsível de nomenclatura, semelhante a projeto-região-staging, permitindo que um invasor tentasse descobrir antecipadamente qual nome seria utilizado.
Como os buckets do Google Cloud Storage precisam ser únicos globalmente, o atacante poderia registrar primeiro o endereço esperado. Essa técnica é conhecida como bucket squatting, onde um recurso com nome previsível é ocupado antes pelo invasor.
Com o bucket criado pelo criminoso, arquivos temporários enviados durante processos de treinamento ou preparação de modelos poderiam ser direcionados para um ambiente sob controle externo.
O ataque não dependia de invadir diretamente a conta da vítima. A exploração aproveitava uma falha de lógica no fluxo automatizado para inserir um ponto intermediário controlado pelo atacante.

O risco do uso de arquivos pickle em projetos Python
O formato pickle é bastante utilizado por desenvolvedores Python para salvar objetos, estruturas de dados e modelos treinados de Machine Learning.
Apesar de facilitar o armazenamento de informações complexas, ele apresenta um risco conhecido: arquivos pickle podem executar comandos durante a etapa de desserialização.
Isso significa que um arquivo aparentemente legítimo pode conter instruções escondidas. Quando o sistema carrega esse conteúdo, o código malicioso pode ser executado com as permissões disponíveis no ambiente.
Em projetos de ciência de dados e MLOps, esse risco aumenta porque modelos frequentemente passam por etapas automatizadas de treinamento, validação e implantação.
Por esse motivo, arquivos serializados nunca devem ser carregados sem confiança na origem ou sem mecanismos adicionais de validação.
Impacto da vulnerabilidade no SDK de IA do Google Cloud e exploração rápida
A equipe Unit 42 demonstrou que a exploração poderia ocorrer em uma janela extremamente curta. Na prova de conceito apresentada, o ataque foi automatizado em cerca de 1,4 segundo utilizando uma Cloud Function.
A velocidade do processo mostrava que o invasor não precisava permanecer monitorando o ambiente durante muito tempo. Bastava antecipar o comportamento do sistema e ocupar o recurso antes da criação legítima.
Entre os riscos identificados estavam a exposição de tokens OAuth, informações internas da infraestrutura e dados usados para mapear serviços conectados.
A pesquisa também apontou a possibilidade de acesso a metadados do BigQuery, registros de logs de ambientes e informações relacionadas a clusters do Google Kubernetes Engine (GKE).
Esses dados poderiam ajudar um atacante a compreender a arquitetura de uma organização e preparar novas ações contra aplicações, bancos de dados ou outros serviços em nuvem.
O caso reforça que segurança em ambientes de inteligência artificial não envolve apenas proteger o modelo final. Todo o caminho entre treinamento, armazenamento e implantação precisa ser considerado.
Como proteger ambientes de desenvolvimento de IA contra esse tipo de ataque
O Google Cloud corrigiu o problema alterando o comportamento do SDK afetado. Uma das primeiras medidas foi substituir nomes previsíveis de buckets temporários por identificadores aleatórios baseados em UUID4.
Depois, a versão 1.148.0 do SDK adicionou validações para confirmar a propriedade do bucket antes que ele fosse utilizado pelo processo automatizado.
A versão 1.144.0 também trouxe melhorias iniciais de segurança, mas a recomendação é atualizar para a versão mais recente disponível do pacote google-cloud-aiplatform.
A atualização deve ser aplicada em todos os ambientes utilizados pela equipe, incluindo:
- notebooks de cientistas de dados;
- máquinas de desenvolvimento;
- pipelines de CI/CD;
- ambientes de teste;
- sistemas de produção.
Outra medida importante é configurar manualmente o parâmetro staging_bucket ao utilizar ferramentas de treinamento e implantação de modelos. Isso evita depender de nomes gerados automaticamente e aumenta o controle sobre os arquivos temporários.
Também é recomendado revisar permissões no Google Cloud Storage, aplicar o princípio do menor privilégio e evitar o carregamento de arquivos pickle provenientes de fontes desconhecidas.
A descoberta do ataque Pickle in the Middle serve como um alerta para empresas que utilizam inteligência artificial em processos críticos. À medida que modelos de Machine Learning ganham espaço, componentes auxiliares como bibliotecas e serviços de armazenamento também se tornam alvos.
Manter dependências atualizadas, revisar configurações automáticas e proteger cada etapa do ciclo de vida dos modelos são medidas essenciais para reduzir riscos em ambientes modernos de IA.