Ataque à infraestrutura PyTorch, comprometendo o repositório e as versões

Foram revelados detalhes do ataque à infraestrutura utilizada no desenvolvimento do framework de aprendizado de máquina PyTorch, que possibilitou extrair chaves de acesso suficientes para colocar dados arbitrários no repositório com lançamentos de projetos no GitHub e AWS, bem como substituir código no branch principal do repositório e adicione um backdoor por meio de dependências. A falsificação de lançamento do PyTorch pode ser usada para atacar grandes empresas como Google, Meta, Boeing e Lockheed Martin que usam o PyTorch em seus projetos. Como parte do programa Bug Bounty, a Meta pagou aos pesquisadores US$ 16250 por informações sobre o problema.

A essência do ataque é a capacidade de executar seu código em servidores de integração contínua que realizam reconstruções e executam jobs para testar novas alterações enviadas ao repositório. O problema afeta projetos que usam seus próprios manipuladores externos "Self-Hosted Runner" com GitHub Actions. Ao contrário das ações tradicionais do GitHub, os manipuladores auto-hospedados não são executados na infraestrutura do GitHub, mas em seus próprios servidores ou em máquinas virtuais mantidas pelo desenvolvedor.

A execução de tarefas de montagem em seus servidores permite organizar o lançamento de código que pode escanear a rede interna de uma empresa, pesquisar no FS local por chaves de criptografia e tokens de acesso e analisar variáveis ​​ambientais com parâmetros para acessar armazenamento externo ou serviços em nuvem. Na ausência de isolamento adequado do ambiente de montagem, os dados confidenciais encontrados podem ser enviados externamente para invasores, por exemplo, por meio de acesso a APIs externas. Para determinar o uso do Self-Hosted Runner por projetos, o kit de ferramentas Gato pode ser usado para analisar arquivos de fluxo de trabalho acessíveis ao público e logs de inicialização de tarefas de CI.

No PyTorch e em muitos outros projetos que usam o Self-Hosted Runner, apenas os desenvolvedores cujas alterações foram previamente revisadas por pares e incluídas na base de código do projeto têm permissão para executar trabalhos de construção. Ter o status de “colaborador” ao usar as configurações padrão no repositório torna possível iniciar manipuladores GitHub Actions ao enviar solicitações pull e, consequentemente, executar seu código em qualquer ambiente GitHub Actions Runner associado ao repositório ou à organização que supervisiona o projeto.

O link para o status de “colaborador” acabou sendo fácil de ignorar - basta primeiro enviar uma pequena alteração e esperar que ela seja aceita na base de código, após o que o desenvolvedor recebe automaticamente o status de participante ativo, cujas solicitações pull podem ser testadas na infraestrutura de CI sem verificação separada. Para alcançar o status de desenvolvedor ativo, o experimento incluiu pequenas alterações cosméticas para corrigir erros de digitação na documentação. Para obter acesso ao repositório e armazenamento de versões PyTorch, o ataque durante a execução do código no “Self-Hosted Runner” interceptou o token GitHub usado para acessar o repositório a partir de processos de construção, bem como as chaves AWS usadas para salvar os resultados da construção .

O problema não é específico do PyTorch e afeta muitos outros projetos grandes que usam as configurações padrão para “Self-Hosted Runner” no GitHub Actions. Por exemplo, foi mencionada a implementação de ataques semelhantes para instalar um backdoor em algumas grandes carteiras de criptomoedas e projetos de blockchain com capitalização de bilhões de dólares, fazer alterações nos lançamentos do Microsoft Deepspeed e TensorFlow, comprometer um dos aplicativos CloudFlare e também executar código em um computador na rede Microsoft. Detalhes desses incidentes ainda não foram divulgados. Nos programas existentes de recompensas por bugs, os pesquisadores enviaram mais de 20 pedidos de recompensas no valor de várias centenas de milhares de dólares.

Fonte: opennet.ru

Adicionar um comentário