O que é proteção por push?
A proteção por push é um secret scanning recurso projetado para impedir que credenciais codificadas, como segredos ou tokens, sejam enviadas por push para o repositório. Em vez de alertar você sobre vazamentos de credenciais após o fato, a proteção por push bloqueia pushs que contêm segredos antes que eles cheguem ao repositório.
Como funciona a proteção por push
A proteção de push bloqueia os segredos detectados em:
- Pushes da linha de comando
- Commits feitos na interface do usuário do GitHub
- Uploads de arquivo para um repositório em GitHub
- Solicitações à API REST
- Interações com o GitHub servidor MCP (somente repositórios públicos)
Quando a proteção por push detecta um segredo em potencial durante uma tentativa de push, ela bloqueará o push e fornecerá uma mensagem detalhada explicando o motivo do bloco. Você precisará revisar o código em questão, remover todas as informações confidenciais e tentar o envio por push novamente.
Tipos de proteção por push
Há dois tipos de proteção por push:
Proteção de push para repositórios
Você pode habilitar a proteção por push para repositórios no nível do repositório, da organização ou da empresa. Esta forma de proteção por push:
- É necessário habilitar GitHub Secret Protection
- É desabilitado por padrão e pode ser habilitado por um administrador de repositório, proprietário da organização, gerente de segurança ou proprietário da empresa
- Impede que pushes que contêm segredos atinjam repositórios específicos protegidos
- Gera alertas para bypasses de proteção por push na guia Security and quality do repositório, da organização e da empresa
Dica
Independentemente do status de habilitação da proteção por push, as organizações nas GitHub Team e GitHub Enterprise podem executar um relatório gratuito para escanear o código em busca de segredos vazados. O relatório também mostra quantos vazamentos secretos poderiam ter sido evitados pela proteção por push. Confira Sobre segurança secreta com GitHub.
Proteção por push para usuários
A proteção por push para usuários só está disponível GitHub.come é específica para sua GitHub conta. Esta forma de proteção por push:
- Está habilitado por padrão
- Impede que você envie segredos por push para repositórios públicos em GitHub
- Não gera alertas quando você ignora a proteção por push, a menos que a proteção por push também esteja habilitada no nível do repositório
Bypass de proteção por push e alertas
Para proteção por push para repositórios, por padrão, qualquer pessoa com acesso de gravação ao repositório pode ignorar a proteção por push especificando um motivo de bypass. Quando um colaborador ignora um bloqueio de push, GitHub:
- Cria um alerta na Security and quality aba do repositório, da organização e da empresa
- Adiciona o evento de desvio ao registro de auditoria
- Envia um alerta de email para proprietários de conta pessoal, organização e empresas, gerentes de segurança e administradores de repositório que estão assistindo ao repositório, com um link para o segredo e o motivo pelo qual ele foi permitido
Esta tabela mostra o comportamento dos alertas para cada motivo de bypass que um usuário pode especificar.
| Motivo do desvio | Comportamento do alerta |
|---|---|
| É usado em testes |
GitHub cria um alerta fechado, resolvido como "usado em testes" |
| Isso é um falso positivo | GitHub cria um alerta fechado, marcado como "falso positivo" | | Farei a correção mais tarde | GitHub cria um alerta aberto |
Se você deseja ter um controle maior sobre quais colaboradores podem ignorar a proteção de push e quais pushes contendo segredos devem ser permitidos, você pode configurar o bypass delegado para proteção de push. Com o bypass delegado, você pode conceder aos atores:
-
**Privilégios de bypass**, permitindo que eles mesmos ignorem a proteção de push, além de revisar e aprovar as solicitações de bypass feitas por outros colaboradores -
**Isenção da proteção de push**, permitindo que realizem o push de commits sem disparar a proteção de push
Benefícios da proteção por push
- Segurança preventiva: A proteção por push atua como um mecanismo de defesa de linha de frente verificando o código em busca de segredos codificados no momento do push. Essa abordagem preventiva ajuda a evitar vazamentos de credenciais antes que eles sejam inseridos no histórico do repositório, facilitando o endereçamento e a correção de ameaças.
- Comentários imediatos: os desenvolvedores recebem comentários instantâneos se um possível segredo for detectado durante uma tentativa de push. Essa notificação imediata permite uma correção rápida, reduzindo a probabilidade de exposição de informações confidenciais.
- Risco reduzido de vazamentos de credenciais: Ao bloquear confirmações que contêm credenciais codificadas, a proteção por push reduz significativamente o risco de vazamentos acidentais de credenciais e expansão secreta. Isso ajuda a proteger contra possíveis violações e manter a integridade da base de código.
- Gerenciamento de segredos eficiente: em vez de lidar retrospectivamente com segredos expostos, os desenvolvedores podem resolver os problemas na origem. Isso torna o gerenciamento de segredos mais eficiente e menos demorado.
- Funcionalidade de ignorar para flexibilidade: para casos em que ocorrem falsos positivos ou quando certos padrões são necessários, você pode desabilitar a proteção por push para os usuários, e os usuários autorizados podem usar o recurso delegado de ignorar para desabilitar a proteção por push para repositórios. Além disso, você pode isentar atores confiáveis completamente da proteção de push. Isso fornece flexibilidade sem comprometer a segurança geral.
- Capacidade de detectar padrões personalizados (para repositórios em organizações): As organizações podem definir padrões personalizados para detectar segredos exclusivos para seu ambiente. Essa personalização garante que a proteção por push possa identificar e bloquear até mesmo segredos não padrão com eficiência.
Personalização
Depois de habilitar a proteção por push para repositórios, você pode personalizá-la:
- Definindo padrões personalizados para bloquear pushes que contêm padrões secretos exclusivos
- Designar colaboradores que podem ignorar a proteção por push e aprovar solicitações de bypass para outros colaboradores ou estão isentos totalmente da proteção por push
- Configurando quais padrões de segredo são incluídos na proteção de push em nível empresarial ou organizacional
Próximas Etapas
Para habilitar a proteção por push:
- Para um repositório, consulte Habilitar a proteção de push para seu repositório.
- Para uma organização ou empresa, você precisa aplicar uma security configuration. Confira Criando uma configuração de segurança personalizada e Criando uma configuração de segurança personalizada.
Para obter uma lista de segredos e provedores de serviços compatíveis com a proteção por push, consulte Padrões de varredura de segredos com suporte.