Pesquisadores do grupo de segurança Segurança da Informação EVA conjunto que uma série de vulnerabilidades deixou expostos centenas ou milhares de pacotes do CocoaPods — gerenciador popular de dependências para projetos entre desenvolvedores de aplicativos para iOS, iPadOS, macOS e outros — a ataques maliciosos.
Em síntese, o CocoaPods é uma plataforma de código aberta que serve para gerenciar bibliotecas ou pacotes que podem ser usados para desenvolver softwares, denominados vagens. Ela possui medidas de segurança, como assinatura de pacotes com criptografia para permitir que os desenvolvedores verifiquem a integridade e a autenticidade dos componentes usados.
Um outro conceito importante na CocoaPods é o de Podspecum arquivo de especificação que descreve um pacote (vagem), com dados como nome, versão, arquivos de origem, dependências e outras informações. A CocoaPods exige que os autores tanto de vagens quanto de Especificações do Pod registre uma conta, para que você possa fazer o upload de novos pacotes ou atualizar os já existentes.
Vulnerabilidade CVE-2024-38368
Tendo usado desde o início como método para identificação de contas dos autores uma associação com o perfil deles no GitHub, o CocoaPods anunciou, em 2014, uma migração para o servidor Tronco — o que agora atuaria como um repositório centralizado e passaria a ser responsável por coisas como gerenciamento de repositórios/vagensautenticação/autorização e publicação de bibliotecas.
Como o novo método inclui validação de e-mail para autores, ele provavelmente foi criado para melhorar a segurança dos usuários. Porém, essa migração requer que os autores de pacotes originais já estejam disponíveis na plataforma reivindicando a propriedade de seus vagens para manter ou controlar eles. Muitos deles não o fizeram — o que aconteceu no que o EVA chamou de vagens órfãos (isto é, não reivindicados).
Ao analisar o código-fonte do servidor Trunk, os pesquisadores da EVA descobrem que todos os vagens órfãos estavam associados a um único padrão privado do CocoaPods, até que fossem reivindicados. A API pública para reivindicar um pacote, instalada em 2014, ainda estava disponível e permitia, pasmem, que qualquer pessoa reivindicasse vagens órfãos sem a necessidade de verificação de propriedade.
Um potencial invasor, portanto, poderia facilmente reivindicar qualquer um ou todos esses vagens órfãos como sendo seus — o que abriria o caminho para que ele manipulasse facilmente o código-fonte ou inserisse conteúdos perigosos para infectar dependências inferiores, chegando a aplicativos populares e, portanto, atingindo uma grande porcentagem de dispositivos da Apple atualmente em uso.
Segundo os pesquisadores, muitos vagens não reivindicados ainda são amplamente utilizados — inclusive como dependências de outros pacotes atualmente disponíveis oficialmente no CocoaPods. Foram encontradas menções a vagens órfãos na documentação de aplicativos de empresas como Meta, Microsoft, Amazonas e até mesmo da própria Maçã (sem Safari, sem Apple TV e sem Xcode).
No total, encontramos 685 vagens que tinha uma dependência explícita usando um vagem órfão; sem dúvida, há centenas ou milhares mais em bases de código legítimo. Todos esses foram, em algum período, vulneráveis ao ataque à cadeia de suprimentos.
Vulnerabilidade CVE-2024-38366
Para garantir a procedência dos dados informados por um autor na hora de fazer um cadastro no CocoaPods, o servidor Porta-malas usando um novo processo de verificação utilizando um pacote de terceiros denominado RFC-822 — o qual, segundo os pesquisadores, possui muitos métodos vulneráveis.
Em termos técnicos, um usuário atacante poderia fornecer um comando como bash
junto ao email fornecido, o que foi executado pelo sistema operacional visando validar a autenticidade do registro DNS MX fornecido pelo usuário no email.
![Vulnerabilidade CVE-2024-38366](https://macmagazine.com.br/wp-content/uploads/2024/07/02-vulnerabilidades-cocoapods-1.gif)
Isso permite a execução de comandos externos perigosos no sistema operacional, possibilitando injetar, por exemplo, um comando bash
em conjunto a um registro MX controlado pelo atacante que contém uma sintaxe válida de determinado comando malicioso — o que poderia resultar em grandes problemas.
Se um ator de ameaça não autorizado envolver o servidor, ele poderá estar acessando todos os fichas de sessão dos inimigos dos vagensenvenenar o tráfego dos clientes ou até mesmo desligar o servidor completamente.
Vulnerabilidade CVE-2024-38367
Essa vulnerabilidade também está, de certa forma, relacionada ao método de autenticação do CocoaPods via servidor Trunk. Para autenticar um novo dispositivo, o gerenciador de dependências envia uma solicitação do paciente, o qual fornece seu endereço de e-mail para obter uma seção — esta é considerada válida apenas quando o proprietário clica em um link enviado para sua caixa de entrada.
Esse método faz uso de um cabeçalho HTTP X-Forwarded-Host
para construir uma URL de verificação de sessão a ser enviada para os usuários, mas o problema é que ele poderia ser facilmente falsificado pelos pesquisadores da EVA. Com a falsificação, o servidor do CocoaPods enviaria o link não autêntico, o que poderia ser interceptado e utilizado pelo atacante para obter o token de autenticação, validar a sessão e assumir o controle da conta do usuário.
![Vulnerabilidade CVE-2024-38367](https://macmagazine.com.br/wp-content/uploads/2024/07/02-vulnerabilidades-cocoapods-0.gif)
O mais assombroso é que isso poderia ser feito até mesmo sem um clique. Isso porque o invasor pode se aproveitar em soluções de segurança geralmente presentes em e-mails institucionais para verificar a presença de phishing — como fariam o usuário invasor obter automaticamente o token de autenticação na conta da vítima.
Tomar as contas permitiria ao atacante manipular especificações de vagensinterrompendo a distribuição de bibliotecas legítimas ou causando grandes interrupções no ecossistema CocoaPods.
De acordo com os pesquisadores, esse método é bastante eficaz e abrangente, especialmente porque a maioria dos desenvolvedores registrados no CocoaPods utilizam contas institucionais para o cadastro — incluindo, é claro, aqueles que trabalham em grandes empresas como a Amazon.
Após a divulgação responsável por parte da EVA — o que aconteceu antes da sua publicação (em outubro de 2023), obviamente —, a equipe do CocoaPods corrigiu todas as três vulnerabilidades. Isso não significa, no entanto, que seus efeitos ainda não estejam em vigor.
A empresa de segurança, inclusive, indica algumas medidas visando eliminar tais consequências — incluindo, principalmente, a eliminação do uso de vagens órfãos no desenvolvimento de aplicativos para iOS, iPadOS e macOS, e uma verificação de segurança forte em pacotes que dependem deles.
O uso de assinaturas digitais para verificar a integridade dos pacotes de software e auditorias em suas dependências para identificar códigos maliciosos, possíveis riscos e vulnerabilidades são algumas outras ações recomendadas.
através da Arte Técnica