Vazamentos de informações classificadas encontradas em 100.000 repositórios no GitHub


A metodologia para coletar segredos inclui várias fases, o que permite identificar informações classificadas com um alto grau de confiança. Ilustração de um trabalho científico

O GitHub e plataformas semelhantes para publicação de código aberto hoje se tornaram ferramentas padrão para desenvolvedores. No entanto, surge um problema se esse código-fonte aberto funcionar com tokens de autenticação, chaves de API privadas e chaves criptográficas privadas. Para garantir a segurança, esses dados devem ser mantidos em segredo. Infelizmente, muitos desenvolvedores adicionam informações confidenciais ao código, o que geralmente leva a vazamentos acidentais de informações.

Uma equipe de pesquisadores da Universidade da Carolina do Norte conduziu um estudo em larga escala de vazamentos de dados classificados no GitHub. Eles examinaram bilhões de arquivos, que foram coletados por dois métodos complementares:

  • Quase seis meses de verificação pública do GitHub em tempo real
  • instantâneo de repositórios públicos, cobrindo 13% de todos os repositórios no GitHub, cerca de 4 milhões no total.

As conclusões são decepcionantes. Os cientistas não apenas descobriram que os vazamentos são generalizados e afetam mais de 100.000 repositórios. Pior ainda, milhares de novos "segredos" únicos chegam ao GitHub todos os dias.

A tabela lista as APIs de serviços populares e os riscos associados ao vazamento dessas informações.



As estatísticas gerais sobre os objetos secretos encontrados mostram que as chaves da API do Google geralmente entram no domínio público. Chaves privadas RSA e identificadores do Google OAuth também são comuns. Normalmente, a grande maioria dos vazamentos ocorre através de repositórios únicos.

SecretTotalÚnico%, um proprietário
Chave da API do Google212 89285 31195,10%
Chave secreta RSA158 01137.78190,42%
ID do Google OAuth106 90947.81496,67%
Chave privada regular30.28612.57688,99%
ID da chave de acesso do Amazon AWS26 395464891,57%
Token de acesso ao Twitter20.760795394,83%
Chave privada EC7838158474,67%
Token de acesso do Facebook6367171597,35%
Chave privada PGP209168482,58%
Chave da API MailGun186874294,25%
Chave da API MailChimp87148492,51%
Chave da API padrão de distribuição54221391,87%
Chave da API do Twilio32050.90,00%
Token de acesso quadrado1216196,67%
Secret Square OAuth28.1994,74%
Token de autenticação do Amazon MWS28.13100,00%
Token de acesso ao Braintree24887,50%
Chave da API Picatic54100,00%
Total575.456201 64293,58%

O monitoramento em tempo real das confirmações tornou possível determinar a quantidade de informações confidenciais removidas dos repositórios logo após chegar lá. Verificou-se que no primeiro dia pouco mais de 10% dos segredos são excluídos e alguns% nos dias seguintes, no entanto, mais de 80% das informações privadas permanecem nos repositórios duas semanas após a adição, e essa proporção praticamente não diminui no subsequente.

Entre os vazamentos mais notáveis, há uma conta da AWS de uma agência governamental em um dos países da Europa Oriental, bem como 7.280 chaves RSA privadas para acessar milhares de VPNs privadas.

O estudo mostra que um invasor, mesmo com recursos mínimos, pode comprometer muitos usuários do GitHub e encontrar uma tonelada de chaves privadas. Os autores observam que muitos métodos de proteção existentes são ineficazes contra a coleta de informações classificadas. Por exemplo, ferramentas como TruffleHog mostram apenas 25% de eficiência. O limite interno do GitHub para o número de solicitações de API também é facilmente ignorado.

No entanto, muitos segredos descobertos têm padrões claros que facilitam
a pesquisa deles. É lógico supor que esses mesmos padrões possam ser usados ​​para monitorar o vazamento de informações classificadas e avisar os desenvolvedores. Provavelmente, esses mecanismos devem ser implementados no servidor, ou seja, no GitHub. Um serviço pode emitir um aviso diretamente durante uma confirmação.

O GitHub implementou recentemente uma versão beta da verificação de token (função de verificação de token ), que verifica repositórios, pesquisa por tokens e notifica os provedores de serviços sobre vazamento de informações. Por sua vez, o fornecedor pode cancelar esta chave. Os autores acreditam que, graças às suas pesquisas, o GitHub pode melhorar esse recurso e expandir o número de fornecedores.

Source: https://habr.com/ru/post/pt445038/


All Articles