Skip to main content

Como trabalhar com a proteção contra push

A proteção contra push protege você de forma proativa contra o vazamento de segredos em repositórios ao realizar o bloqueio de envios por push que contêm segredos. Para enviar por push um commit que contém um segredo, você deve especificar um motivo para ignorar o bloqueio..

Quem pode usar esse recurso?

A proteção por push está disponível para os repositórios pertencentes a uma organização no GitHub Enterprise Server se a sua empresa tem uma licença do GitHub Advanced Security.

Informações sobre como trabalhar com a proteção contra push

A proteção contra push evita que você faça commit de segredos acidentalmente em um repositório ao realizar o bloqueio de envios por pushes que contêm segredos com suporte.

É possível trabalhar com a proteção contra push usando a linha de comando ou a interface do usuário da Web.

Para obter mais informações sobre como trabalhar com a proteção contra push, incluindo como ignorar o bloqueio, se necessário, confira “Como usar a proteção contra push na linha de comando” e “Como usar a proteção por push na interface do usuário da Web” neste artigo.

Como usar a proteção contra push na linha de comando

Quando você tentar efetuar push de um segredo compatível para um repositório como uma proteção por push habilitada, o GitHub bloqueará o push. Você pode remover o segredo da ramificação ou seguir uma URL fornecida a fim de permitir o push.

Até cinco segredos detectados serão exibidos por vez na linha de comando. Se um segredo específico já tiver sido detectado no repositório e um alerta já existir, o GitHub não bloqueará esse segredo.

Se você confirmar que um segredo é real, precisará remover o segredo do branch, de todos os commits em que ele aparece, antes de efetuar push novamente. Para saber mais sobre como corrigir segredos bloqueados, confira "Efetuar push de um branch bloqueado pela proteção por push".

Se você confirmar que um segredo é real e que pretende corrigi-lo mais tarde, tente corrigi-lo o mais rápido possível. Por exemplo, você pode revogar o segredo e removê-lo do histórico de commits do repositório. Segredos reais que foram expostos devem ser revogados para evitar acesso não autorizado. Você pode considerar primeiro rotacionar o segredo antes de revogá-lo. Para obter mais informações, confira "Remover dados confidenciais de um repositório".

Observações:

  • Se a configuração do Git oferecer suporte a pushes para vários branches e não apenas para o branch atual, o push poderá ser bloqueado devido a referências adicionais e não intencionais serem enviadas por push. Para obter mais informações, confira as opções push.default na documentação do Git.
  • Se secret scanning atingir o tempo limite após o push, GitHub ainda executará uma verificação dos seus commits para segredos após o push.

Em alguns casos, pode ser necessário ignorar o bloqueio de um segredo. Para obter mais informações sobre como ignorar a proteção contra push e enviar um segredo bloqueado, confira “Como ignorar a proteção contra push ao trabalhar com a linha de comando”.

Como ignorar a proteção contra push ao trabalhar com a linha de comando

Se o GitHub bloquear um segredo que você acredita ser seguro para o envio por push, você poderá ignorar o bloqueio ao especificar um motivo para permitir que o segredo seja enviado por push.

Quando você permite que um segredo seja enviado por push, um alerta será criado na guia Segurança. GitHub fecha o alerta e não envia uma notificação se você especificar que o segredo é um falso positivo ou usado apenas em testes. Se você especificar que o segredo é real e que o corrigirá mais tarde, GitHub manterá o alerta de segurança aberto e enviará notificações ao autor do commit, bem como aos administradores do repositório. Para obter mais informações, confira "Gerenciar alertas da verificação de segredo".

Quando um colaborador ignora um bloco de proteção por push para um segredo, GitHub também envia um alerta de e-mail para os proprietários da organização, gerentes de segurança e administradores de repositório que optaram por receber notificações por e-mail.

  1. Acesse a URL retornada pelo GitHub quando o push foi bloqueado.

  2. Escolha a opção que melhor descreve o motivo pelo qual você deve conseguir efetuar push do segredo.

    • Se o segredo for usado apenas em testes e não representar nenhuma ameaça, clique em Ele é usado em testes.
    • Se a cadeia de caracteres detectada não for um segredo, clique em É um falso positivo.
    • Se o segredo for real, mas você pretender corrigi-lo mais tarde, clique em Corrigirei mais tarde.
  3. Clique em Permitir que eu efetue push deste segredo.

  4. Tente efetuar push novamente na linha de comando em até três horas. Se você não efetuar push em até três horas, precisará repetir esse processo.

Como usar a proteção contra push na interface do usuário da Web

Quando você usa a interface do usuário da Web para tentar fazer commit de um segredo com suporte em um repositório ou uma organização com a verificação de segredo como uma proteção por push habilitada, o GitHub bloqueará o commit.

Você verá uma caixa de diálogo com informações sobre a localização do segredo, bem como opções que permitem enviar o segredo por push. O segredo também será sublinhado no arquivo para que você possa encontrá-lo facilmente.

Para um commit bloqueado, é possível remover o segredo do arquivo usando a interface do usuário da Web. Depois de remover o segredo, você poderá confirmar suas alterações.

O GitHub exibirá apenas um segredo detectado por vez na interface do usuário da Web. Se um segredo específico já tiver sido detectado no repositório e um alerta já existir, o GitHub não bloqueará esse segredo.

Os proprietários da organização podem fornecer um link personalizado que será exibido quando um push for bloqueado. Esse link personalizado pode conter recursos e conselhos específicos para sua organização. Por exemplo, o link personalizado pode apontar para um arquivo README com informações sobre o cofre secreto da organização, para quais equipes e indivíduos escalar perguntas ou a política aprovada pela organização para trabalhar com segredos e reescrever o histórico de confirmação.

É possível ignorar o bloqueio ao especificar um motivo para permitir o segredo. Para obter mais informações sobre como ignorar a proteção contra push e fazer commit do segredo bloqueado, confira “Como ignorar a proteção contra push ao trabalhar com a interface do usuário da Web”.

Como ignorar a proteção contra push ao trabalhar com a interface do usuário da Web

Se você confirmar que um segredo é real, precisará remover o segredo do branch, de todos os commits em que ele aparece, antes de efetuar push novamente. Para saber mais sobre como corrigir segredos bloqueados, confira "Efetuar push de um branch bloqueado pela proteção por push".

Se você confirmar que um segredo é real e que pretende corrigi-lo mais tarde, tente corrigi-lo o mais rápido possível. Para obter mais informações, confira "Remover dados confidenciais de um repositório".

Se o GitHub bloquear um segredo que você acredita ser seguro para fazer commit, você poderá ignorar o bloqueio ao especificar um motivo para permitir o segredo.

Quando você permite que um segredo seja enviado por push, um alerta será criado na guia Segurança. GitHub fecha o alerta e não envia uma notificação se você especificar que o segredo é um falso positivo ou usado apenas em testes. Se você especificar que o segredo é real e que o corrigirá mais tarde, GitHub manterá o alerta de segurança aberto e enviará notificações ao autor do commit, bem como aos administradores do repositório. Para obter mais informações, confira "Gerenciar alertas da verificação de segredo".

Quando um colaborador ignora um bloco de proteção por push para um segredo, GitHub também envia um alerta de e-mail para os proprietários da organização, gerentes de segurança e administradores de repositório que optaram por receber notificações por e-mail.

  1. Na caixa de diálogo que apareceu quando GitHub bloqueou o commit, examine o nome e o local do segredo.

  2. Escolha a opção que melhor descreve o motivo pelo qual você deve conseguir efetuar push do segredo.

    • Se o segredo for usado apenas em testes e não representar nenhuma ameaça, clique em Ele é usado em testes.
    • Se a cadeia de caracteres detectada não for um segredo, clique em É um falso positivo.
    • Se o segredo for real, mas você pretender corrigi-lo mais tarde, clique em Corrigirei mais tarde.
  3. Clique em Permitir segredo.

Leitura adicional