Skip to main content

Protecting pushes with secret scanning

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

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

Note: Your site administrator must enable secret scanning for your GitHub Enterprise Server instance before you can use this feature. For more information, see "Configuring secret scanning for your appliance."

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 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:

  • creates an alert in the "Security" tab of the repository in the state described in the table below.
  • adds the bypass event to the audit log.

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 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 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 an organization

  1. On your GitHub Enterprise Server instance, 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."

Enabling secret scanning as a push protection for a repository

  1. On your GitHub Enterprise Server instance, 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.

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".

  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.

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".

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.