WASViking Docs
⌘K
Capacidades

Detecção de secrets

Encontre credenciais vazadas em disco, no histórico do git e em respostas web públicas. Um classificador de IA faz a triagem das correspondências antes da promoção. Secrets verificados ao vivo são sinalizados para rotação imediata.

A WASViking® cobre credenciais vazadas em dois lugares paralelos: onde elas se escondem em disco, dentro do ambiente do cliente, e onde elas aparecem por acidente na web pública.

A cobertura mapeia para OWASP A07:2021 (Identification and Authentication Failures) e CWE-798 (Use of Hard-coded Credentials).

Como uma detecção vira um Finding

Sentinel scans source tree
        │
        ▼
Detector match (32 patterns)
        │
        ▼
AI classifier (real_secret / placeholder / test_fixture)
        │
        ├─▶ suppressed (test, doc, placeholder), kept in submission
        │   for audit, not promoted to Findings
        │
        ▼
Promoted to Findings workflow (category: token_exposure, CWE-798)
        │
        ▼
Live verification (optional, 10 detectors)
        │
        ▼
Findings flagged "VERIFIED LIVE" for triage priority

No ambiente do cliente: wasviking-sentinel secrets

32 detectores, 10 deles com verificação ao vivo. Os secrets em texto puro nunca saem do host. Só um hash SHA-256 e uma prévia mascarada chegam à WASViking.

Veja wasviking-sentinel secrets para a referência completa do agente.

Níveis de detectores

Os detectores são agrupados por nível (tier), o que define a severidade padrão e ajuda os operadores a priorizar:

Nível Os detectores incluem Severidade padrão
Cloud Chaves de acesso da AWS, chaves secretas da AWS, tokens de sessão da AWS, client secrets do Azure, JSON de service account do GCP, connection strings do Azure. High
Payments Stripe (live e test), SendGrid, Twilio. High
VCS GitHub PAT (classic e fine-grained), tokens de instalação de GitHub App, GitLab PAT, tokens de runner do GitLab. High
Comms Tokens de bot do Slack, tokens de usuário do Slack, webhooks do Slack, chaves de integração do PagerDuty. Medium-High
Database URIs de conexão de Postgres / MySQL / MongoDB / Redis com credenciais embutidas. High
Keys Chaves privadas RSA, EC e OpenSSH. High
Generic Strings de alta entropia que parecem credenciais, mas não correspondem ao padrão de um provedor específico. Medium

Detecção a partir da nuvem

A classe paralela de vazamento são os secrets expostos em respostas HTML, JSON e JavaScript na web pública. A WASViking aplica o mesmo catálogo de padrões para analisar as respostas durante uma execução de DAST. As correspondências alimentam o mesmo pipeline de Findings token_exposure.

O classificador de IA

A correspondência de padrões, sozinha, produz ruído. A WASViking encaminha cada correspondência a um classificador de IA antes da promoção. O classificador lê a correspondência no contexto do arquivo ou da resposta em que ela está e retorna um destes vereditos:

Veredito O que acontece
real_secret Promovido a Finding. A confiança é registrada.
placeholder Suprimido. Contabilizado em "test / docs / placeholder".
test_fixture Suprimido.
uncertain Promovido, mas sinalizado para revisão do operador.

O veredito do classificador é exibido ao lado da correspondência no portal:

AI classification: real_secret (confidence 80%). Detector aws_access_key matched a provider-shaped credential. (Classificação da IA: secret real, com 80% de confiança. O detector encontrou uma credencial com o formato de um provedor.)

As supressões são mantidas no registro da submissão para que um operador possa auditar o que o classificador filtrou, mas elas não aparecem como Findings.

Garantia de privacidade

  • Agente. O secret em texto puro fica em memória só pelo tempo necessário para a verificação (se solicitada) e depois é descartado. O payload da submissão traz o hash, a prévia mascarada e o resultado do verificador. Nada além disso.
  • Nuvem. A substring correspondente é o único material secreto que a plataforma vê. Uma prévia mascarada é exibida no portal; a correspondência em texto puro só fica visível para operadores com o escopo adequado, mediante revelação explícita.

Controles de falso positivo

Na ordem em que atuam:

  1. Supressão por caminho para *.test.*, __tests__/, /docs/ e caminhos canônicos de teste semelhantes.
  2. Supressão por padrão para placeholders canônicos (EXAMPLE, PLACEHOLDER, XXXX).
  3. Classificador de IA como camada final. Ele vê a correspondência em contexto e decide entre real_secret / placeholder / test_fixture / uncertain.
  4. Pontuação de qualidade por detector. Detectores de baixa qualidade são controlados por configuração e contribuem com uma severidade padrão menor.

A confidence do classificador fica exposta no portal para que o operador possa conferir por amostragem os casos limítrofes.

No portal: Hard-coded Secrets

O inventário fica em Application Security → Hard-coded Secrets na barra lateral do portal.

Visão de lista

As estatísticas do cabeçalho resumem o estado de toda a organização:

Indicador Significado
Submissions Quantas submissões de scan de secrets existem no inventário.
With verified-live matches Submissões que contêm pelo menos uma credencial verificada ao vivo.
Open secret findings Findings da categoria token_exposure atualmente abertos.

Filtros:

Filtro O que ele faz
Target Busca por substring no nome do alvo.
Verified live only Controle de alternância. Limita a lista às submissões com pelo menos uma correspondência verificada ao vivo.

Colunas da tabela:

Coluna O que ela mostra
Submitted Timestamp da submissão.
Target O ativo contra o qual o scan rodou, conforme o agente o reportou.
Source A origem da submissão (sentinel_run, cloud_dast, manual_intake).
Files Número de arquivos analisados nesta submissão.
Matches Detecções brutas, incluindo as suprimidas.
Verified live Número de credenciais verificadas ao vivo junto ao provedor.
Findings Número de Findings promovidos a partir desta submissão.
Severity Selos de distribuição de severidade (HIGH · 4, MEDIUM · 2).

Detalhe da submissão

Clique em qualquer linha para abrir o detalhe da submissão. Ele traz a identidade do agente, o host que a produziu, a versão do runtime e um detalhamento.

Cartões do topo:

Cartão Significado
Files scanned Total de arquivos percorridos, mais o tamanho acumulado em bytes.
Matches Ocorrências brutas dos detectores (antes da supressão pela IA).
Verified live Ocorrências confirmadas como ativas junto ao provedor.
Findings promoted Ocorrências que viraram Findings no fluxo de trabalho.
Suppressed Ocorrências que o classificador de IA julgou como placeholder ou test_fixture.

A tabela Detector breakdown mostra, por detector:

Coluna Significado
Detector Identificador do detector (aws_access_key, sendgrid_api_key, generic_high_entropy etc.).
Provider Fornecedor (AWS, SendGrid, Azure, Generic).
Tier A tag de categoria (CLOUD, PAYMENTS, GENERIC).
Matches Contagem de correspondências deste detector nesta submissão.
Verified live Subconjunto verificado ao vivo.
Severity Distribuição de severidade.

Top Findings lista as correspondências de maior risco com o contexto completo:

  • Severidade, estado de verificação (VERIFIED LIVE / UNVERIFIED), selos de nível.
  • Caminho do arquivo com o número da linha.
  • Prévia mascarada (AKIA••••••••••••OTAU) e a pontuação de entropia.
  • Um trecho de código com o secret mascarado em destaque.
  • Veredito e confiança do classificador de IA.
  • Mapeamento de CWE, status, contagem de ocorrências, link direto para o Finding canônico.

Manual Leak Intake

Para equipes de segurança que já assinam feeds de vazamentos, a página Manual Leak Intake permite que os operadores façam a ingestão de credenciais sabidamente vazadas e que a plataforma as compare com todo o inventário.

Escopo: sca:ioc (compartilhado com o IOC manual de SBOM). Mesmo ciclo de vida das correspondências enviadas pelo agente: classificador de IA → verificação opcional → fluxo de trabalho de Findings.

Onde ele fica no portal

  • Application Security → Hard-coded Secrets: inventário de submissões + detalhe da submissão.
  • Inventory → Manual Leak Intake: indicadores fornecidos pelo operador.
  • Findings: filtre pela categoria token_exposure ou credential_exposure.
  • Settings → API Keys: escopo secrets:submit para os agentes.

O que ele NÃO faz

  • Nenhum secret em texto puro sai do ambiente do cliente. Apenas hash + prévia mascarada.
  • Nenhuma rotação automática. As correspondências verificadas ao vivo são sinalizadas para que a equipe possa rotacioná-las; a WASViking não chama as APIs de rotação dos provedores.
  • Nenhum crawling da web pública além da superfície de DAST configurada. A detecção a partir da nuvem roda sobre as respostas de scan que a sua configuração de scan já produz.

Configuração

A detecção a partir da nuvem roda em todo scan, sem configuração extra. A detecção no ambiente do cliente começa quando você executa wasviking-sentinel secrets contra um repositório, de forma avulsa ou como um gate de CI/CD. Os resultados ficam em Application Security → Hard-coded Secrets.