Campanha Gheist usa tokens roubados do GitHub para extrair secrets, mas esbarra nos controles de aprovação
Aprofundamento CEVIU
Aprofundamento
A Wiz Research rastreia desde 15 de setembro de 2026 a campanha Gheist, que abusa em massa de tokens comprometidos do GitHub. O ataque commita um workflow chamado sync-check em todo repositório acessível pelo token, numa branch ci-sync- mais seis caracteres aleatórios. O workflow imprime os secrets no próprio log, o atacante baixa o log pela API e apaga a execução segundos depois. Foram recuperadas mais de 13.500 branches plantadas, em mais de 850 contas.
O truque técnico é simples. O GitHub só mascara secrets nos logs quando aparecem literalmente, e um valor codificado em base32 passa direto. Além disso, permissions: {} limita o GITHUB_TOKEN do job, mas não o contexto de secrets. Com ambientes de deployment, os secrets de produção também saem. Como tudo trafega pela API do GitHub, não há domínio do atacante nem conexão de saída para bloquear.
Desde 28 de julho de 2026, o GitHub segura execuções suspeitas em repositórios públicos até a aprovação de um colaborador, e todas as execuções públicas verificadas pela Wiz ficaram em action_required. Essa trava não vale para repositórios privados nem para GitHub Enterprise Server. Lá, os logs de auditoria mostram execuções concluídas e apagadas pelo user agent gheist, e o CloudTrail registrou workflows assumindo roles na AWS. Em ambiente corporativo, a Wiz viu clonagem de repositórios privados e, horas depois, enumeração do AWS Secrets Manager com credenciais da mesma organização.
O que mudou
Gheist não é o primeiro episódio do tipo no histórico do CEVIU. Em 22 de maio de 2026, a matéria "Backdooring em Massa de Repositórios GitHub via CI Workflows" tratou de uma campanha que injetou 5.718 commits maliciosos em 5.561 repositórios com workflows de GitHub Actions para exfiltrar segredos de CI e credenciais de nuvem. A mecânica é parecida, mas a Gheist troca o payload em base64 por um dump de secrets em log. Em 12 de outubro de 2026, o CEVIU noticiou a campanha GhostAction; a Wiz esclarece que a Gheist é distinta dela, com outros arquivos de workflow e outro destino de exfiltração.
Por que isso importa
Para quem opera TI corporativa, a leitura é que a proteção de repositórios públicos não cobre o ambiente privado. Se sua organização depende de repositórios privados ou GitHub Enterprise Server, a trava de aprovação não ajuda. O ponto de controle passa a ser o token: tokens pessoais de longa duração, OIDC sem escopo por branch e runners self-hosted persistentes ampliam o dano. Rotacionar secrets depois do incidente é obrigatório, porque apagar a branch não desfaz a exposição.
Linha do tempo
CEVIU noticia campanha que injetou workflows maliciosos em 5.561 repositórios GitHub.
CEVIU alerta sobre a campanha GhostAction, distinta da Gheist.
Wiz detalha a Gheist: tokens roubados, workflows sync-check e bloqueio parcial pelos controles de aprovação.
Perguntas frequentes
Como identificar se minha organização foi alvo da Gheist?
Procure branches ci-sync- seguidas de seis caracteres, com um único arquivo novo em .github/workflows/sync-check.yml e a mensagem ci: sync config. Nos logs de auditoria do GitHub, busque execuções nessas branches apagadas em menos de um minuto e atividade com o user agent gheist. Se usa OIDC, verifique no log da nuvem assunções de role cujo subject inclua uma branch ci-sync-.
Os controles de aprovação do GitHub protegem contra essa campanha?
Só em parte. Em repositórios públicos, todas as execuções verificadas pela Wiz ficaram retidas aguardando aprovação. Em repositórios privados e no GitHub Enterprise Server essa retenção não se aplica, e houve execuções bem-sucedidas.
O que fazer se um workflow malicioso já rodou?
Rotacione todos os secrets de repositório, organização e ambiente disponíveis ao repositório afetado, pois apagar a execução ou a branch não resolve. Revogue os tokens que fizeram os pushes e verifique se há infostealers nos dispositivos dos donos. Se rodou em runner self-hosted, trate o host e sua instance role como comprometidos.
Que medidas de hardening a Wiz recomenda?
Exigir revisores em ambientes com secrets de produção e restringir as políticas de confiança OIDC a branches protegidas ou ambientes. Preferir GitHub Apps ou tokens finos de curta duração no lugar de tokens pessoais. Rodar runners self-hosted como hosts efêmeros, sem socket do Docker nem acesso irrestrito aos metadados.
Fontes
- wiz.iofonte original
- Categoria
- CEVIU TI
- Publicado
- 27 de outubro de 2026
- Editoria
- CEVIU TI

