Skip to main content
Skip to content

Proteção por Notificações Push

Proteja seus segredos evitando que alcancem seu repositório com proteção por push.

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 envioPadrões de parceirosPadrões genéricosPadrõ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 desvioComportamento 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