- Documentação
- Guara Shield
- Detecção de Segredos Expostos
Última atualização: 23 de maio de 2026
Detecção de Segredos Expostos
A Detecção de Segredos Expostos encontra prováveis vazamentos de segredos na configuração e nas respostas públicas em runtime dos seus próprios serviços. O objetivo é simples: pegar o momento em que alguém cola uma API key, uma URL de banco de dados com credenciais ou uma chave privada em uma variável pública de cliente, superfície de build, resposta de configuração exposta, endpoint de debug ou superfície parecida em runtime.
O que é verificado
Hoje, a Detecção de Segredos Expostos verifica duas superfícies limitadas dos seus próprios serviços:
- Configuração do serviço: nomes de variáveis de ambiente, chaves selecionadas para build-time em Dockerfile e padrões de valor de alta confiança que aparecem em variáveis públicas/de cliente.
- Respostas HTTP públicas em runtime: o mesmo conjunto fixo de rotas seguras usado pelas Verificações de Serviço, classificado em memória para padrões de segredo de alta confiança.
A verificação é restrita a serviços customizados que você possui. Internos do catálogo de serviços não são verificados para segredos da mesma forma; o catálogo gerencia seus próprios segredos e expô-los seria um problema em nível de plataforma que o Guara trata diretamente.
O que “exposição” significa aqui
A detecção de exposição procura três classes de problema:
- Um padrão de segredo de alta confiança no lugar errado. Um valor que combina com um formato de segredo bem conhecido (uma forma óbvia de access-token, uma URL de conexão com credenciais embutidas, um bloco de chave privada, etc.) aparecendo como valor de uma variável que não tem nome de segredo.
- Um descasamento entre nome e valor. Uma variável nomeada como não-segredo (
API_URL,PUBLIC_TOKEN,DEBUG_NOTE) carregando um valor que parece um segredo. - Um vazamento em resposta pública de runtime. Uma resposta HTTP limitada de uma rota pública segura contém uma chave privada, token do GitHub, chave secreta da Stripe, token do Slack, URL com credenciais ou configuração pública de cliente contendo um desses padrões.
Preferimos detectores determinísticos e explicáveis a varreduras regex amplas. Toda detecção do conjunto v1 tem uma regra específica e nomeada, sem matching opaco de padrão que dispara sem explicação.
O que nunca acontece
- O valor bruto do segredo nunca é persistido. Nem no achado, nem no evento, nem em logs, nem em traces, nem em métricas.
- Bodies brutos de respostas em runtime nunca são persistidos. As checagens de runtime classificam respostas limitadas em memória e armazenam apenas metadados redigidos de rota, detector, família e vetor de exposição.
- O valor bruto nunca é exibido no dashboard. A evidência é redigida para um fingerprint curto (ex.: um tamanho e uma tag de prefixo não-reversível) que te permite identificar qual valor disparou a detecção sem revelá-lo.
- O valor bruto nunca é enviado para uma explicação por IA ou qualquer terceiro. Quando você pede Explicar esta Ameaça em um achado de segredo, a explicação opera apenas com evidência redigida.
- Não há botão “ver o segredo”. Se você precisa ver o valor, olhe a variável diretamente nas configurações do serviço.
Se um detector não consegue descrever um achado sem revelar o segredo, o detector não vai pra produção.
Como um achado se parece
Um achado de exposição de segredo te diz:
- Qual serviço tem a suspeita de exposição.
- Qual variável carrega o valor (apenas o nome).
- Que tipo de segredo parece ser (ex.: “bloco de chave privada de alta confiança”, “URL com credenciais embutidas”), sem citar o valor.
- Um fingerprint redigido do valor, apenas suficiente para distinguir dois achados.
- Orientação concreta de remediação.
A severidade escala com a confiança do padrão e a superfície onde aparece.
Como corrigir um
A maioria das correções segue a mesma forma:
- Rotacione o segredo. Considere o valor não-confidencial desde o momento em que apareceu num lugar onde não deveria. O Guara pode ter detectado, mas outras ferramentas (seus logs de CI, sua tela durante uma colagem, qualquer coisa) podem ter também.
- Mova o valor para uma variável de segredo propriamente nomeada no seu serviço. Para armazenamento de segredos na Guara Cloud, veja Variáveis de Ambiente.
- Resolva o achado. A próxima passagem de verificação confirmará que o valor desapareceu.
Se você consegue provar que o valor era um placeholder ou fixture de teste que não concede acesso real, marque o achado como falso positivo para que o detector possa ser ajustado.
Escopo e confiança
A Detecção de Segredos Expostos observa configuração de serviços na plataforma e comportamento HTTP público em runtime. A varredura de repositórios de código-fonte vive fora desta superfície. Trate a Detecção de Segredos Expostos como um piso de alta confiança para as superfícies que ela cobre, e combine-a com suas próprias práticas de higiene de segredos a montante.
Quando as verificações rodam
Como as Verificações de Serviço, a Detecção de Segredos Expostos roda em segundo plano. Você não dispara manualmente. Quando termina uma passagem em um serviço, emite um evento secret_exposure_scan_completed na linha do tempo de Eventos de Segurança.
Para onde ir agora
- Variáveis de Ambiente, o jeito certo de armazenar segredos na Guara Cloud.
- Achados de Segurança, a caixa de entrada onde achados de exposição de segredos aparecem.
- Eventos de Segurança, o log cronológico de conclusões de verificação.