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 scangera 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 auditrotula 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:
-
Instale detect-secrets em seu computador local:
pip install --upgrade "git+https://github.com/ibm/detect-secrets.git@master#egg=detect-secrets" -
Execute os comandos a seguir para varrer, gerar ou atualizar o arquivo de linha de base no repositório:
-
Execute o comando a seguir para varrer a pasta do repositório:
detect-secrets scan --update .secrets.baselineÉ possível usar o sinalizador
--exclude-filesquando 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-filesfor 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. -
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.baselineEsse 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.
-
Confirme e envie o arquivo
.secrets.baselinede 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.
| 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. |