Skip to main content

Detecção responsável de segredos genéricos com a verificação de segredos do Copilot

Saiba como a Verificação de segredos do Copilot usa a IA de forma responsável para verificar e criar alertas para segredos não estruturados, como senhas.

Quem pode usar esse recurso?

Verificação de segredos do Copilot is available for the following repositories:

  • Public, private, and internal repositories in organizations using GitHub Enterprise Cloud with GitHub Advanced Security enabled

Sobre detecção de segredo genérico com Verificação de segredos do Copilot

A detecção de segredo genérico da Verificação de segredos do Copilot é uma expansão com a tecnologia de IA do secret scanning, que identifica segredos não estruturados (senhas) em seu código-fonte e, em seguida, gera um alerta.

Os usuários do GitHub Advanced Security já podem receber alertas de verificação de segredo para padrões de parceiros ou personalizados encontrados em seu código-fonte, mas segredos não estruturados não são facilmente detectáveis. Verificação de segredos do Copilot usa modelos de linguagem grandes (LLMs) para identificar esse tipo de segredo.

Quando uma senha é detectada, um alerta é exibido na lista ‘’Experimental’’ secret scanning (na guia Segurança do repositório, da organização ou da empresa), de modo que os mantenedores e gerentes de segurança possam revisar o alerta e, quando necessário, remover a credencial ou implementar uma correção.

Para usar detecção de segredo genérico, um proprietário da empresa deve primeiro definir uma política no nível empresarial que controle se os recursos podem ser habilitados ou desabilitados em uma organização. Por padrão, essa política é definida como "permitida". O recurso deve ser habilitado para repositórios e organizações.

Processamento de entrada

A entrada é limitada ao texto (normalmente código) que um usuário verificou em um repositório. O sistema fornece esse texto para o LLM com um meta prompt solicitando que o LLM encontre senhas dentro do escopo da entrada. O usuário não interage diretamente com o LLM.

O sistema verifica senhas usando o LLM. Nenhum dado adicional é coletado pelo sistema, além do que já é coletado pelo recurso de secret scanning existente.

Saída e exibição

O LLM verifica se há cadeias de caracteres semelhantes a senhas e verifica se as cadeias de caracteres identificadas incluídas na resposta realmente existem na entrada.

Essas cadeias de caracteres detectadas são exibidas como alertas na página de alertas de secret scanning, mas são exibidas em uma lista adicional separada dos alertas de verificação de segredo. A intenção é que essa lista separada passe por uma triagem mais cuidadosa para verificar a validade das descobertas. Cada alerta observa que ele foi detectado usando IA.

Melhorar o desempenho de detecção de segredo genérico

Para melhorar o desempenho de detecção de segredo genérico, recomendamos fechar corretamente os alertas de falsos positivos.

Verificar a precisão dos alertas e fechar conforme apropriado

Como o detecção de segredo genérico de Verificação de segredos do Copilot pode gerar mais falsos positivos do que o recurso secret scanning existente para padrões de parceiros, é importante que você examine a precisão desses alertas. Quando você verificar que um alerta é um falso positivo, feche o alerta e marque o motivo como "Falso positivo" na interface do usuário do GitHub. A equipe de desenvolvimento de GitHub usará informações sobre o volume de falsos positivos e os locais de detecção para melhorar o modelo. GitHub não tem acesso aos literais secretos em si.

Limitações de detecção de segredo genérico

Ao usar o detecção de segredo genérico do Verificação de segredos do Copilot, considere as limitações abaixo.

Escopo limitado

A Detecção de segredo genérico só procura instâncias de senhas no conteúdo git. O recurso não procura outros tipos de segredos genéricos nem procura segredos em conteúdo não git, como GitHub Issues.

Potencial para alertas de falso positivo

A Detecção de segredo genérico pode gerar mais alertas de falso positivo quando comparada ao recurso secret scanning existente (que detecta padrões de parceiros e tem uma taxa de falso positivo muito baixa). Para reduzir esse ruído em excesso, os alertas são agrupados em uma lista distinta dos alertas de padrões de parceiros e os gerentes e mantenedores de segurança devem fazer triagem de cada alerta para verificar sua precisão.

Potencial para relatórios incompletos

A Detecção de segredo genérico pode não detectar as instâncias de credenciais verificadas em um repositório. O LLM vai melhorar com o tempo. Você tem a responsabilidade final de garantir a segurança do seu código.

Limitações por design

Detecção de segredo genérico tem as seguintes limitações por design:

  • Verificação de segredos do Copilot não detectará segredos que forem obviamente falsos, senhas de teste, ou senhas com baixa entropia.
  • Verificação de segredos do Copilot detectará apenas um máximo de 100 senhas por push.
  • Se cinco ou mais segredos detectados em um único arquivo forem marcados como falsos positivos, a Verificação de segredos do Copilot deixará de gerar novos alertas para esse arquivo.
  • Verificação de segredos do Copilot não detecta segredos em arquivos gerados ou de fornecedores.
  • Verificação de segredos do Copilot não detecta segredos em arquivos criptografados.
  • Verificação de segredos do Copilot não detecta segredos nos tipos de arquivo: SVG, PNG, JPEG, CSV, TXT, SQL ou ITEM.
  • Verificação de segredos do Copilot não detecta segredos em códigos de teste. Verificação de segredos do Copilot ignora detecções onde:
    • O caminho do arquivo contém "test", "mock" ou "spec".
    • A extensão do arquivo é .cs, .go, .java, .js, .kt, .php, .py, .rb, .scala, .swift ou .ts.

Avaliações de detecção de segredo genérico

Detecção de segredo genérico foi sujeita ao Responsible AI Red Teaming e o GitHub continuará a monitorar a eficácia e a segurança do recurso ao longo do tempo.

Leitura adicional