Skip to main content

Proteção por push para repositórios e organizações

Com a proteção por push para repositórios e organizações, secret scanning bloqueia os colaboradores de enviar segredos para um repositório e gera um alerta sempre que um colaborador ignora o bloqueio.

Quem pode usar esse recurso?

A proteção por push para repositórios e organizações está disponível gratuitamente para repositórios públicos de propriedade do usuário. As organizações que usam o GitHub Enterprise Cloud com uma licença do GitHub Advanced Security também podem habilitar a proteção por push em seus repositórios privados e internos.

Sobre a proteção por push para repositórios e organizações

Até agora, a secret scanning verifica se há segredos após um push e alerta os usuários sobre os segredos expostos. Quando você habilita a proteção por push na organização ou no repositório, a secret scanning também verifica pushes para segredos com suporte. O Secret scanning lista todos os segredos que detecta, para que o autor possa examinar os segredos e removê-los ou, se permitido, permitir que esses segredos sejam enviados por push. Secret scanning também podem verificar pushes em busca de padrões personalizados. Para obter mais informações, consulte "Definir padrões personalizados para a verificação de segredo."

Se um colaborador ignorar um bloco de proteção por push para um segredo, GitHub:

  • criará um alerta na guia Segurança do repositório.
  • adiciona o evento bypass ao log de auditoria.
  • envia um alerta por email para proprietários da organização ou da conta pessoal, gerentes de segurança e administradores de repositório que estiverem inspecionando o repositório, com um link para o segredo e o motivo pelo qual ele foi permitido.

Esta tabela mostra o comportamento dos alertas referente a cada maneira como o usuário pode ignorar um bloco de proteção por push.

Motivo do bypassComportamento do alerta
É usado em testesO GitHub cria um alerta fechado, que é resolvido como "usado em testes"
Isso é um falso positivoO GitHub cria um alerta fechado, que é resolvido como "falso positivo"
Farei a correção mais tardeO GitHub cria um alerta aberto

Por padrão, qualquer pessoa com acesso de gravação ao repositório pode optar por ignorar a proteção de push especificando um dos motivos de bypass descritos na tabela. Se desejar maior controle sobre quais contribuidores podem ignorar a proteção de push e quais envios por push contendo segredos devem ser permitidos, você pode habilitar o bypass delegado para proteção de push. O bypass delegado permite configurar um grupo designado de revisores para supervisionar e gerenciar solicitações a fim de ignorar a proteção de push de contribuidores que enviam por push para o repositório. Para obter mais informações, consulte "Habilitar o bypass delegado para proteção de push".

Na página de alertas do secret scanning de um repositório ou organização, você pode aplicar o filtro bypassed:true para ver facilmente quais alertas são o resultado de um usuário ignorar a proteção de envio por push. Para obter mais informações sobre como exibir esses alertas, consulte "Gerenciar alertas da verificação de segredo".

É possível monitorar os alertas de segurança para descobrir quando os usuários ignoram as proteções de push e criam alertas. Para obter mais informações, confira "Alertas de segurança de auditoria".

Se você for proprietário de uma organização ou gerente de segurança, poderá exibir métricas sobre o desempenho da proteção de push na organização. Para obter mais informações, confira "Exibir métricas para proteção por push de verificação de segredo em sua organização".

Nota: o editor baseado na Web github.dev não suporta proteção push. Para saber mais sobre o editor, confira "O editor github.dev baseado na web".

Para obter informações sobre os segredos e provedores de serviços com suporte para proteção por push, confira "Padrões de digitalização de segredo".

Como habilitar a secret scanning como uma proteção por push

Para que você use secret scanning como uma proteção por push em repositórios públicos, a empresa, a organização, ou o repositório precisa ter a secret scanning habilitada. Para usar a secret scanning como uma proteção por push em repositórios privados ou internos, ou em repositórios de propriedade do usuário para Enterprise Managed Users, a empresa ou a organização também precisa ter o GitHub Advanced Security habilitado. Para saber mais, confira "Como gerenciar os recursos do GitHub Advanced Security na empresa," "Gerenciando as configurações de segurança e de análise da sua organização," "Gerenciando as configurações de segurança e análise do repositório" e "Sobre a Segurança Avançada do GitHub."

Os proprietários da organização, os gerentes de segurança e os administradores de repositório podem habilitar a proteção por push na secret scanning por meio da API. Para saber mais, confira "Pontos de extremidade da API REST para repositórios" e expanda a seção "Propriedades do objeto security_and_analysis".

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 da organização, como instruções sobre como usar um cofre de segredos recomendado ou para quem entrar em contato para perguntas relacionadas ao segredo bloqueado.

Você também pode habilitar a proteção por push para todos os repositórios públicos de propriedade do usuário por meio de suas configurações de conta pessoal. Para quaisquer novos repositórios públicos que você criar, a proteção por push será habilitada por padrão. Para obter mais informações, confira "Configurar a verificação de segredo para seus repositórios".

Os administradores corporativos também podem habilitar ou desabilitar a secret scanning como uma proteção por push para a empresa por meio da API. Para obter mais informações, confira "Pontos de extremidade da API REST para segurança e análise de código corporativo".

Observação: quando você cria fork em um repositório com secret scanning como uma proteção por push habilitada, isso não é habilitado por padrão no fork. Você pode habilitá-lo no fork da mesma forma que o habilita em um repositório autônomo.

Habilitar a secret scanning como uma proteção por push da empresa

  1. No canto superior direito do GitHub.com, clique na foto do seu perfil e em Suas empresas.

  2. Na lista de empresas, clique na empresa que você deseja visualizar.

  3. Na barra lateral da conta corporativa, clique em Configurações.

  4. Na barra lateral esquerda, clique em Segurança e análise de código.

  5. Em "Secret scanning", em "Proteção por push", clique em Habilitar tudo.

    Captura de tela da seção "Proteção por push" da página "Segurança e análise de código". Dois botões, rotulados como "Habilitar tudo" e "Desabilitar tudo", são realçados com um contorno laranja escuro.

  6. Opcionalmente, clique em Habilitar automaticamente para repositórios adicionados à secret scanning.

  7. Opcionalmente, para incluir um link personalizado na mensagem que os membros verão quando tentarem enviar um segredo por push, clique em Adicionar um link de recurso na CLI e na interface do usuário da Web quando um commit for bloqueado, digite uma URL e clique em Salvar link.

    Captura de tela da seção "Proteção por push" da página "Segurança e análise de código". A caixa de seleção "Adicionar um link de recurso na CLI e na interface do usuário da Web quando um commit estiver bloqueado" e o campo de texto de link personalizado são realçados com um contorno em laranja escuro.

Habilitar a secret scanning como uma proteção por push para uma organização

Use a visão geral de segurança para encontrar um conjunto de repositórios e habilitar ou desabilitar a secret scanning como uma proteção por push para todos eles ao mesmo tempo. Para obter mais informações, confira "Como habilitar recursos de segurança para vários repositórios".

Você também pode usar a página de configurações da organização para "Segurança e análise de código" para habilitar ou desabilitar secret scanning como uma proteção por push de todos os repositórios atuais em uma organização.

  1. No GitHub.com, navegue até a página principal da organização.

  2. No nome da sua organização, clique Configurações. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.

    Captura de tela das guias no perfil de uma organização. A guia "Configurações" está contornada em laranja escuro.

  3. Na seção "Segurança" da barra lateral, clique em Segurança de código e análise.

Note

Se sua organização estiver inscrita no beta público do security configurations e do global settings, em vez de "Segurança e análise de código", você verá um menu suspenso "Segurança de código". Selecione Segurança de código e clique em Configurações. Para as próximas etapas sobre como ativar a proteção por push e outros recursos de segurança em escala com o security configurations, consulte "Aplicação da configuração de segurança recomendada pelo GitHub em sua organização."

  1. Em "Segurança e análise de código", encontre o "GitHub Advanced Security".

  2. Em "Secret scanning", em "Proteção por push", clique em Habilitar tudo.

  3. Opcionalmente, clique em Habilitar automaticamente para repositórios adicionados ao secret scanning.

  4. Opcionalmente, para incluir um link personalizado na mensagem que os membros verão quando tentarem enviar um segredo por push, selecione Adicionar um link de recurso na CLI e na interface do usuário da Web quando uma confirmação for bloqueada, então digite uma URL e clique em Salvar link.

    Captura de tela da seção "Proteção por push" da página "Segurança e análise de código". A caixa de seleção "Adicionar um link de recurso na CLI e na interface do usuário da Web quando um commit estiver bloqueado" e o campo de texto de link personalizado são realçados com um contorno em laranja escuro.

Para obter mais informações sobre como habilitar recursos de segurança em uma organização, confira "Guia de início rápido da proteção da sua organização".

Como habilitar a secret scanning como uma proteção por push para um repositório

  1. No GitHub.com, navegue até a página principal do repositório.

  2. Abaixo do nome do repositório, clique em Configurações. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Configurações" é realçada por um contorno laranja-escuro.

  3. Na seção "Segurança" da barra lateral, clique em Segurança de código e análise.

  4. Em "Segurança e análise de código", encontre o "GitHub Advanced Security".

  5. Em "Secret scanning", em "Proteção por push", clique em Habilitar.

Habilitar a proteção por push para um padrão personalizado

Você pode habilitar secret scanning como uma proteção por push para padrões personalizados armazenados em no nível da empresa, da organização ou do repositório.

Habilitar a proteção por push para um padrão personalizado armazenado em uma empresa

Observações:

  • Para habilitar a proteção de push para padrões personalizados, é preciso habilitar o secret scanning como a proteção de push no nível corporativo. Para obter mais informações, confira "Proteção por push para repositórios e organizações".
  • Habilitar a proteção de push para padrões personalizados comumente encontrados pode ser prejudicial para os colaboradores.

Antes de habilitar a proteção por push para um padrão personalizado no nível da empresa, você também deve testar seus padrões personalizados usando simulações. Você só pode executar uma simulação em repositórios aos quais você tem acesso de administração. Se um proprietário da empresa quiser acesso para executar simulações em qualquer repositório em uma organização, ele deverá receber a função de proprietário da organização. Para obter mais informações, confira "Gerenciando sua função em uma organização pertencente à sua empresa".

  1. No canto superior direito do GitHub.com, clique na foto do seu perfil e em Suas empresas.

  2. Na lista de empresas, clique na empresa que você deseja visualizar.

  3. Na barra lateral da empresa, clique em Políticas. 1. Em "Políticas", clique em Segurança e análise de código.

  4. Em "Segurança e análise de código", clique em Recursos de segurança. 1. Em "Secret scanning", em "Padrões personalizados", clique em para o padrão de interesse.

    Note

    No nível empresarial, você só pode editar e habilitar a proteção por push para padrões personalizados criados por você.

  5. Para habilitar a proteção por push para seu padrão personalizado, role a tela até "Proteção por Push" e clique em Habilitar.

    Note

    A opção para ativar a proteção por push é visível apenas para padrões publicados.

    Captura de tela da página de padrões personalizados com o botão para habilitar a proteção por push realçado com um contorno laranja escuro.

Habilitar secret scanning como uma proteção por push para um padrão personalizado em uma organização

Antes de habilitar a proteção por push para um padrão personalizado no nível da organização, você deve habilitar secret scanning para os repositórios que deseja digitalizar em sua organização. Para habilitar o secret scanning em todos os repositórios da sua organização, confira "Gerenciando as configurações de segurança e de análise da sua organização".

  1. No canto superior direito do GitHub.com, selecione sua foto do perfil e em Suas organizações.

    Captura de tela do menu suspenso na imagem de perfil do @octocat. "Suas organizações" está contornado em laranja escuro.

  2. Ao lado da organização, clique em Configurações.

  3. Na seção "Segurança" da barra lateral, clique em Segurança de código e análise.

Note

Se sua organização estiver inscrita no beta público do security configurations e do global settings, em vez de "Segurança e análise de código", você verá um menu suspenso "Segurança de código". Selecione Segurança do código e clique em Global settings. Para as próximas etapas do gerenciamento de padrões personalizados para sua organização com o global settings, see "Configurações de segurança globais para sua organização". Para obter informações sobre como habilitar a proteção por push para padrões personalizados específicos, consulte as etapas a seguir.

  1. Em "Segurança e análise de código", encontre o "GitHub Advanced Security".

  2. Em "Secret scanning", em "Padrões personalizados", clique em para o padrão de interesse.

  3. Para habilitar a proteção por push para seu padrão personalizado, role a tela até "Proteção por Push" e clique em Habilitar.

    Observações:

    • A opção para ativar a proteção por push é visível apenas para padrões publicados.
    • A proteção de push para padrões personalizados será aplicada somente a repositórios em sua organização que tenham o secret scanning como uma proteção de push habilitada. Para obter mais informações, confira "Proteção por push para repositórios e organizações".
    • Habilitar a proteção de push para padrões personalizados comumente encontrados pode ser prejudicial para os colaboradores.

    Captura de tela da seção "Proteção por push" da página de padrões personalizados. Um botão, rotulado como "Habilitar", está contornado em laranja escuro.

Habilitar secret scanning como uma proteção por push em um repositório para um padrão personalizado

Antes de habilitar a proteção por push para um padrão personalizado no nível do repositório, você deve definir o padrão e testá-lo no repositório. Para obter mais informações, confira "Definir padrões personalizados para a verificação de segredo".

  1. No GitHub.com, navegue até a página principal do repositório.

  2. Abaixo do nome do repositório, clique em Configurações. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Configurações" é realçada por um contorno laranja-escuro.

  3. Na seção "Segurança" da barra lateral, clique em Segurança de código e análise.

  4. Em "Segurança e análise de código", encontre o "GitHub Advanced Security".

  5. Em "Secret scanning", em "Padrões personalizados", clique em para o padrão de interesse.

  6. Para habilitar a proteção por push para seu padrão personalizado, role a tela até "Proteção por Push" e clique em Habilitar.

    Note

    A opção para ativar a proteção por push é visível apenas para padrões publicados.

    Captura de tela da seção "Proteção por push" da página de padrões personalizados. Um botão, rotulado como "Habilitar", está contornado em laranja escuro.

Habilitar o bypass delegado para proteção de push

Note

No momento, o bypass delegado para proteção de push está em versão beta e sujeito a alterações.

O bypass delegado para proteção de push permite controlar quem pode ignorar a proteção de push e quais envios por push bloqueados devem ser permitidos.

Quando você habilita a proteção de push, por padrão, qualquer pessoa com acesso de gravação ao repositório pode optar por ignorar a proteção especificando um motivo para permitir o push que contém um segredo. Com o bypass delegado, os contribuidores de um repositório são obrigados a solicitar "privilégios de bypass". A solicitação é enviada a um grupo designado de revisores, que aprovam ou negam a solicitação para ignorar a proteção de push.

Se a solicitação para ignorar a proteção de push for aprovada, o contribuidor poderá enviar o commit que contém o segredo. Se a solicitação for negada, o contribuidor deverá remover o segredo do commit (ou commits) que contém o segredo antes de enviar por push novamente.

Para configurar o bypass delegado, os proprietários da organização ou os administradores do repositório primeiro criam uma "lista de bypass". A lista de bypass compreende funções e equipes específicas, como a equipe de segurança ou administradores de repositório, que supervisionam solicitações de não membros para ignorar a proteção de push. Para obter mais informações, consulte "Configurar o bypass delegado para uma organização" e "Configurar o bypass delegado para um repositório".

Os membros da lista de bypass exibem e gerenciam solicitações por meio da página "Bypass de proteção de push" na guia Segurança do repositório. Para obter mais informações, consulte "Gerenciar solicitações para ignorar a proteção de push".

Os membros da lista de bypass ainda estão protegidos contra envio por push acidental de segredos para um repositório. Quando um membro da lista de bypass tenta enviar um commit que contém um segredo, seu envio por push ainda é bloqueado, mas ele pode optar por ignorar o bloqueio especificando um motivo para permitir o envio por push. Os membros da lista de bypass não precisam solicitar privilégios de bypass de outros membros para substituir o bloqueio.

Configurar o bypass delegado para uma organização

  1. No GitHub.com, navegue até a página principal da organização.

  2. No nome da sua organização, clique Configurações. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.

    Captura de tela das guias no perfil de uma organização. A guia "Configurações" está contornada em laranja escuro.

  3. Na seção "Segurança" da barra lateral, clique em Segurança de código e análise.

Note

Se sua organização estiver inscrita no beta público do security configurations e do global settings, em vez de "Segurança e análise de código", você verá um menu suspenso "Segurança de código". Selecione Segurança do código e clique em Global settings. 1. Em "Segurança e análise de código", encontre o "GitHub Advanced Security".

  1. Em "Proteção por push", à direita de "Quem pode ignorar a proteção de push para secret scanning", selecione o menu suspenso e clique em Funções ou equipes específicas.
  2. Em "Lista de bypass", clique em Adicionar função ou equipe.
  3. Na caixa de diálogo, selecione as funções e equipes que deseja adicionar à lista de bypass e clique em Adicionar selecionados.

Configurar bypass delegado para um repositório

Note

Se o proprietário de uma organização configurar o bypass delegado no nível da organização, as configurações no nível do repositório serão desabilitadas.

  1. No GitHub.com, navegue até a página principal do repositório.

  2. Abaixo do nome do repositório, clique em Configurações. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Configurações" é realçada por um contorno laranja-escuro.

  3. Na seção "Segurança" da barra lateral, clique em Segurança de código e análise.

  4. Em "Segurança e análise de código", encontre o "GitHub Advanced Security".

  5. Em "Proteção por push", à direita de "Quem pode ignorar a proteção de push para secret scanning", selecione o menu suspenso e clique em Funções ou equipes específicas.

  6. Em "Lista de bypass", clique em Adicionar função ou equipe.

  7. Na caixa de diálogo, selecione as funções e equipes que deseja adicionar à lista de bypass e clique em Adicionar selecionados.

Gerenciar solicitações para ignorar a proteção de push

Você pode exibir e gerenciar todas as solicitações de privilégios de bypass na página "Ignorar proteção de push", localizada na guia Segurança do repositório.

Você pode filtrar solicitações por aprovador (membro da lista de bypass), solicitante (colaborador que faz a solicitação), prazo e status. Os seguintes status são atribuídos a uma solicitação:

StatusDescrição
CancelledA solicitação foi cancelada pelo contribuidor.
CompletedA solicitação foi aprovada, e os commits foram enviados por push para o repositório.
DeniedA solicitação foi analisada e negada.
ExpiredA solicitação expirou. As solicitações são válidas por 7 dias.
OpenA solicitação ainda não foi examinada ou foi aprovada, mas os commits não foram enviados por push para o repositório.

Quando um contribuidor solicita privilégios de bypass para enviar um commit que contém um segredo, todos os membros da lista de bypass recebem uma notificação por email com um link para a solicitação. Os membros da lista de bypass terão 7 dias para examinar e aprovar ou negar a solicitação antes que ela expire.

O contribuidor é notificado da decisão por email e deve tomar as medidas necessárias. Se a solicitação for aprovada, o contribuidor poderá enviar o commit que contém o segredo para o repositório. Se a solicitação for negada, o contribuidor deverá remover o segredo do commit para enviar o commit com êxito ao repositório.

Gerenciar solicitações para ignorar a proteção de push no nível do repositório

  1. No GitHub.com, navegue até a página principal do repositório.
  2. Abaixo do nome do repositório, clique em Segurança. Caso não consiga ver a guia "Segurança", selecione o menu suspenso e clique em Segurança.
    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Segurança" é realçada por um contorno laranja escuro.
  3. Na barra lateral esquerda, em "Solicitações", clique em Ignorar proteção de push.
  4. Selecione o menu suspenso Todos os status e clique em Abrir para exibir as solicitações que estão aguardando revisão.
  5. Clique na solicitação que você deseja examinar.
  6. Examine os detalhes da solicitação.
  7. Para permitir que o contribuidor envie o commit que contém o segredo, clique em Aprovar solicitação de bypass. Ou, para exigir que o contribuidor remova o segredo do commit, clique em Negar solicitação de bypass.

Leitura adicional