Skip to main content

Protecting pushes with secret scanning

You can use secret scanning to prevent supported secrets from being pushed into your enterprise, organization, or repository by enabling push protection.

Secret scanning for advanced security is available for organization-owned repositories in GitHub Enterprise Cloud if your enterprise has a license for GitHub Advanced Security. Para obter mais informações, confira "Sobre o GitHub Advanced Security".

Observação: Secret scanning como um push de proteção estão atualmente em versão beta e sujeitos a alterações. Para solicitar acesso à versão beta, entre em contato com sua equipe de gerenciamento de contas.

About push protection for secrets

Up to now, secret scanning for advanced security checks for secrets after a push and alerts users to exposed secrets. Quando você habilita a proteção por push, a secret scanning também verifica os pushes em busca de segredos de alta confiança (aqueles identificados com uma baixa taxa de falsos positivos). A Secret scanning lista todos os segredos detectados para que o autor possa revisar os segredos e removê-los ou, se necessário, permitir que esses segredos sejam enviados por push.

If a contributor bypasses a push protection block for a secret, GitHub:

  • generates an alert.
  • creates an alert in the "Security" tab of the repository.
  • adds the bypass event to the audit log.
  • sends an email alert to organization owners, security managers, and repository administrators, with a link to the related secret and the reason why it was allowed.

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

For information on the secrets and service providers supported for push protection, see "Secret scanning patterns."

Enabling secret scanning as a push protection

For you to use secret scanning as a push protection, the enterprise, organization, or repository needs to have both GitHub Advanced Security and secret scanning enabled. For more information, see "Managing security and analysis settings for your enterprise," "Managing security and analysis settings for your organization," "Managing security and analysis settings for your repository," and "About GitHub Advanced Security."

Organization owners, security managers, and repository administrators can enable push protection for secret scanning via the UI and API. For more information, see "Repositories" and expand the "Properties of the security_and_analysis object" section in the REST API documentation.

Enabling secret scanning as a push protection for your enterprise

  1. No canto superior direito do GitHub.com, clique na foto do seu perfil e em Suas empresas. "Suas empresas" no menu suspenso na foto de perfil no GitHub Enterprise Cloud

  2. Na lista de empresas, clique na empresa que você deseja visualizar. Nome de uma empresa na lista das suas empresas

  3. Na barra lateral da conta corporativa, clique em Configurações. Guia Configurações na barra lateral das contas corporativas

  4. In the left sidebar, click Code security and analysis.

  5. Under "Secret scanning", under "Push protection", click Enable all.

    Screenshot showing how to enable push protection for secret scanning for an enterprise

  6. Optionally, click "Automatically enable for repositories added to secret scanning."

  7. Optionally, to include a custom link in the message that members will see when they attempt to push a secret, click Add a resource link in the CLI and web UI when a commit is blocked, then type a URL, and click Save link.

    Screenshot showing checkbox and text field for enabling a custom link

Enabling secret scanning as a push protection for an organization

  1. On GitHub.com, navigate to the main page of the organization.

  2. No nome da sua organização, clique em Configurações. Botão Configurações da organização

  3. In the "Security" section of the sidebar, click Code security and analysis.

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

  5. Under "Secret scanning", under "Push protection", click Enable all. Screenshot showing how to enable push protection for secret scanning for an organization

  6. Optionally, click "Automatically enable for repositories added to secret scanning."

  7. Optionally, to include a custom link in the message that members will see when they attempt to push a secret, select Add a resource link in the CLI and web UI when a commit is blocked, then type a URL, and click Save link.

    Screenshot showing checkbox and text field for enabling a custom link

Enabling secret scanning as a push protection for a repository

  1. On GitHub.com, navigate to the main page of the repository.

  2. Abaixo do nome do repositório, clique em Configurações. Botão Configurações do repositório

  3. In the "Security" section of the sidebar, click Code security and analysis.

  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. Captura de tela que mostra como habilitar a proteção por push na secret scanning para um repositório

Using secret scanning as a push protection from the command line

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

Up to five detected secrets will be displayed at a time on the command line. If a particular secret has already been detected in the repository and an alert already exists, GitHub will not block that secret.

Organization admins can provide a custom link that will be displayed when a push is blocked. This custom link can contain organization-specific resources and advice, such as directions on using a recommended secrets vault or who to contact for questions relating to the blocked secret.

Screenshot showing that a push is blocked when a user attempts to push a secret to a repository

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. For more information about remediating blocked secrets, see "Pushing a branch blocked by push protection."

If you confirm a secret is real and that you intend to fix it later, you should aim to remediate the secret as soon as possible. For example, you might revoke the secret and remove the secret from the repository's commit history. Real secrets that have been exposed must be revoked to avoid unauthorized access. You might consider first rotating the secret before revoking it. For more information, see "Removing sensitive data from a repository."

Observações:

  • Se a configuração do Git der 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.

Allowing a blocked secret to be pushed

If GitHub blocks a secret that you believe is safe to push, you can allow the secret and specify the reason why it should be allowed.

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 "Como gerenciar alertas da verificação de segredos".

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. Visit the URL returned by GitHub when your push was blocked. Screenshot showing form with options for unblocking the push of a secret
  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. Click Allow me to push this secret.
  4. Reattempt the push on the command line within three hours. If you have not pushed within three hours, you will need to repeat this process.

Using secret scanning as a push protection from the web UI

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 faixa na parte superior da página com informações sobre a localização do segredo e o segredo também será sublinhado no arquivo para que você possa encontrá-lo facilmente.

Captura de tela mostrando o commit na interface do usuário da Web bloqueada devido à proteção por push de verificação de segredo

GitHub will only display one detected secret at a time in the web UI. If a particular secret has already been detected in the repository and an alert already exists, GitHub will not block that secret.

Organization admins can provide a custom link that will be displayed when a push is blocked. This custom link can contain resources and advice specific to your organization. For example, the custom link can point to a README file with information about the organization's secret vault, which teams and individuals to escalate questions to, or the organization's approved policy for working with secrets and rewriting commit history.

You can remove the secret from the file using the web UI. Once you remove the secret, the banner at the top of the page will change and tell you that you can now commit your changes.

Screenshot showing commit in web ui allowed after secret fixed

Bypassing push protection for a secret

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. For more information about remediating blocked secrets, see "Pushing a branch blocked by push protection."

If you confirm a secret is real and that you intend to fix it later, you should aim to remediate the secret as soon as possible. For more information, see "Removing sensitive data from a repository."

If GitHub blocks a secret that you believe is safe to push, you can allow the secret and specify the reason why it should be allowed.

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 "Como gerenciar alertas da verificação de segredos".

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.

If you confirm a secret is real and that you intend to fix it later, you should aim to remediate the secret as soon as possible.

  1. In the banner that appeared at the top of the page when GitHub blocked your commit, click Bypass protection.

  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.

    Screenshot showing form with options for unblocking the push of a secret

  3. Click Allow secret.