Mais de 100.000 repositórios do GitHub vazaram API e chaves criptográficas

Uma varredura de bilhões de arquivos de 13% de todos os repositórios públicos do GitHub durante um período de seis meses, revelou que mais de 100.000 repositórios vazaram tokens de API e chaves criptográficas com milhares de novos repositórios.

O escaneamento foi objeto de pesquisa acadêmica realizada por uma equipe da North Carolina State University (NCSU), e os resultados do estudo foram compartilhados com o GitHub, que agiu com base nos achados para acelerar seu trabalho em um novo recurso de segurança chamado Token Scanning., atualmente em beta.

ACADÊMICOS VERIFICARAM BILHÕES DE ARQUIVOS DO GITHUB

O estudo da NCSU é o mais abrangente e detalhado exame do GitHub até o momento e excede qualquer pesquisa anterior de seu tipo.

Os acadêmicos da NCSU examinaram as contas do GitHub por um período de quase seis meses, entre 31 de outubro de 2017 e 20 de abril de 2018, e procuraram por sequências de texto formatadas como tokens de API e chaves criptográficas.

Eles não usaram apenas a API de pesquisa do GitHub para procurar esses padrões de texto, como outros esforços de pesquisa anteriores , mas também analisaram os instantâneos do repositório do GitHub registrados no banco de dados do BigQuery do Google.

No período de seis meses, os pesquisadores analisaram bilhões de arquivos de milhões de repositórios do GitHub.

Em um artigo publicado no mês passado, a equipe da NCSU disse que eles capturaram e analisaram 4.394.476 arquivos representando 681.784 repositórios usando a API de busca do GitHub e outros 2.312.763.353 arquivos de 3.374.973 repositórios que foram registrados no banco de dados do BigQuery.

A EQUIPE DA NCSU ESCANEOU TOKENS DE API DE 11 EMPRESAS

Dentro dessa pilha gigantesca de arquivos, os pesquisadores procuraram por sequências de texto que estavam no formato de tokens de API particulares ou chaves criptográficas.

Como nem todos os tokens de API e chaves criptográficas estão no mesmo formato, a equipe da NCSU decidiu 15 formatos de token de API (de 15 serviços pertencentes a 11 empresas, cinco dos quais eram do Alexa Top 50) e quatro formatos de chave criptográfica.

Isso incluiu os formatos de chave de API usados ​​pelo Google, pela Amazon, pelo Twitter, pelo Facebook, pelo Mailchimp, pelo MailGun, pelo Stripe, pelo Twilio, pelo Square, pelo Braintree e pelo Picatic.

APIs testadas no NCSU GitHub

Os resultados voltaram imediatamente, com milhares de API e chaves criptográficas vazando sendo encontradas todos os dias do projeto de pesquisa.

No total, a equipe da NCSU informou que encontrou 575.456 APIs e chaves criptográficas, das quais 201.642 foram exclusivas, todas espalhadas por mais de 100.000 projetos do GitHub.

Resultados da varredura do NCSU GitHub

Uma observação que a equipe de pesquisa fez em seu trabalho acadêmico foi que os “segredos” encontrados usando a API de pesquisa do Google e os que usam o conjunto de dados do Google BigQuery também tinham pouca sobreposição.

“Depois de juntar as duas coleções, determinamos que 7.044 segredos, ou 3,49% do total, foram vistos em ambos os conjuntos de dados. Isso indica que nossas abordagens são em grande parte complementares”, disseram os pesquisadores.

Além disso, a maioria dos tokens de API e chaves criptográficas – 93,58% – veio de contas de um único proprietário, em vez de repositórios de vários proprietários.

O que isto significa é que a grande maioria das APIs e chaves criptográficas encontradas pela equipe da NCSU eram provavelmente tokens e chaves válidos usados ​​no mundo real, já que as contas de múltiplos proprietários tendem a conter tokens de teste usados ​​para ambientes de teste compartilhado e com código in-dev.

API VAZADA E CHAVES CRIPTOGRÁFICAS PARA FICAR POR SEMANAS

Como o projeto de pesquisa também ocorreu em um período de seis meses, os pesquisadores também tiveram a chance de observar se e quando os proprietários da conta perceberiam que vazaram API e chaves criptográficas e removeriam os dados confidenciais de seu código.

A equipe disse que seis por cento da API e as chaves criptográficas que eles rastrearam foram removidos em uma hora após o vazamento, sugerindo que os proprietários do GitHub perceberam o erro imediatamente.

Mais de 12% das chaves e fichas foram retiradas após um dia, enquanto 19% permaneceram por até 16 dias.

“Isso também significa que 81% dos segredos que descobrimos não foram removidos”, disseram os pesquisadores. “É provável que os desenvolvedores para este 81% não saibam se os segredos estão sendo cometidos ou estão subestimando o risco de comprometimento.”

Cronograma de varredura do NCSU GitHub

EQUIPE DE PESQUISA DESCOBRE ALGUNS VAZAMENTOS DE ALTO PERFIL

A qualidade extraordinária dessas varreduras ficou evidente quando os pesquisadores começaram a analisar o que e onde alguns desses vazamentos estavam se originando.

“Em um dos casos, encontramos o que acreditamos ser credenciais da AWS para um grande site usado por milhões de candidatos a faculdade nos Estados Unidos, possivelmente vazado por um contratado”, disse a equipe da NCSU.

“Também encontramos as credenciais da AWS para o site de uma grande agência governamental em um país da Europa Ocidental. Nesse caso, pudemos verificar a validade da conta e até mesmo o desenvolvedor específico que cometeu os segredos. Esse desenvolvedor afirma que presença online para ter quase 10 anos de experiência em desenvolvimento. “

Em outro caso, os pesquisadores também encontraram 564 chaves de API do Google que estavam sendo usadas por um site on-line para diminuir os limites de taxa do YouTube e baixar vídeos do YouTube que eles mais tarde hospedariam em outro portal de compartilhamento de vídeo.

“Como o número de chaves é tão alto, suspeitamos (mas não podemos confirmar) que essas chaves podem ter sido obtidas de forma fraudulenta”, disseram pesquisadores da NCSU.

Por último, mas não menos importante, os pesquisadores também encontraram 7.280 chaves RSA dentro dos arquivos de configuração do OpenVPN. Observando as outras configurações encontradas nesses arquivos de configuração, os pesquisadores disseram que a grande maioria dos usuários desativou a autenticação de senha e estava confiando apenas nas chaves RSA para autenticação, o que significa que qualquer um que encontrou essas chaves poderia ter acessado milhares de redes.

A alta qualidade dos resultados da varredura também ficou evidente quando os pesquisadores usaram outras ferramentas de varredura de token da API para analisar seu próprio conjunto de dados, a fim de determinar a eficiência de seu sistema de varredura.

“Nossos resultados mostram que o TruffleHog é altamente ineficaz na detecção de segredos, já que seu algoritmo detectou apenas 25,236% dos segredos em nosso conjunto de dados de pesquisa e 29,39% no conjunto de dados do BigQuery”, disse a equipe de pesquisa.

O GITHUB ESTÁ CIENTE E NO TRABALHO

De acordo com o portal ZDnet, Brad Reaves, professor assistente do Departamento de Ciência da Computação da North Carolina State University, disse que compartilhou os resultados do estudo com o GitHub em 2018.

“Nós discutimos os resultados com o GitHub. Eles iniciaram um projeto interno para detectar e notificar os desenvolvedores sobre segredos vazados logo após o final do nosso estudo. Esse projeto foi reconhecido publicamente em outubro de 2018 “, disse Brad.

“Fomos informados de que estão monitorando segredos adicionais além dos listados na documentação, mas não recebemos mais detalhes.

“Como o vazamento desse tipo é tão difundido, seria muito difícil notificarmos todos os desenvolvedores afetados. Um dos muitos desafios que enfrentamos é que simplesmente não temos uma maneira de obter informações de contato seguras para desenvolvedores do GitHub em escala “, acrescentou Brad.

“Na época em que nosso jornal foi publicado, estávamos tentando trabalhar com o GitHub para fazer notificações, mas, considerando a sobreposição entre a verificação de token e a deles, eles perceberam que não era necessária uma notificação adicional.”

VAZAMENTOS DE CHAVE DE API – UM PROBLEMA CONHECIDO

O problema dos desenvolvedores deixarem suas APIs e chaves criptográficas no código-fonte dos aplicativos e sites não é novo. A Amazon solicitou aos web devs que pesquisem seu código e removam quaisquer chaves da AWS de repositórios públicos até 2014 , e até mesmo lançaram uma ferramenta para ajudá-los a verificar os repositórios antes de enviar qualquer código para um repositório público.

Algumas empresas assumiram a responsabilidade de examinar o GitHub e outros repositórios de compartilhamento de código para exibir chaves de API expostas acidentalmente e revogar os tokens antes mesmo que os proprietários da chave da API percebessem o vazamento ou o abuso.

O que o estudo NCSU fez foi fornecer uma visão mais aprofundada deste problema até o momento.

O artigo que Brad Reaves escreveu em conjunto com Michael Meli e Matthew R. McNiece é intitulado “Como ele pode ser ruim? Caracterizando o vazamento secreto em repositórios públicos do GitHub”, e está disponível para download em formato PDF .

“Nossas descobertas mostram que o gerenciamento de credenciais em repositórios de software de código aberto ainda é um desafio para novatos e especialistas”, disse Brad.

Adriano Lopes

Adriano Lopes é o criador e proprietário do MundoHacker.net.br. Desenvolvedor Web, Hacker Ético, Programador C, Python, Especialista em Segurança da Informação.