Segurança GitHub: 7 Ferramentas para Detectar Credenciais Vazadas

Explore maneiras de descobrir se o seu repositório no GitHub contém informações confidenciais, como senhas, chaves secretas e outros dados sensíveis.

O GitHub é uma plataforma usada por milhões de pessoas para hospedar e compartilhar códigos. Embora seja extremamente útil, ocasionalmente desenvolvedores e proprietários de código podem, sem querer, inserir informações confidenciais em repositórios públicos, o que pode gerar problemas sérios.

Houve diversos incidentes onde informações confidenciais foram vazadas no GitHub. Embora seja impossível eliminar completamente o erro humano, podemos adotar medidas para diminuir os riscos.

Como garantir que seu repositório não contém senhas ou chaves?

A resposta mais simples é: não as armazene diretamente.

A prática recomendada é usar um software de gerenciamento de segredos para armazenar todas as informações confidenciais.

No entanto, quando se trabalha em equipe, nem sempre é possível controlar as ações de todos.

Além disso, se você usar o Git para inicializar e implantar sua aplicação, ele cria a pasta .git. Se esta pasta for acessível pela internet, pode expor informações confidenciais, o que é indesejável. Considere bloquear o URI .git.

As seguintes soluções podem ajudar você a encontrar erros em seu repositório.

Verificação de Segredos

A funcionalidade de verificação de segredos do GitHub é uma ferramenta eficaz que identifica segredos que possam estar escondidos no seu código, prevenindo vazamentos de dados e outras complicações. Ela atua em repositórios públicos e privados, inspecionando cada canto para descobrir qualquer segredo.

Além disso, quando um segredo é detectado, o GitHub notifica os provedores de serviço responsáveis, solicitando a mitigação de riscos. Em repositórios privados, o GitHub notifica os proprietários ou administradores da organização, garantindo que as pessoas certas sejam informadas da situação.

Para fornecer visibilidade contínua, os avisos são exibidos de forma clara no repositório, para que você e sua equipe possam tomar medidas imediatas. A verificação de segredos do GitHub funciona como um aliado, trabalhando para garantir que nenhum segredo passe despercebido, e que seus projetos permaneçam seguros.

Utilize a verificação de segredos para codificar com mais segurança, sabendo que suas informações confidenciais estão protegidas.

Git Secrets

O git-secrets é uma ferramenta que pode ajudar a evitar a inclusão acidental de segredos em seus repositórios Git. Ele verifica commits, mensagens de commits e merges para prevenir o vazamento de informações confidenciais no seu código.

Para começar no Windows, basta executar o script install.ps1 do PowerShell. Ele copia os arquivos necessários para um diretório de instalação e adiciona este diretório ao PATH do usuário, tornando o git-secrets acessível de qualquer lugar no ambiente de desenvolvimento.

Uma vez instalado, o git-secrets verifica seu histórico de commits, mensagens de commit e merges, comparando-os com padrões configurados. Se detectar uma correspondência, o commit será rejeitado, evitando que informações confidenciais sejam incluídas.

Padrões de expressão regular podem ser adicionados a um arquivo .gitallowed na raiz do repositório para personalizar o git-secrets. Isso permite filtrar linhas que possam gerar um aviso, mas sejam legítimas, equilibrando segurança e praticidade.

Ao analisar um arquivo, o git-secrets extrai todas as linhas que coincidem com padrões proibidos, fornecendo detalhes como caminhos de arquivos, números de linha e as linhas correspondentes. Ele também verifica se as linhas que coincidem correspondem a padrões permitidos. Se os padrões permitidos cancelarem todas as linhas sinalizadas, o commit ou merge é considerado seguro. Caso contrário, o git-secrets bloqueia o processo.

Ao usar o git-secrets, é preciso ter cuidado. Os padrões proibidos não devem ser muito amplos, e os padrões permitidos não devem ser muito permissivos. Teste seus padrões usando o comando `git secrets –scan $filename` para garantir que funcionem como esperado.

Se você quiser saber mais sobre o git-secrets ou contribuir para seu desenvolvimento, o projeto está disponível no GitHub como código aberto. Participe da comunidade e faça a diferença!

Com o git-secrets, você pode programar com confiança, sabendo que segredos acidentais não prejudicarão seus projetos. Use esta ferramenta para manter suas informações confidenciais seguras.

Repo-Supervisor

O Repo-supervisor é uma ferramenta que detecta segredos e senhas no seu código. A instalação é simples: basta adicionar um webhook ao seu repositório GitHub. O repo-supervisor oferece dois modos: escanear pull requests no GitHub ou escanear diretórios locais a partir da linha de comando.

Para usar o repo-supervisor, visite o repositório no GitHub e baixe a versão mais recente. Há pacotes personalizados para implantação no AWS Lambda e um modo CLI. O modo CLI pode ser usado sem nenhuma configuração adicional, enquanto o modo pull request requer implantação no AWS Lambda.

No modo CLI, forneça um diretório como argumento, e o Repo-supervisor verificará os tipos de arquivo suportados, processando cada arquivo com um tokenizador específico. Ele verifica a segurança das strings extraídas e gera relatórios em texto ou JSON.

No modo de pull request, o Repo-supervisor processa os webhooks, extrai os arquivos modificados e verifica a segurança das strings extraídas. Se forem encontrados problemas, ele define o status do CI como erro, incluindo um link para o relatório. Se não houver problemas, o status do CI será definido como sucesso.

O Repo-supervisor é uma ferramenta que mantém seus segredos e senhas seguros, garantindo a integridade do seu código.

Instale o Repo-supervisor, configure o webhook, e deixe-o verificar seus repositórios. Aproveite essa camada extra de segurança!

Truffle Hog

O Truffle Hog é uma ferramenta que examina seus repositórios em busca de informações sensíveis como chaves de API e senhas. Ele verifica o histórico do seu projeto, procurando por possíveis vazamentos.

Usando verificações de alta entropia e padrões regex, o Truffle Hog identifica segredos e garante a segurança do seu código.

A versão mais recente do Truffle Hog possui mais de 700 detectores de credenciais que verificam ativamente APIs. Ele também suporta verificação de GitHub, GitLab, sistemas de arquivos, S3, GCS e Circle CI.

O TruffleHog agora também suporta verificação de chaves privadas de usuários do GitHub e certificados TLS, usando tecnologia Driftwood. Ele também verifica binários e outros formatos de arquivo.

Além disso, o TruffleHog está disponível como uma ação do GitHub e um gancho de pré-commit, integrando-se ao seu fluxo de trabalho de desenvolvimento, para uma camada extra de segurança sem complicações.

Com o Truffle Hog, você pode proteger seu código contra exposições acidentais. Use o Truffle Hog e deixe-o proteger seus projetos.

Git Hound

O GitHound utiliza a pesquisa de código do GitHub, correspondência de padrões e pesquisa de histórico de commits para encontrar informações confidenciais. Ele pode pesquisar todo o GitHub, não apenas repositórios, usuários ou organizações específicas.

O Git Hound utiliza a pesquisa de código GitHub/Gist, permitindo identificar informações confidenciais no GitHub. Ele detecta informações confidenciais usando correspondência de padrões, informações contextuais e entropia de string. Ele verifica o histórico de commits para encontrar segredos excluídos.

Para facilitar a análise, o GitHound inclui um sistema de pontuação que filtra falsos positivos, otimizando sua busca por informações em repositórios.

O Git Hound também detecta e decodifica strings em base64, para revelar segredos ocultos.

O GitHound oferece opções para integrá-lo a sistemas maiores. Você pode gerar saída JSON e personalizar regexes. Ele oferece flexibilidade e permite que você construa sobre sua base.

O GitHound pode ser usado para encontrar chaves de API de clientes expostas, protegendo informações confidenciais. Para caçadores de recompensas de bugs, o Git Hound permite pesquisar tokens de API de funcionários vazados, ajudando a descobrir vulnerabilidades.

Gitleaks

O Gitleaks é uma ferramenta que detecta segredos em seu código, seja no passado ou presente. Ele evita a exposição de senhas, chaves de API e tokens.

A instalação do Gitleaks pode ser feita com Homebrew, Docker ou Go. Ele pode ser configurado como um gancho de pré-commit no seu repositório, ou pode ser integrado aos fluxos de trabalho do GitHub usando o Gitleaks-Action.

O Gitleaks possui o comando “detectar”, para verificar repositórios, diretórios e arquivos individuais. Ele também fornece o comando “proteger”, que verifica alterações ainda não commitadas, impedindo que segredos sejam incluídos inadvertidamente.

O Gitleaks é patrocinado pela Tines, garantindo que ele seja constantemente aprimorado para oferecer as melhores funcionalidades de detecção de segredos.

Instale o Gitleaks e deixe-o verificar seus repositórios.

Repo Security Scanner

O Repo Security Scanner é uma ferramenta de linha de comando que identifica dados confidenciais, como senhas, tokens, chaves privadas e outros segredos em seu repositório Git.

Essa ferramenta detecta e resolve vulnerabilidades de segurança decorrentes da inclusão não intencional de informações confidenciais no seu código. Ao usar o scanner de segurança do repositório, você pode proteger seu repositório e seus dados confidenciais contra acesso não autorizado.

O Repo Security Scanner analisa o histórico do repositório, apresentando resultados de verificação detalhados. Ao realizar verificações completas, você pode identificar e resolver vulnerabilidades de segurança que possam surgir de segredos expostos em software de código aberto.

Git Guardian

O GitGuardian é uma ferramenta que permite que desenvolvedores, equipes de segurança e conformidade monitorem a atividade do GitHub em tempo real, identificando vulnerabilidades causadas por segredos expostos, como tokens de API, certificados de segurança e credenciais de banco de dados.

O GitGuardian permite que as equipes implementem políticas de segurança em códigos privados e públicos, além de outras fontes de dados.

Os principais recursos do GitGuardian são:

  • A ferramenta ajuda a encontrar informações confidenciais, como segredos no código-fonte privado.
  • Identifica e corrige vazamentos de dados confidenciais no GitHub público.
  • É uma ferramenta de detecção de segredos eficaz, transparente e fácil de configurar.
  • Possui ampla cobertura e um banco de dados abrangente para cobrir quase todas as informações confidenciais em risco.
  • Utiliza técnicas de correspondência de padrões para melhorar a detecção e a eficácia.

Conclusão

Este artigo apresenta diversas ferramentas para encontrar dados confidenciais em seu repositório no GitHub. Se você usa a AWS, confira também os artigos sobre como verificar a segurança e configuração da AWS. Fique atento para mais ferramentas que podem melhorar seu trabalho. Codifique com segurança e mantenha seus segredos protegidos! 🔒