A campanha combinou automação com técnicas de camuflagem social para fazer os commits parecerem atualizações normais de infraestrutura.
Os invasores criaram contas temporárias do GitHub com nomes aleatórios e identidades que imitavam ferramentas de automação, como:
Isso fazia os commits parecerem gerados por sistemas automatizados legítimos em vez de por um atacante humano.
Os dados de autoria e as mensagens de commit foram cuidadosamente elaborados para parecerem legítimos — muitas vezes simulando pequenas atualizações de configuração de CI ou ajustes de workflow. Assim, os commits se misturavam ao histórico normal do projeto e levantavam menos suspeitas.
A campanha focou em repositórios com regras de proteção de branch fracas ou inexistentes. Sem exigência de revisão por pull request ou restrições de quem pode modificar workflows, os atacantes conseguiram enviar alterações diretamente para a branch principal.
Cada commit malicioso adicionava um workflow do GitHub Actions contendo um payload Bash codificado em Base64. Quando o pipeline de CI era executado, o script rodava dentro do runner do GitHub Actions e começava a coletar credenciais e segredos do ambiente.
Como os pipelines não são executados continuamente, o ataque muitas vezes permanecia oculto até a próxima execução automática do workflow.
O script codificado em Base64 incorporado nos workflows foi projetado para coletar dados sensíveis do ambiente de CI e enviá‑los para infraestrutura controlada pelos atacantes.
Entre os principais alvos estavam:
O malware coletava variáveis de ambiente, informações do sistema e credenciais acessíveis ao processo de build antes de enviá‑las para um servidor de comando e controle.
Como pipelines de CI frequentemente armazenam credenciais de implantação, comprometer o ambiente de build pode abrir portas para infraestrutura em nuvem, registros de pacotes e sistemas de produção.
Um dos objetivos mais importantes do payload era capturar tokens OIDC (OpenID Connect) do GitHub Actions.
Pipelines modernos de CI/CD utilizam federação de identidade OIDC para autenticar workflows diretamente em provedores de nuvem sem armazenar chaves de acesso permanentes. Em vez disso, o pipeline solicita um token de identidade temporário que pode ser trocado por credenciais de acesso de curta duração.
Essa abordagem aumenta a segurança ao eliminar chaves estáticas, mas cria um novo risco: se um atacante roubar o token durante a execução do pipeline, ele pode se passar temporariamente pelo workflow legítimo.
Como esses tokens são confiáveis para os sistemas de identidade de provedores como AWS, Google Cloud ou Microsoft Azure, eles podem ser trocados por acesso temporário com as mesmas permissões do pipeline de implantação.
Na prática, isso pode permitir:
Mesmo com validade curta, o nível de permissão associado aos tokens pode torná‑los extremamente valiosos para atacantes.
A campanha Megalodon mostra uma mudança importante nos ataques de supply chain: em vez de modificar diretamente o código de aplicações, os invasores estão mirando a infraestrutura de automação de desenvolvimento.
Ao comprometer workflows de CI, um invasor pode:
Como milhares de projetos dependem de pipelines com permissões elevadas, uma única modificação em workflow pode expor segredos que impactam vários sistemas downstream.
Na mesma época, o GitHub divulgou outro incidente de segurança separado envolvendo uma extensão maliciosa do Visual Studio Code instalada em um dispositivo de funcionário.
Essa extensão contaminada permitiu que invasores acessassem aproximadamente 3.800 repositórios internos do GitHub antes que o problema fosse contido.
A invasão foi atribuída ao comprometimento do ambiente de desenvolvimento do funcionário, onde a extensão trojanizada coletou credenciais e tokens.
Algumas análises apontaram semelhanças de timing e técnicas com outros ataques à cadeia de suprimentos de ferramentas de desenvolvimento. Ainda assim, não há evidência pública confirmando que a violação interna do GitHub tenha causado diretamente a campanha Megalodon.
Por enquanto, os dois episódios são considerados incidentes distintos, mas próximos no tempo, que ilustram os riscos crescentes na segurança do ecossistema de desenvolvimento.
O caso Megalodon mostra como a automação pode escalar rapidamente um ataque de supply chain. Usando bots falsos, commits automatizados e workflows contaminados, os invasores transformaram pipelines de build em um mecanismo de coleta de credenciais.
O incidente reforçou algumas prioridades de defesa para equipes de software:
À medida que pipelines de desenvolvimento passam a controlar deploys em nuvem e infraestrutura de produção, a segurança de workflows de CI/CD tornou‑se uma parte crítica da defesa da cadeia de suprimentos de software.