O que são segredos?
Segredos são credenciais que concedem acesso a sistemas e dados confidenciais. Exemplos comuns incluem:
- Chaves de API e tokens usados para autenticar com serviços externos
- Senhas de banco de dados e cadeias de conexão
- Credenciais do provedor de nuvem e tokens de conta de serviço
- Certificados e chaves de criptografia
Quando os segredos são confirmados em repositórios, eles se tornam credenciais codificadas que são inseridas diretamente em seu código-fonte ou arquivos de configuração. Esses segredos codificados tornam-se parte do seu histórico do Git e permanecem acessíveis mesmo depois de serem removidos da confirmação mais recente. Isso significa que o endereçamento de um vazamento de credencial requer mais do que excluir o arquivo; você também deve revogar e substituir a credencial para impedir o acesso não autorizado.
Como os segredos são expostos
**A expansão secreta** ocorre quando as credenciais proliferam entre repositórios, equipes e sistemas sem gerenciamento centralizado ou visibilidade. Isso dificulta o rastreamento de quais segredos existem, onde eles são usados e se foram expostos. Os segredos normalmente entram nos repositórios através de vários padrões comuns.
Fluxos de trabalho de desenvolvimento
- Credenciais codificadas adicionadas durante o teste local e confirmadas inadvertidamente
- Segredos em arquivos de configuração, como arquivos
.envou modelos de infraestrutura como código - Credenciais de exemplo que contêm chaves de API reais ou tokens na documentação, wikis ou arquivos README
Gerenciamento de repositório
- Repositórios herdados que contêm credenciais esquecidas, mas ainda ativas
- Segredos compartilhados em GitHub problemas, comentários de solicitação de pull, discussões ou gists
- Credenciais introduzidas por colaboradores externos ou empreiteiros
Propagação de controle de versão
- Os segredos persistem no histórico do Git mesmo após a remoção do código atual.
- As credenciais são propagadas para repositórios bifurcados, sistemas de backup e logs de CI/CD.
- Repositórios públicos com segredos expostos são indexados por mecanismos de pesquisa e serviços especializados de verificação.
Riscos à segurança
Segredos expostos podem levar a vários tipos de incidentes de segurança.
Acesso não autorizado
Vazamentos de credenciais fornecem aos usuários não autorizados acesso direto aos seus sistemas. Depois de expostos, os segredos codificados podem ser explorados para:
- Provisionar infraestrutura ou serviços em sua conta usando credenciais de provedor de nuvem vazadas
- Acessar dados confidenciais do cliente ou da organização por meio de credenciais de banco de dados comprometidas
- Obter acesso aos sistemas de produção por meio de tokens de conta de serviço expostos
Violações de dados
Vazamentos de credenciais fornecem aos usuários não autorizados acesso direto aos seus sistemas, levando a violações de dados. Depois que os invasores obtiverem acesso usando credenciais expostas, eles poderão exfiltrar dados confidenciais, modificar ou excluir informações críticas e comprometer a confiança do cliente. As violações de dados exigem resposta imediata a incidentes, incluindo revogação de credenciais, correção do sistema e avaliação do escopo e impacto da violação.
Ataques à cadeia de suprimentos
Os tokens de registro de pacote expostos podem ser usados para publicar versões mal-intencionadas do software, afetando usuários downstream e organizações que dependem de seus pacotes.
Impacto financeiro
Segredos expostos podem custar dinheiro à sua organização de várias maneiras.
-
**Contas de nuvem inesperadas**: as chaves de API vazadas permitem que os invasores usem seus recursos de nuvem. Eles podem executar instâncias de computação, armazenar dados ou minerar criptomoeda em sua conta, gerando faturas elevadas. -
**Resposta a incidentes**: investigar violações, girar credenciais e sistemas de auditoria exige tempo e recursos de engenharia significativos. -
**Custos legais**: violações de dados podem resultar em multas, taxas legais e despesas de notificação. -
**Danos a longo prazo**: clientes perdidos, custos de seguro mais altos e oportunidades de negócios perdidas após incidentes de segurança se tornarem públicos.
Segurança secreta com GitHub
GitHub fornece ferramentas para ajudá-lo a prevenir, detectar e corrigir vazamentos de segredo:
1. Impedir que novos segredos sejam comprometidos
Habilite a proteção por push para verificar o código durante git push as operações e bloquear commits que contêm segredos detectados antes de entrarem no seu repositório. Isso impede que credenciais codificadas sejam adicionadas à sua base de código e fornece comentários em tempo real aos desenvolvedores no ponto de risco, abrangendo padrões de provedor para serviços conhecidos e padrões que não são de provedor, como chaves privadas e chaves de API genéricas.
Incentive os desenvolvedores individuais a habilitar a proteção por push para suas contas pessoais para proteger todos os seus pushes, GitHubindependentemente das políticas da organização. Isso ajuda a evitar a expansão de segredo capturando credenciais vazadas antes que elas cheguem aos seus repositórios.
2. Detectar segredos existentes
Use secret scanning para monitorar continuamente seus repositórios em busca de segredos codificados e gerar alertas quando as credenciais forem detectadas, permitindo que você revogue e gire credenciais comprometidas rapidamente. Além da detecção padrão de padrões de provedor, você pode expandir a verificação para padrões que não são de provedor e definir padrões personalizados para segredos específicos da organização. Isso ajuda a obter visibilidade da disseminação descontrolada de segredos em toda a sua organização.
Próximas Etapas
Para proteger sua organização contra vazamentos secretos:
-
Execute uma avaliação de risco de segredo livre para entender sua exposição atual. Descubra como executar uma avaliação de risco de segredo gratuita
-
Habilite a proteção por push para impedir que novos segredos sejam commitados.
-
Habilitar secret scanning para começar a detectar vazamentos de segredo existentes.
-
Estabeleça práticas seguras de gerenciamento de credenciais para suas equipes de desenvolvimento.
Para obter uma visão geral dos recursos de GitHubsegurança secretos, consulte Sobre segurança secreta com GitHub.