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
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.
A proteção por push pode bloquear os seguintes tipos de segredos.
Padrões de parceiros
GitHub bloqueia pushes que contêm credenciais específicas do provedor quando houver suporte à proteção por push para esse segredo como parte do programa de parceiros da secret scanning. Consulte padrões de provedores compatíveis.
Padrões genéricos
GitHub bloqueia pushes que contêm segredos estruturados que não estão vinculados a um provedor específico, como chaves privadas e cadeias de conexão de banco de dados. A verificação de padrões genéricos e proteção por push deve ser habilitada nas configurações de segurança do repositório ou na configuração de segurança para que isso funcione. Os padrões relevantes também devem ser habilitados na configuração de padrão de proteção por push da sua organização ou enterprise. Consulte Especificando padrões a serem incluídos na proteção por push.
Padrões personalizados
GitHub bloqueia pushes que contêm padrões personalizados, que são expressões regulares que você define para detectar segredos específicos para seu repositório, organização ou empresa. Ao definir um padrão personalizado, você pode optar por habilitar a proteção por push para ele. Consulte Definir padrões personalizados para a verificação de segredo.
Superfícies compatíveis com push
A tabela a seguir mostra quais tipos de segredo são bloqueados em cada superfície de push.
| Superfície de envio | Padrões de parceiros | Padrões genéricos | Padrões personalizados |
|---|---|---|---|
| Pushes da linha de comando | |||
| Confirmações feitas 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) |
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 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. Consulte 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 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