Skip to main content

Definir padrões personalizados para a verificação de segredo

É possível estender o secret scanning para detectar segredos além dos padrões predefinidos.

A Secret scanning está disponível para os repositórios pertencentes à organização no GitHub AE. Esse é um recurso do GitHub Advanced Security (gratuito durante a versão beta).

Sobre padrões personalizados para secret scanning

Você pode definir padrões personalizados para identificar segredos que não são detectados pelos padrões padrão compatíbeis com secret scanning. Por exemplo, você pode ter um padrão de segredo que é interno da sua organização. Para obter detalhes dos segredos e dos provedores de serviço compatíveis, confira "Padrões dos Secret scanning".

É possível definir padrões personalizados para sua empresa, organização ou repositório. Os Secret scanning dão suporte para até 500 padrões personalizados para cada organização ou conta corporativa e até 100 padrões personalizados por repositório.

Sintaxe de expressão regular para padrões personalizados

É possível especificar padrões personalizados para o secret scanning como uma ou mais expressões regulares.

  • Formato do segredo: uma expressão que descreve o formato do próprio segredo.
  • Antes do segredo: uma expressão que descreve os caracteres que vêm antes do segredo. Por padrão, isso é definido como \A|[^0-9A-Za-z], o que significa que o segredo precisa estar no início de uma linha ou ser precedido por um caractere não alfanumérico.
  • Após o segredo: uma expressão que descreve os caracteres que vêm após o segredo. Por padrão, isso é definido como \z|[^0-9A-Za-z], o que significa que o segredo precisa ser seguido por uma nova linha ou por um caractere não alfanumérico.
  • Requisitos adicionais de correspondência: uma ou mais expressões opcionais às quais o próprio segredo precisa ou não corresponder.

Para tokens simples você normalmente só precisa especificar um formato de segredo. Os outros campos proporcionam flexibilidade para que você possa especificar segredos mais complexos sem criar expressões regulares complexas. Para ver um exemplo de padrão personalizado, confira "Exemplo de um padrão personalizado especificado com requisitos adicionais" abaixo.

Os Secret scanning usam a biblioteca Hyperscan e só dão suporte a constructos regex do Hyperscan, que são um subconjunto da sintaxe PCRE. Os modificadores de opções de huperscan não são compatíveis. Para obter mais informações sobre os constructos de padrão do Hyperscan, confira "Suporte a padrões" na documentação do Hyperscan.

Definindo um padrão personalizado para um repositório

Antes de definir um padrão personalizado, você deve garantir que secret scanning está habilitado no seu repositório. Para obter mais informações, confira "Como configurar a secret scanning para seus repositórios".

  1. No your enterprise, navegue até a página principal do repositório. 1. Abaixo do nome do repositório, clique em Configurações. Botão Configurações do repositório
  2. Na barra lateral esquerda, clique em Segurança e análise. Guia "Segurança e análise" nas configurações do repositório 1. Em "Segurança e análise de código", encontre o "GitHub Advanced Security". 1. Em "Secret scanning", em "Padrões personalizados", clique em Novo padrão. 1. Insira as informações para o seu novo padrão personalizado:
    1. Você deve fornecer, pelo menos, o nome para o seu padrão e uma expressão regular para o formato do seu padrão de segredo.
    2. Clique em Mais opções para fornecer outro conteúdo complementar ou requisitos de correspondência adicionais para o formato secreto.
    3. Forneça um exemplo de cadeia de caracteres de teste para verificar se a sua configuração está correspondendo aos padrões esperados. Criar um formulário padrão personalizado do secret scanning 1. Quando estiver satisfeito com o novo padrão personalizado, clique em Criar padrão.

Depois que o padrão for criado, secret scanning verifica todos segredos em todo o histórico do Git em todos os branches presentes no repositório GitHub. Para saber mais sobre como exibir secret scanning alerts, confira "Gerenciar alertas do secret scanning".

Exemplo de um padrão personalizado especificado usando requisitos adicionais

Uma empresa tem um token interno com cinco características. Eles usam os diferentes campos para especificar como identificar tokens da seguinte forma:

CaracterísticaCampo e expressão regular
Comprimento entre 5 e 10 caracteresFormato do segredo: [$#%@AA-Za-z0-9]{5,10}
Não termina com um .Após o segredo: [^\.]
Contém números e letras maiúsculasRequisitos adicionais: o segredo precisa corresponder a [A-Z] e a [0-9]
Não inclui mais de uma letra minúscula consecutivaRequisitos adicionais: o segredo não deve corresponder a [a-z]{2,}
Contém um destes caracteres: $%@!Requisitos adicionais: o segredo precisa corresponder a [$%@!]

Esses tokens iriam corresponder ao padrão personalizado descrito acima:

a9@AAfT!         # Secret string match: a9@AAfT
ee95GG@ZA942@aa  # Secret string match: @ZA942@a
a9@AA!ee9        # Secret string match: a9@AA

Estas strings não correspondem ao padrão personalizado descrito acima:

a9@AA.!
a@AAAAA
aa9@AA!ee9
aAAAe9

Definindo um padrão personalizado para uma organização

Antes de definir um padrão personalizado, você deverá habilitar secret scanning para os repositórios que você deseja fazer a digitalização na organização. Para habilitar a secret scanning em todos os repositórios na sua organização, confira "Como gerenciar as configurações de segurança e análise da sua organização".

Observação: Como não há nenhuma funcionalidade de simulação, recomendamos que você teste seus padrões personalizados em um repositório antes de defini-los para toda a organização. Dessa forma, é possível evitar a criação de falsos positivos em excesso secret scanning alerts.

  1. No canto superior direito do GitHub AE, clique na foto do seu perfil e clique em Suas organizações. Suas organizações no menu de perfil 2. Ao lado da organização, clique em Configurações. Botão de configurações
  2. Na barra lateral esquerda, clique em Segurança e análise. Guia "Segurança e análise" nas configurações da organização 1. Em "Segurança e análise de código", encontre o "GitHub Advanced Security". 1. Em "Secret scanning", em "Padrões personalizados", clique em Novo padrão. 1. Insira as informações para o seu novo padrão personalizado:
    1. Você deve fornecer, pelo menos, o nome para o seu padrão e uma expressão regular para o formato do seu padrão de segredo.
    2. Clique em Mais opções para fornecer outro conteúdo complementar ou requisitos de correspondência adicionais para o formato secreto.
    3. Forneça um exemplo de cadeia de caracteres de teste para verificar se a sua configuração está correspondendo aos padrões esperados. Criar um formulário padrão personalizado do secret scanning 1. Quando estiver satisfeito com o novo padrão personalizado, clique em Criar padrão.

Depois que o padrão for criado, secret scanning irá verificar todos os segredos nos repositórios na sua organização, incluindo todo seu histórico do Git em todos os branches. Os proprietários da organização e administradores do repositório receberão um alerta sobre todos os segredos encontrados e poderão revisar o alerta no repositório onde o segredo for encontrado. Para saber como exibir secret scanning alerts, confira "Gerenciar alertas do secret scanning".

Definir um padrão personalizado para uma conta corporativa

Observação: como não há nenhuma funcionalidade de simulação, recomendamos que você teste seus padrões personalizados em um repositório antes de defini-los para toda a empresa. Dessa forma, é possível evitar a criação de falsos positivos em excesso secret scanning alerts.

  1. No canto superior à direita de GitHub AE, clique na foto do perfil e clique em Configurações da empresa. "Configurações da empresa" no menu suspenso da foto do perfil em GitHub AE 1. Na barra lateral da empresa, clique em Políticas. Guia Políticas na barra lateral da conta corporativa 1. Em Políticas, clique em "Segurança Avançada". Políticas de "Segurança Avançada" na barra lateral 1. Em "GitHub Advanced Security", clique na guia Recursos de segurança.
  2. Em "Padrões personalizados de verificação de segredo", clique em Novo padrão.
  3. Insira as informações para o seu novo padrão personalizado:
    1. Você deve fornecer, pelo menos, o nome para o seu padrão e uma expressão regular para o formato do seu padrão de segredo.
    2. Clique em Mais opções para fornecer outro conteúdo complementar ou requisitos de correspondência adicionais para o formato secreto.
    3. Forneça um exemplo de cadeia de caracteres de teste para verificar se a sua configuração está correspondendo aos padrões esperados. Criar um formulário padrão personalizado do secret scanning 1. Quando estiver satisfeito com o novo padrão personalizado, clique em Criar padrão.

Depois que o seu padrão for criado, secret scanning irá digitalizar qualquer segredo em repositórios nas organizações da sua empresa com GitHub Advanced Security habilitado, incluindo todo seu histórico do Git em todos os branches. Os proprietários da organização e administradores do repositório receberão um alerta sobre todos os segredos encontrados e poderão revisar o alerta no repositório onde o segredo for encontrado. Para saber como exibir secret scanning alerts, confira "Gerenciar alertas do secret scanning".

Editando um padrão personalizado

Ao salvar uma alteração em um padrão personalizado, isso fecha todos os secret scanning alerts criados usando a versão anterior do padrão.

  1. Acesse o local onde o padrão personalizado foi criado. Um padrão personalizado pode ser criado na conta de um repositório, organização ou empresa.
  2. Em "Secret scanning", à direita do padrão personalizado que você deseja editar, clique em .
  3. Depois de revisar e testar suas alterações, clique em Publicar alterações.

Removendo um padrão personalizado

  1. Acesse o local onde o padrão personalizado foi criado. Um padrão personalizado pode ser criado na conta de um repositório, organização ou empresa.

  2. À direita do padrão personalizado que você deseja remover, clique em .

  3. Revise a confirmação e selecione um método para lidar com todos os alertas abertos relacionados ao padrão personalizado.

  4. Clique em Sim, excluir este padrão.

    Como confirmar a exclusão de um padrão de secret scanning personalizado