Notícias sobre segurança e IA

Credenciais e chaves de API divulgadas · Por FireAI Security & Research Team · Publicado

A Truffle Security encontra 543 699 credenciais em repositórios públicos do GitHub que continuam a autenticar

A Truffle Security testou credenciais encontradas em 224 milhões de repositórios públicos e reporta 543 699 ainda válidas, com uma exposição mediana de 784 dias. O que significa para programadores num Mac.

A key icon beside the FireAI activity mascot, illustrating Truffle Security finding 543,699 credentials in public GitHub repositories that still authenticate.

A Truffle Security relata ter encontrado 543 699 credenciais únicas em repositórios públicos do GitHub que ainda autenticavam quando as testou, a 27 e 28 de julho de 2026 [1]. O BleepingComputer noticiou as conclusões a 30 de setembro de 2026 [2]. As credenciais contabilizadas incluem chaves de nuvem, cadeias de ligação a bases de dados e chaves de serviços de IA [1].

Contexto

O GitHub ativou a push protection para todos os utilizadores em fevereiro de 2024, uma proteção que não cobre todos os formatos de credenciais [1] [2]. A análise da Truffle Security coloca uma pergunta diferente da de uma pesquisa em novos commits: que credenciais de um corpus público já existente continuam vivas, e durante quanto tempo permaneceram públicas [1].

Conclusões

O corpus era composto por 224 553 295 repositórios e 58 467 468 698 ficheiros do conjunto de dados The Stack v3. A Truffle Security testou cada credencial candidata junto do serviço que a emitiu e identificou as credenciais pelo valor, de modo que uma chave encontrada em 62 repositórios conta uma só vez [1]. A recolha abrangeu apenas o ramo predefinido e terminou a 7 de agosto de 2025 [1].

A idade mediana de uma credencial viva num repositório público era de 784 dias, e o percentil 90 era de 6,3 anos; a mais antiga foi submetida em 2009 e continua a funcionar [1]. Entre as credenciais vivas, as contas de serviço do Google Cloud eram 69 041, as chaves de API da Google 33 343 e as chaves do Gemini 31 374, e 51 067 cadeias de ligação do MongoDB estavam numa categoria que a push protection não bloqueia [1].

A sobrevivência diferiu consoante o fornecedor. Dos 101 886 tokens npm submetidos, 1 ainda estava vivo, e dos 73 048 tokens do GitHub submetidos, 260 estavam; nas cadeias de ligação do Postgres, 11 465 de 12 985 estavam vivas, ou seja, 88 por cento [1]. A conclusão da Truffle Security é que o que as distingue é saber se o fornecedor dispõe de um processo que apanha um token divulgado e o desativa [1].

Quanto à push protection, o relatório indica que pouco menos de 200 000 das credenciais vivas foram enviadas depois de esta ter sido ativada por predefinição, que 51,8 por cento das credenciais vivas se enquadram em categorias que ela não reconhece e que o grupo protegido diminuiu 53 por cento, enquanto o grupo não protegido diminuiu 7 por cento [1] [2].

Implicações para os utilizadores de Mac

Os dados descrevem repositórios, não computadores, e as fontes não indicam que sistemas operativos usavam os programadores. A relevância para um utilizador de Mac é a credencial: uma chave que está num repositório público pode ser usada de qualquer lugar, seja qual for o dispositivo que a criou. O número de chaves do Gemini é um exemplo de chaves de serviços de IA a surgir nos mesmos dados que as chaves de nuvem [1].

A metodologia delimita também o que os números mostram. Tudo o que foi removido por force push, movido para um ramo não predefinido ou submetido e revertido antes de agosto de 2025 é invisível para o método, pelo que o valor é uma contagem do que foi encontrado, não de tudo o que está exposto [1].

Recomendações

  1. Tratar uma credencial submetida como comprometida no instante em que é enviada, quer algo a tenha assinalado ou não, e rodá-la primeiro e limpar o historial depois, como aconselha o relatório [1].
  2. Rodar qualquer chave que tenha alguma vez sido submetida, incluindo em ramos antigos e em repositórios posteriormente tornados privados, dado que a credencial viva mediana estava pública há 784 dias [1].
  3. Preferir credenciais que expiram automaticamente; o resumo do BleepingComputer inclui a expiração automática de segredos ativos entre as medidas [2].
  4. Guardar as chaves num cofre de segredos ou em variáveis de ambiente fora do repositório e analisar o historial de um repositório antes de o tornar público.

Relevância para a FireAI

A FireAI é uma firewall para um só Mac. Identifica uma app pela sua assinatura de código ou caminho e aplica regras por app às ligações que essa app abre, e a página de Atividade lista que apps ficaram online e para onde. Isto ajuda o utilizador a ver que programas do Mac chamam um serviço de nuvem ou de IA e a escrever uma regra para que apenas a app pretendida o alcance.

A FireAI não analisa repositórios nem ficheiros à procura de credenciais, não vê o conteúdo de um pedido no interior de uma ligação cifrada e não tem visibilidade sobre uma chave usada a partir de outro computador. Não consegue revogar nem rodar uma chave, e não consegue remover uma credencial que já foi publicada. Revogar a chave junto do fornecedor é o controlo que se aplica às conclusões deste relatório.

Limitações

Os valores provêm da metodologia e do conjunto de dados da própria Truffle Security. As duas fontes descrevem a distribuição das idades por palavras diferentes: o BleepingComputer indica que cerca de um décimo das credenciais em funcionamento tem mais de 6,3 anos, e a Truffle Security refere um percentil 90 de 6,3 anos [1] [2]. A data em que um ficheiro foi submetido é o único relógio por ficheiro que o corpus oferece, pelo que as idades são aproximadas [1].

A recolha do conjunto de dados terminou em agosto de 2025, enquanto os testes de validade decorreram em julho de 2026, pelo que algumas credenciais da contagem estiveram expostas durante anos antes do teste, e o relatório não consegue dizer quem, se alguém, as utilizou [1].

Experimente a FireAI, da HisnLabs gratuitamente durante 17 dias.

Fontes

  1. Truffle Security: 543,699 credentials in public GitHub repos still work, and nobody revoked them
  2. BleepingComputer, 30 September 2026: Over 543,000 valid credentials exposed in public GitHub repositories