Uma análise profunda no conjunto de dados The Stack v3 revela uma realidade desconfortável para a segurança no desenvolvimento de software. A Truffle Security localizou 543.699 credenciais expostas em repositórios públicos do GitHub que continuavam perfeitamente válidas em julho de 2026. Este volume massivo de segredos operacionais não apenas expõe aplicações e infraestruturas reais, mas escancara uma falha conceitual na forma como a indústria lida com vazamentos de código.
O levantamento auditou 224 milhões de repositórios e mais de 58 bilhões de arquivos coletados até agosto de 2025 para treinamento de IA. Como a varredura considerou apenas o estado da default branch no momento da extração, os números representam chaves consolidadas no histórico principal dos projetos. A partir desses dados, fica claro que bloquear commits com segredos conhecidos resolve apenas uma fração do problema. O verdadeiro divisor de águas entre o comprometimento contínuo e a segurança efetiva não está na plataforma de hospedagem de código, mas na política de revogação automatizada do provedor da credencial.
A falsa sensação de segurança do Push Protection

O GitHub implementou o push protection ativado por padrão em fevereiro de 2024. A ferramenta intercepta e bloqueia commits que contenham segredos com padrões reconhecíveis, exigindo que o desenvolvedor confirme a ação caso deseje ignorar o alerta. Os dados provam que o mecanismo funciona de forma competente dentro de seu escopo técnico. Nos doze meses próximos à ativação do recurso, a taxa de vazamento dos tokens efetivamente protegidos caiu 53%.
O problema reside no escopo. A análise demonstra que 199.843 credenciais válidas foram publicadas após o push protection se tornar o comportamento padrão da plataforma. Isso ocorre porque 51,8% de todas as credenciais ativas encontradas pertencem a formatos que o sistema não bloqueia automaticamente.
Strings de conexão de banco de dados e chaves privadas são classificados como padrões genéricos. O GitHub exige que as organizações ativem manualmente a proteção para esses casos específicos. Sob a ótica editorial da segurança, essa configuração padrão indulgente cria um perigoso ponto cego. Quando um desenvolvedor confia que a plataforma o impedirá de cometer um erro crítico, a ausência de um bloqueio ao inserir um URI do PostgreSQL é frequentemente interpretada como um aval de segurança, não como uma limitação da ferramenta.
A ambiguidade arquitetônica das chaves do Google
O caso das credenciais do Google ilustra perfeitamente como decisões arquitetônicas de provedores impactam a segurança de todo o ecossistema. O mecanismo de push protection ignora chaves de API do Google de forma deliberada. O motivo é estrutural.
O Google utiliza o mesmo prefixo identificador (AIzaSy) para chaves do Google Maps, que são projetadas para existir publicamente no código de páginas web, e para chaves de cobrança do modelo Gemini. Como um único padrão de expressão regular não consegue diferenciar a finalidade da chave apenas pela sua morfologia, o GitHub não pode aplicar um bloqueio genérico sem quebrar fluxos de trabalho legítimos de desenvolvimento frontend.
A consequência dessa escolha de design do provedor é severa. A Truffle Security localizou 31.374 chaves válidas exclusivas da plataforma Gemini, cujo vazamento mediano ocorreu em fevereiro de 2025. Toda essa população de credenciais expostas é mais jovem que a própria implementação do push protection.
O abismo entre detectar e revogar
A métrica mais reveladora da pesquisa não é a quantidade de vazamentos, mas a taxa de sobrevivência dos tokens expostos. Os dados evidenciam que confiar na ação humana após um alerta é uma estratégia falha.
Quando o sistema depende que o mantenedor do repositório leia um alerta de segurança e acesse manualmente o painel do provedor para rotacionar a chave, a credencial frequentemente permanece ativa. O contraste surge quando observamos ecossistemas que aplicam revogação automatizada.
O GitHub e o npm mantêm parcerias de varredura que invalidam imediatamente seus próprios tokens assim que são detectados em repositórios públicos. O resultado é definitivo. Dos 101.886 tokens do npm comprometidos na amostra, apenas um permanecia ativo durante a verificação (uma taxa de sobrevivência de 0,001%). Dos 73.048 tokens do próprio GitHub expostos, apenas 260 funcionavam (0,36%).
No extremo oposto, provedores que delegam a responsabilidade de revogação ao usuário apresentam cenários críticos. Dos 12.985 URIs de conexão do PostgreSQL vazados, 88% continuavam ativos. No ecossistema do Google Cloud, 54% das 126.963 contas de serviço expostas forneciam acesso funcional. O relatório excluiu intencionalmente o MongoDB dessas taxas estatísticas, pois o detector utilizado reportava apenas URIs que efetivamente concluíam a conexão de rede, o que resultaria em uma taxa artificial de 100% de sobrevivência.
O peso do legado histórico
Soluções preventivas no momento do commit não limpam o histórico de uma base de código. A idade mediana das credenciais ativas localizadas é de 784 dias. O caso mais extremo encontrado foi um arquivo de configuração de um servidor web Erlang modificado pela última vez em junho de 2009. A credencial de banco de dados inserida no código continuava autêntica e funcional mais de 16 anos depois.
A análise comprova que um vazamento de credencial deve ser tratado como comprometimento definitivo e irreversível no momento em que atinge um ambiente público. Limpar o histórico do Git com um force push sem rotacionar a chave no provedor original é um erro técnico comum, mas que mantém a infraestrutura vulnerável a qualquer ator que já tenha espelhado o repositório.
Equipes de engenharia de software precisam priorizar a adoção de credenciais de vida curta (short-lived credentials) e arquiteturas de identidade de carga de trabalho (workload identity). A dependência de chaves estáticas de longa duração provou ser um modelo insustentável, pois transforma um erro de configuração de segundos em uma vulnerabilidade que permanece explorável por anos.
