Configurando varreduras de segredos de detecção

Detect-secrets é uma ferramenta de segurança do lado do cliente que detecta segredos dentro de uma base de código para corrigir e evitar vazamentos de segredos.

Para obter mais informações, consulte IBM/detect-secrets..

Detect-secrets varre toda a base de código atual e gera uma captura instantânea dos segredos identificados atualmente A lista de segredos é então usada para auditar os segredos identificados como verdadeiros positivos ou falsos positivos; as cadeias de ferramentas DevSecOps criam problemas Git para os verdadeiros positivos.

Usando o arquivo da linha de base

Um arquivo de linha de base é a captura instantânea de uma varredura secreta de detecção. O arquivo lista potenciais segredos em cada execução e marca falsos positivos, que não são sinalizados como problemas em execuções subsequentes.

O arquivo de linha de base deve ser atualizado periodicamente Atualize e audite o arquivo de linha de base confirmando-o e enviando-o de volta para o repositório. Incluir esses falsos positivos na linha de base assegura que nenhum problema seja criado para esses arquivos existentes durante varreduras futuras.

Classificando segredos

Quando uma varredura detect-secrets é concluída, os segredos detectados ainda precisam ser classificados como positivos reais ou falsos positivos.

Três condições classificam um segredo potencialmente detectado:

  • Não auditado-Um segredo é categorizado como não auditado se for um segredo potencial que deve ser revisado no processo de auditoria.
  • Auditorado como real-Um segredo é categorizado como auditorado como real se ele for marcado como um positivo verdadeiro durante uma auditoria e o arquivo de linha de base ainda contiver o segredo
  • Ativo-Um segredo é categorizado como ativo se o segredo for confirmado como um segredo ativo pelos plug-ins que são usados pelo detect-secrets.

Gerenciando a linha de base.

Os seguintes comandos gerenciam a linha de base de segredos:

  • O comando detect-secrets scan gera um arquivo de linha de base ou atualiza o arquivo existente para conter uma captura instantânea de todos os segredos potenciais detectados da execução.
  • O comando detect-secrets audit rotula segredos para que seja possível limitar sua lista de verificação de segredos para migrar.

As auditorias identificam os segredos detectadas como verdadeiros ou falsos positivos, é possível então atualizar o arquivo de linha de base para que os falsos positivos possam ser excluídos das futuras execuções de varredura.

Atualizando a linha de base..

Siga as etapas a seguir para atualizar sua linha de base:

  1. Instale detect-secrets em seu computador local:

    pip install --upgrade "git+https://github.com/ibm/detect-secrets.git@master#egg=detect-secrets"

  2. Execute os comandos a seguir para varrer, gerar ou atualizar o arquivo de linha de base no repositório:

    1. Execute o comando a seguir para varrer a pasta do repositório:

      detect-secrets scan --update .secrets.baseline

      É possível usar o sinalizador --exclude-files quando você deseja ignorar determinados arquivos que são conhecidos por conter falsos positivos ou não requerem varredura As regras de exclusão são baseadas no formato de expressões regulares.

      Para executar uma varredura com exclusões de arquivo e pasta, use o comando a seguir:

      detect-secrets scan --update .secrets.baseline --exclude-files '<folder_to_ignore>|<file_to_ignore>'

      Exemplo: detect-secrets scan --update .secrets.baseline --exclude-files "package-lock.json|go.sum"

      A lista de arquivos excluídos é gravada no arquivo de referência.

      Se nenhuma opção --exclude-files for fornecida em varreduras subsequentes, detectar segredos automaticamente respeita a lista de exclusão existente do arquivo de linha de base.

      No entanto, se você desejar especificar uma nova lista de exclusão durante o detect-secrets scan, a nova lista sobrescreverá a lista de exclusão existente no arquivo de linha de base.

    2. Execute o comando a seguir para revisar e auditar o arquivo de linha de base criado com a etapa de varredura:

      detect-secrets audit .secrets.baseline

      Esse comando ativa um terminal interativo para marcar falsos positivos É possível indicar (y) es se o segredo localizado for um segredo real ou (n) o se for um falso positivo.

    3. Confirme e envie o arquivo .secrets.baseline de volta para o repositório, seu processo deve ser feito localmente em uma base periódica.

Detectar-parâmetros de varredura de segredos

Se você tiver um arquivo de linha de base existente a varredura usa a configuração existente. Os resultados e as configurações de auditoria anteriores não são sobrescritos Se não existir nenhum arquivo de linha de base, uma linha de base temporária será criada automaticamente para a execução

O parâmetro detect-secrets-baseline-filename especifica um nome de arquivo customizado para o arquivo de linha de base que é usado por detect-secrets Por padrão, detect-secrets procura um arquivo denominado .secrets.baseline no diretório raiz do repositório. No entanto, se você nomear seu arquivo de linha de base de forma diferente, poderá fornecer seu nome de arquivo usando esse parâmetro.

O parâmetro detect-secrets-exclusion-list substitui a lista de exclusões padrão quando uma execução é feita sem um arquivo de linha de base existente Esse parâmetro identifica os arquivos a serem ignorados para que não sejam criados problemas vinculados a eles.

O parâmetro detect-secrets-image pode ser usado para especificar uma imagem detect-secrets diferente para usar, como uma imagem customizada ou uma versão específica da imagem detect-secrets oficial.

O parâmetro detect-secrets-verbose, quando configurado como 1, registra o nome do arquivo atual que está sendo varrido.

Parâmetros de varredura de segredos
Nome Tipo Descrição Obrigatório ou opcional
detect-secrets-baseline-filename Sequência O nome do arquivo de linha de base em seu repositório de aplicativos O padrão é .secrets.baseline. Necessário se o seu arquivo de linha de base não for o nome padrão .secrets.baseline
detect-secrets-exclusion-list Sequência Uma lista regex de arquivos a serem excluídos na varredura detect-secrets. O padrão é requirements.txt|go.mod|go.sum|pom.xml|build.gradle|package-lock.json. Opcional, essa lista de arquivos substitui a lista de exclusão geral somente quando não há nenhum arquivo .secrets.baseline presente
detect-secrets-image Sequência Especifica uma imagem de detecção de segredos alternativa, incluindo imagens customizadas ou versões específicas de uma imagem oficial Opcional
detect-secrets-verbose Sequência Gera o nome do arquivo que está sendo varrido no momento O padrão é 0. Opcional, Debug sinalizador 0-off, 1-on.