4 ferramentas para evitar vazamentos em repositórios de código públicos

Views: 365
0 0
Read Time:5 Minute, 58 Second

Ferramentas ajudam a encontrar os segredos expostos da sua empresa em repositórios como GitLab, GitHub ou Google Cloud Build

Daniel Brame, da CSO

19/11/2021 às 9h55

Os segredos armazenados em repositórios Git têm sido um espinho no lado dos desenvolvedores e uma fonte essencial para os invasores há muito tempo. Garantir que as informações confidenciais sejam armazenadas de forma adequada e eliminadas dos repositórios tornou-se uma necessidade para reduzir a probabilidade de o software ser comprometido, muitas vezes de maneiras muito públicas. Embora pareça óbvio, é fácil ignorar strings de conexão codificadas, senhas e até credenciais de texto simples armazenadas pela própria ferramenta de desenvolvimento. O Visual Studio, por exemplo, pode armazenar credenciais de conexão SQL em texto simples, a menos que seja informado o contrário.

Só em 2020, o GitGuardian detectou mais de 2 milhões de segredos em repositórios públicos. A hipótese, nesse caso, foi de que uma credencial vazada produzida por um estagiário desempenhou um papel na execução do ataque SolarWinds. Com casos de destaque como este, vale a pena dedicar um minuto para avaliar se seus próprios projetos podem ser expostos dessa forma.

O truque é encontrar os segredos para começar. Eles geralmente estão escondidos em códigos ou arquivos XML obscuros e codificados de maneiras que são difíceis de encontrar. A limpeza manual do código está sujeita a erros e provavelmente resultará em descuidos. Infelizmente, uma vez que o Git, como outros sistemas de controle de origem, mantém os commits anteriores, limpar um segredo exposto vai além de meramente deletar o segredo do código e refazer o commit. Ele precisa ser eliminado da história, o que às vezes pode significar um recomeço. Por isso, é importante acertar logo no início do processo.

Felizmente, várias ferramentas estão disponíveis para ajudar a lidar com esse tipo de problema. Embora a maioria seja de linha de comando, algumas são opções baseadas na web. Todos compartilham uma funcionalidade semelhante, mas alcançam o resultado de maneiras ligeiramente diferentes. As principais informações que procuram incluem nomes de usuário, senhas, chaves privadas e outras informações potencialmente confidenciais.

Ao considerar qual usar, é importante avaliar suas próprias habilidades técnicas, tempo disponível para aprender uma nova ferramenta, se você precisa de detecções personalizadas e orçamento.

Gitleaks

GitLeaks pode ser instalado usando Homebrew, Docker ou Go, que está disponível em várias plataformas. Uma vez instalado, você será capaz de definir regras e executar a ferramenta de linha de comando para escanear seu repositório Git. As regras são escritas usando TOML (Tom’s Obvious Minimal Language) que se parece com um cruzamento entre arquivos JSON e Windows INI. Cada regra é uma expressão regular, por isso é útil ser fluente nelas.

Felizmente, uma vez aprendido, não há limite para os tipos de padrões com os quais você pode comparar. GitLeaks também fornece alguns exemplos de configurações que você pode usar se precisar atualizar seu conhecimento de expressões regulares ou precisar de um bom ponto de partida para construir o seu próprio. Além disso, uma configuração padrão irá capturar a maioria dos segredos comuns que você não quer que bandidos ou funcionários desonestos encontrem.

Depois de executar a ferramenta, você receberá uma lista de problemas e um código de retorno se quiser automatizar suas verificações. GitLeaks é uma ferramenta poderosa que requer que você saiba o que está fazendo, mas é leve o suficiente para caber no pipeline de desenvolvimento de qualquer pessoa.

GittyLeaks

GittyLeaks tem um nome semelhante a GitLeaks, mas é uma ferramenta muito diferente. É escrito em Python e é uma espécie de “pônei de um truque só”. Depois de instalá-lo com o pip, você pode executá-lo a partir da pasta de onde seu repositório git foi clonado. Ele tentará procurar palavras como nome de usuário, senha e e-mail que podem ter sido esquecidos. Ainda é um trabalho em andamento e carece de um mecanismo sólido para personalizar os padrões de pesquisa, bem como lidar com a correção, mas faz o trabalho de encontrar segredos e não requer o aprendizado de sintaxe de regra especial como GitLeaks.

A única parte complicada de qualquer ferramenta Python é garantir que você está executando a versão certa do Python e a versão certa do pip. Contanto que você preste muita atenção a ambos, não haja problemas ao executar a ferramenta e obter bons resultados.

SpectralOps

SpectralOps da Spectral é uma solução paga. Embora a Spectral não forneça preços publicamente, você pode se inscrever para uma demonstração em seu site e perguntar sobre isso. Os benefícios do SpectralOps são muitos. Ele se integra a várias fontes de dados além do Git. Ele pode fazer interface com GitHub, GitLab, NPM, Google Cloud Build e muito mais. Muito parecido com as opções gratuitas, é uma ferramenta de linha de comando que verifica seu código antes de ir para a nuvem.

O que diferencia o SpectralOps é que ele pode se integrar facilmente a vários sistemas de integração contínua (CI), que são ferramentas que criam e testam alterações de código automaticamente. SpectralOps usa arquivos YAML especialmente criados, chamados de detectores, para detectar segredos definidos em seu código. Enquanto Spectral está constantemente expandindo esta biblioteca, você está livre para escrever a sua.

O SpectralOps é claramente voltado para uma equipe de desenvolvimento maior com um orçamento e muito suporte por trás disso. Se você precisa de um passo acima das ferramentas gratuitas e tem preocupações com a privacidade, vale a pena dar uma olhada no SpectralOps.

GitGuardian

GitGuardian é uma solução totalmente baseada na web que verifica continuamente seus repositórios em busca de segredos. É quase totalmente automatizado e funciona como um produto de proteção de endpoint para o seu código. Ele se conecta diretamente ao GitHub, Bitbucket, GitLab ou aos seus repositórios internos e os monitora continuamente em busca de segredos. Quaisquer segredos descobertos podem ser tratados, rastreados e corrigidos de dentro do aplicativo.

Embora você ainda precise fazer edições manuais em seu Repositório Git, GitGuardian garante que você siga todas as etapas necessárias para garantir a remoção adequada do segredo. GitGuardian é gratuito para repositórios privados e pequenas equipes de até 25 desenvolvedores. Qualquer coisa acima disso começa em US$ 434 por mês e aumenta a partir daí.

A única parte com a qual alguns podem ter problemas é o fato de que ele precisa se conectar diretamente ao seu repositório. Se você tiver certas políticas de privacidade ou outras preocupações que possam proibir isso, pode fazer mais sentido procurar uma ferramenta off-line. Dito isso, se você não gosta de se preocupar com uma linha de comando e prefere uma abordagem visual, GitGuardian é o caminho a seguir.

Não importa seu orçamento ou nível de habilidade técnica, há uma ferramenta disponível para ajudá-lo a garantir que segredos de missão crítica não vazem para o mundo por meio de seu sistema de controle de origem. Ao dedicar algum tempo e adotar um desses aplicativos em seu processo de desenvolvimento, você pode dar um grande passo no sentido de fazer sua organização e sua base de usuários se sentirem menos em risco, evitando a notoriedade das manchetes na primeira página.

FONTE: CIO

POSTS RELACIONADOS