Como evitar o vazamento de senhas do GitHub

Centenas de milhares de tokens e senhas criptografadas do GitHub foram descobertas. Explicamos o porquê isso é ruim e como evitar o vazamento.

Recentemente, pesquisadores da Universidade Estadual da Carolina do Norte descobriram mais de 100.000 projetos no GitHub com tokens, senhas criptográficas e outros dados confidenciais armazenados de forma aberta. No total, mais de meio milhão desses objetos foram encontrados em domínio público dos quais mais de 200 mil são únicos. Além disso, estamos falando de grandes empresas como a Google, Amazon MWS, Twitter, Facebook, MailChimp, MailGun, Stripe, Twilio, Square, Braintee e Picatic.
O GitHub é um recurso popular para desenvolvimento cooperativo de softwares. É usado para armazenar códigos em repositórios com acesso aberto e restrito, conectando colegas, envolvendo-os em testes de programas e utilizando códigos abertos e prontos para suas tecnologias. Como ele simplifica muito e acelera a criação de aplicativos e serviços, muitos programadores estão satisfeitos em utilizar a plataforma, assim como empresas que criam seus próprios softwares baseados em módulos de fonte aberta. Inclusive, empresas que buscam transparência também usam com frequência.

Contudo, deve-se ter alguns cuidados especiais ao divulgar códigos no GitHub – conselhos que nem sempre os desenvolvedores levam em conta.

Quais dados foram a domínio público?

Descobriu-se que o GitHub hospedava códigos abertos contendo tokens e senhas suficientes para conceder autorização e executar ações em nome dos usuários ou aplicativos. Entre essas informações divulgadas erroneamente estão:

  • Credenciais de login de contas de administradores em sites importantes.
  • Senhas ou tokens que habilitam funções internas do API das aplicações – um conjunto de ferramentas para interação entre vários componentes do sistema, por exemplo, um programa e um site.
  • Chaves criptografadas, muitas das quais são usadas para autenticação no lugar de senhas, e basta conhecer apenas uma para obter acesso de muitos recursos, incluindo redes privadas.

Porque os vazamentos de senhas criptografadas e tokens são arriscados?

O acesso desautorizado a suas contas, mesmo limitado, representa uma ameaça séria ao seu negócio. Alguns exemplos a seguir.

Uma forma de usar os tokens publicados no GitHub para fins escusos é distribuir e-mails e artigos supostamente como a empresa que fez a postagem original. Por exemplo, um intruso poderia ganhar acesso ao site corporativo ou conta do Facebook ou Twitter, e publicar um artigo com um link malicioso ou de phishing. Já que sites oficiais e contas geralmente são consideradas fontes de informação confiável, o risco que muitos leitores assumem que o link divulgado seja oficial é alto.

Além disso, cibercriminosos podem enganar pessoas a entrarem em sua lista de inscritos (por exemplo, no MailChimp). Como no cenário anterior, a expectativa é que o usuário confiará cegamente no e-mail como se fosse de uma empresa honesta. Esses ataques podem ferir seriamente a reputação de um negócio e causar diversos danos em termos de clientes perdidos e tempo gasto na restauração das operações.

Por último, os criminosos podem simplesmente usar as funções pagas do serviço – por exemplo, Amazon AWS – às suas custas. Por exemplo, o blogueiro Luke Chadwik uma vez recebeu uma mensagem da Amazon que dizia que sua senha foi publicada no GitHub. Uma pesquisa levou até um projeto antigo que por algum motivo ele esqueceu de fechar. Quando ele acessou sua conta na Amazon, descobriu mais de U$ 3 mil de taxas pendentes. No fim, um usuário não autorizado conseguiu suas credenciais e roubou criptomoedas. A Amazon reembolsou Chadwick. Mas lembre-se que o fim dessa história nem sempre é feliz.

Como dados privados acabaram no GitHub?

Os resultados da análise da investigação mostram que não são apenas os programadores iniciantes que deixam informações confidenciais em domínio público. Por exemplo, dados que fornecem acesso a sites de instituições governamentais importantes foram postados no GitHub por um desenvolvedor com mais de 10 anos de experiência.

Os motivos para publicar tokens e senhas no GitHub são variados. Por exemplo, as ferramentas de autorização podem ser necessárias para integrar um app com um serviço em particular. Quando o código foi publicado para teste, alguns programadores usaram senhas válidas no lugar de depuradas, e esqueceram de removê-las do acesso público.

Outro caso, os analistas do Securosis e o CEO Rich Mogull postaram no GitHub um aplicativo desenvolvido para uma conferência. O programa fez chamadas para o Amazon AWS, e ele armazenou todos os dados localmente. Contudo, a depuração individual dos blocos de código permitiu que ele criasse um arquivo de teste contendo diversas senhas de acesso. Depois da depuração, Mogull simplesmente esqueceu de removê-los do arquivo. Foram subsequentemente encontrados por intrusos que gastaram U$ 500 em serviços da Amazon antes de serem notados.

Além disso, desenvolvedores podem simplesmente não saber do risco de abandonar tokens válidos nos repositórios do GitHub e a necessidade de apontar e deletar (ou substituir) antes de deixar o código ali.

Como proteger seus recursos

  • Torne seus desenvolvedores conscientes que o upload de tokens válidos e senhas para abrir repositores é perigoso. Programadores devem entender isso antes de inserir seus códigos, eles devem confirmar a presença de dados secretos.
  • Faça com que o gerente do produto audite o projeto da sua empresa no GitHub para ver se esse contém informações confidenciais, e se sim, seja responsável pela exclusão correta; note que isso deve ser removido no projeto inteiro, nada deve ficar no histórico de mudanças.
  • Se qualquer dado armazenado no GitHub por sua empresa possuir uma senha, altere-a. não há como saber se alguém já a viu e salvou.
  • Trabalhe na conscientização de seus colaboradores frequentemente, de forma que usem responsavelmente o GitHub e outras ferramentas para tornar essa forma de pensar como algo natural em todos processos. Nossa plataforma o ajudará a fazer isso de forma eficiente e praticamente sem qualquer interrupção nas operações.
Dicas