Do código à produção · 550+ projetos

Acha a falha
antes de virar prejuízo.

O BuscaFalha varre os repositórios e os sites no ar dos seus clientes, encontra o que pode ser explorado — segredo vazado, dado aberto, falha de código, site mal configurado — e entrega a correção pronta. Sem instalar nada no site do cliente.

app-do-cliente.com.brRisco 92
CRÍTICOChave de API no código publicadocorrija 1º
CRÍTICOTabela de clientes aberta sem loginLGPD
ALTOFunção de IA sem login — abuso de custoKEV
ALTODomínio sem DMARC (e-mail falso)e-mail
MÉDIOSite sem cabeçalho de segurança (CSP)site
Varre tudo que o seu stack usa: GitHub · Supabase · Vercel · Lovable · domínio · e-mail · dependências · o site no ar
O que ele busca

Catorze famílias de falha, em detalhe.

Cada família reúne dezenas de verificações. Tudo que não depende de instalar nada no site do cliente já roda sozinho.

01 · SEGREDOS

Chaves e tokens vazados

216 famílias de chave — OpenAI, Anthropic, Stripe, AWS, GitHub, GitLab, Google, service_role do Supabase, URI de banco — no JavaScript publicado e no código. Mede a entropia do valor para separar chave de verdade de texto comum.

02 · CÓDIGO

Falha na lógica

Injeção de SQL, XSS, eval, injeção de comando, SSRF, certificado TLS não validado, JWT aceito sem conferir assinatura, token/hash fracos, senha em log, open redirect, CORS aberto, preço ou papel vindos do cliente, webhook de pagamento sem assinatura, função pública sem limite de chamadas.

03 · SUPABASE

Dado aberto a quem não devia

Tabela que lê sem login (RLS desligado), GRANT para anônimo, função do banco sem trava, bucket público, cadastro sem confirmar e-mail, CPF/e-mail/telefone legíveis, Firebase aberto.

04 · DEPENDÊNCIAS

Biblioteca com falha ou maliciosa

CVE conhecida (OSV), pacote malicioso, sem lockfile, pacote inexistente (inventado por IA), script na instalação, abandonado, fim de vida. Prioriza pelo que está sendo explorado (EPSS + CISA KEV).

05 · CABEÇALHOS E HTTPS

Site mal configurado

HSTS, CSP (e se é fraca), X-Frame-Options, nosniff, Referrer-Policy, Permissions-Policy, cookies sem Secure/HttpOnly/SameSite, conteúdo misto, script sem SRI, versão exposta, sem WAF, certificado perto de vencer.

06 · ARQUIVOS EXPOSTOS

Arquivo que não devia estar no ar

Mais de 200 caminhos testados: .env, pasta .git, backups .zip/.sql, dump de banco, config.json, docker-compose, .npmrc, chave SSH, credenciais da AWS, phpinfo, Swagger e source maps (que entregam o código original).

07 · EXPOSIÇÃO EXTERNA

Porta e painel esquecidos

Portas e serviços abertos no servidor (banco, Redis, RDP), painéis de admin esquecidos (phpMyAdmin, Grafana, Kibana, Actuator), preview/staging público com dados reais, versão de CMS com falha.

08 · TESTE NO AR (DAST)

Comportamento inseguro

Rota privada abrindo sem login, introspecção do GraphQL aberta, open redirect ao vivo, métodos perigosos (TRACE/PUT), mensagem que revela se um e-mail tem conta, login sem proteção contra robô.

09 · INTEGRIDADE DO FRONT

Ladrão de cartão (skimmer)

Guarda a impressão digital de cada script e avisa quando um script muda, quando aparece um terceiro novo, ou quando a página de checkout/login é alterada — o padrão dos ataques de roubo de cartão.

10 · DOMÍNIO E E-MAIL

Spoofing e sequestro

SPF, DKIM, DMARC, MTA-STS, DNSSEC, CAA, domínio e certificado vencendo, domínio sem trava de transferência, subdomínio sequestrável, e domínios falsos parecidos com o do cliente (phishing).

11 · REPUTAÇÃO / MALWARE

Site marcado como perigoso

Google Web Risk (tela vermelha do Chrome), URLhaus (distribuindo vírus), domínio em vazamentos, código malicioso no HTML: minerador, iframe escondido, redirecionamento malicioso, spam de SEO.

12 · PRIVACIDADE / LGPD

Dado pessoal e consentimento

Rastreadores (Google, Meta, TikTok) antes do consentimento, sem banner de cookies, sem política, sem termos, sem opção de excluir a conta, sem encarregado (DPO), formulário sem HTTPS, PII na URL.

13 · ERROS DE FUNCIONAMENTO

O que quebra pro usuário

Tela branca, erro no console, arquivo quebrado, variável de ambiente faltando, 404 ao recarregar, loop de redirecionamento, site lento, acessibilidade e SEO, tarefa agendada falhando.

14 · IA NA SUA MÁQUINA

O que regra fixa não pega

Rodando no seu Claude, sem custo de API: RLS com intenção errada (um cliente vê dado de outro), IDOR, o caminho do dado até o ponto explorável, abuso de regra de negócio, prompt injection.

Todas as verificações

Cada checagem, uma a uma.

A lista completa do que o BuscaFalha procura, família por família.

01

Segredos — chaves e tokens vazados

  • Chave da OpenAI / Anthropic — sk- e sk-ant- encontradas no JavaScript publicado.
  • Chave do Stripe — sk_live e rk_live (chave viva de pagamento) no código.
  • Chave da AWS — AKIA… exposta no bundle ou no repositório.
  • Token do GitHub — ghp_… que dá acesso aos repositórios.
  • Chave do Google — AIza… (confere se é chave restrita de navegador).
  • service_role do Supabase — o JWT que ignora o RLS e controla o banco inteiro.
  • sb_secret / chave secreta do Supabase — chave de servidor fora de uma edge function.
  • Slack, SendGrid, Resend, Twilio, Mailgun — xox…, SG., re_, SK…, key-… no código.
  • GitLab, npm, Datadog, Cloudflare e mais 200 — catálogo de 216 famílias de chave, atualizado a partir do gitleaks.
  • URI de banco com senha — postgres:// e mongodb+srv:// embutidos no front.
  • Chave privada (PEM) — bloco BEGIN PRIVATE KEY publicado.
  • Segredo em variável VITE_/NEXT_PUBLIC_ — segredo que vai embutido no JavaScript do navegador.
  • Filtro por entropia — mede o quanto o valor é aleatório, para não confundir chave de verdade com texto comum.
02

Código — falha na lógica

  • Injeção de SQL — consulta montada colando texto, em vez de usar parâmetro.
  • XSS — dangerouslySetInnerHTML, innerHTML ou eval com dado do usuário sem sanitizar.
  • eval / new Function — código montado a partir de texto externo.
  • Injeção de comando — child_process com entrada do usuário.
  • SSRF — a função busca uma URL que veio do usuário.
  • Certificado TLS não validado — desligar rejectUnauthorized e parecidos — aceitar qualquer certificado anula o HTTPS.
  • JWT sem conferir assinatura — token decodificado e usado para decidir acesso, sem verificar quem assinou.
  • Função pública sem limite — edge function sem login e sem limitador: um script chama milhares de vezes.
  • Open redirect — redireciona para um endereço vindo da URL (phishing).
  • CORS aberto com service_role — função com a chave total liberada para qualquer site.
  • Admin decidido no navegador — user_metadata ou localStorage dizendo quem é admin.
  • verify_jwt=false sem checar login — edge function pública que não confere o chamador.
  • Chave mestra sem conferir quem chama — service_role usada antes de validar o usuário.
  • Preço vindo do cliente — valor de compra lido do navegador sem recalcular no servidor.
  • Papel vindo do cliente — role/is_admin enviados pelo cliente (mass assignment).
  • Webhook do Stripe sem assinatura — qualquer um finge um pagamento aprovado.
  • Token e hash fracos — Math.random para token, MD5/SHA1 para senha.
  • Senha em log — console.log com senha, token ou chave.
  • Erro com detalhe interno — stack trace devolvido na resposta.
  • Entrada sem validação — edge function que lê o corpo sem conferir o formato (zod).
  • Resposta de IA como HTML — texto do modelo renderizado como página sem limpar.
  • IA sem teto de tokens — chamada ao modelo sem limite de uso.
  • Dado pessoal em arquivo — CPF/e-mail real ou insert em auth.users em seed/CSV.
03

Supabase e banco de dados

  • Tabela lê sem login (RLS aberto) — testado com a chave pública: a leitura anônima devolve dados.
  • Migration cria tabela sem RLS — tabela nova sem Row Level Security.
  • Policy USING(true) / permissiva — RLS ligado, mas com regra aberta — o mesmo que sem RLS.
  • GRANT para anon/public — privilégio dado a quem não está logado.
  • SECURITY DEFINER sem search_path — função com o dono do banco que pode ser enganada.
  • Bucket do Storage público — arquivos listáveis ou abertos sem login.
  • Cadastro sem confirmar e-mail — qualquer um cria conta com o e-mail de outra pessoa.
  • Cadastro aberto — aviso quando o app deveria ser só por convite.
  • Schema exposto (OpenAPI) — tabelas e funções listadas pela chave pública.
  • Função RPC chamável pelo anon — mais grave quando o nome sugere apagar, resetar ou dar permissão.
  • Dado pessoal legível — e-mail, CPF ou telefone lidos sem login.
  • Firebase / Firestore aberto — banco do Firebase legível sem login.
  • Security Advisor do Supabase — os alertas de segurança que o próprio Supabase calcula.
  • Performance Advisor — índice faltando, índice sem uso, RLS lenta.
04

Dependências (bibliotecas)

  • Falha conhecida (CVE) — pacote com vulnerabilidade publicada (base OSV) e a versão que corrige.
  • Pacote malicioso (MAL) — pacote marcado como malware — sempre crítico.
  • Sem lockfile legível — hoje o scanner lê package-lock.json e bun.lock. Projeto em Yarn ou pnpm é sinalizado como não analisado — e aparece assim no painel, em vez de aparecer como limpo.
  • Pacote inexistente — está no package.json mas não existe no npm (nome inventado pela IA).
  • Script na instalação — pacote pouco conhecido que roda código ao ser instalado.
  • Baixado fora do npm — dependência vinda de git ou link, sem versão fixa.
  • Licença restritiva — GPL, AGPL, SSPL e parecidas em produção.
  • Abandonado / descontinuado — sem atualização há mais de 2 anos, ou marcado deprecated.
  • Fora de suporte (EOL) — React, Vue, Node e outros em versão sem correção.
  • Biblioteca JS vulnerável no navegador — jQuery, Bootstrap e outras, pela base do Retire.js.
  • Prioridade EPSS — probabilidade de a falha ser explorada nos próximos 30 dias.
  • CISA KEV — falha que já está sendo explorada no mundo — vira crítico.
  • Quem usa o pacote X — índice para achar todos os projetos com um pacote, quando sai um worm.
05

Cabeçalhos e TLS

  • HSTS ausente ou fraco — sem forçar HTTPS, ou max-age curto / sem includeSubDomains / preload.
  • CSP ausente — sem Content-Security-Policy, um XSS carrega script de qualquer lugar.
  • CSP fraca — unsafe-inline, unsafe-eval, * ou data: no script-src.
  • Clickjacking — sem X-Frame-Options nem frame-ancestors.
  • Sem nosniff — o navegador pode adivinhar o tipo e executar como script.
  • Referrer-Policy ausente — a URL completa (com tokens) vaza para terceiros.
  • Permissions-Policy / COOP ausentes — sem restringir câmera, microfone, localização e isolamento.
  • Cookie inseguro — cookie sem Secure, HttpOnly ou SameSite.
  • Conteúdo misto — recurso http dentro de página https.
  • Script sem SRI — script de terceiro sem verificação de integridade (tipo Polyfill.io).
  • Versão do servidor exposta — Server / X-Powered-By entregando a versão.
  • Sem redirecionar para HTTPS — o site aceita HTTP sem forçar o cadeado.
  • Sem WAF/CDN — nenhum firewall na frente (Cloudflare, Sucuri, Akamai…).
  • Certificado — validade e emissão conferidas pelos registros públicos (crt.sh) e lista de preload.
06

Arquivos expostos

  • .env e variações — .env, .env.local, .env.production com segredos acessíveis.
  • Pasta .git — /.git/HEAD, config e logs — dá para baixar o código inteiro.
  • Backups e dumps — backup.zip, backup.sql, dump.sql, database.sql, db.sqlite.
  • Arquivos de configuração — config.json, package.json, docker-compose.yml, web.config, .htaccess.
  • Credenciais de ferramentas — .npmrc, chave SSH (id_rsa), .aws/credentials, wp-config.php.bak.
  • Arquivos de editor — /.vscode/settings.json, /.idea/workspace.xml.
  • Diagnóstico e status — phpinfo.php, /server-status.
  • Documentação de API — swagger.json, openapi.json, /api-docs, swagger-ui.
  • Source map publicado — o .map entrega o código-fonte original do front.
  • Listagem de diretório — a pasta mostra a lista de arquivos.
07

Exposição externa

  • Portas de banco abertas — Postgres, MySQL, Mongo, Redis, Elastic acessíveis pela internet (Shodan).
  • Serviços de acesso abertos — RDP, SSH, Telnet, Kibana expostos.
  • CVEs no IP — falhas conhecidas nos serviços que rodam no servidor.
  • Vazamentos indexados (LeakIX) — banco aberto ou arquivo exposto achado por varredura da internet.
  • Hosts e certificados (Censys) — inventário de endereços ligados ao domínio.
  • Preview/staging público — ambiente de teste no ar com dados reais.
  • Painel de admin esquecido — phpMyAdmin, Adminer, Grafana, Kibana, pgAdmin, Actuator, Prometheus.
  • Versão de CMS/servidor — WordPress e plugins, ou generator, com versão e falha conhecida.
08

Teste no ar (DAST leve, passivo)

  • Rota privada sem login — rota que parece privada (admin, painel) abre sem autenticação.
  • GraphQL aberto — introspecção liberada entrega o mapa completo da API.
  • Open redirect ao vivo — o site redireciona para qualquer endereço passado na URL.
  • Métodos HTTP perigosos — o servidor anuncia TRACE, PUT ou DELETE no cabeçalho Allow.
  • Login sem proteção contra robô — sem CAPTCHA/Turnstile no login ou cadastro.
  • Upload sem validação — formulário de arquivo sem conferir tipo e tamanho.
  • Cache público com dado pessoal — página dinâmica com sessão marcada como cacheável.
09

Integridade do front (anti-skimmer)

  • Script mudou de conteúdo — um script do site foi alterado desde a última varredura.
  • Terceiro novo servindo script — apareceu um domínio externo que não existia antes (possível skimmer).
  • Checkout/login alterado — mudança na página de pagamento ou de login — risco maior.
  • Script sumiu — registro de script que deixou de existir.
10

Domínio e e-mail

  • SPF ausente ou aberto — sem SPF, ou +all, deixa qualquer um mandar e-mail pelo domínio.
  • SPF estourado — mais de 10 consultas: o SPF passa a falhar.
  • DKIM não encontrado — sem assinatura de e-mail nos seletores comuns.
  • DMARC ausente ou p=none — sem bloquear e-mail falso e sem receber relatório.
  • MTA-STS, TLS-RPT, BIMI — proteções e relatórios extras do e-mail.
  • DNSSEC ausente — DNS sem assinatura, sujeito a adulteração.
  • CAA ausente — qualquer autoridade pode emitir certificado para o domínio.
  • Domínio vencendo — aviso aos 30, 14 e 7 dias antes do vencimento.
  • Certificado vencendo — o cadeado do site vence em até 14 dias.
  • Domínio sem trava de transferência — pode ser transferido sem trava do registrador (RDAP).
  • Subdomínio sequestrável — CNAME apontando para um serviço sem app, em qualquer subdomínio (crt.sh).
  • Fora do HSTS preload — domínio fora da lista de HTTPS obrigatório dos navegadores.
  • Domínio parecido (typosquat) — domínios semelhantes já registrados — base para phishing.
11

Reputação e malware

  • Google Web Risk — o Google marca o site como perigoso (tela vermelha do Chrome).
  • URLhaus — o site aparece distribuindo malware ativo.
  • Have I Been Pwned — o domínio aparece em vazamentos conhecidos.
  • Listas negras (Spamhaus) — domínio ou IP em lista negra de spam.
  • Minerador de cripto — código de mineração escondido no HTML.
  • Iframe oculto — iframe invisível carregando conteúdo de terceiro.
  • Código ofuscado — eval de código embaralhado, sinal de injeção.
  • Spam de SEO — páginas de cassino, remédio ou apostas injetadas no site.
12

Privacidade / LGPD

  • Rastreador sem consentimento — Google, Meta, TikTok, Hotjar ou Clarity sem banner de cookies.
  • Rastreador antes de aceitar — o navegador do PageSpeed vê rastreador carregando sem ninguém clicar.
  • Sem política de privacidade — nenhum link para a política.
  • Sem termos de uso — nenhum link para os termos.
  • Sem exclusão de conta — o app tem login mas nenhuma forma de apagar a conta (art. 18).
  • Sem encarregado (DPO) — nenhuma menção ao encarregado ou canal de privacidade (art. 41).
  • Formulário sem HTTPS — dados enviados sem criptografia.
  • Dado pessoal na URL — e-mail, CPF ou telefone no endereço da página.
13

Erros de funcionamento

  • Tela branca — a página abre vazia no navegador.
  • Erro no console — erros de JavaScript ao abrir o site.
  • Recurso quebrado — script, CSS, imagem ou og:image com erro (404/5xx).
  • Variável de ambiente faltando — o build saiu sem uma configuração e a tela quebra.
  • 404 ao recarregar — recarregar numa rota interna dá erro (SPA sem fallback).
  • Redirecionamento em loop — cadeia longa ou circular de redirecionamentos.
  • Página de erro com stack trace — erro técnico aparecendo para o visitante.
  • Texto quebrado — undefined, NaN, [object Object], lorem ipsum ou TODO visível.
  • Site lento — nota de desempenho baixa, LCP e CLS ruins (PageSpeed).
  • Acessibilidade — nota baixa e imagens sem texto alternativo.
  • SEO básico — sem title, description, og:image, canonical; robots/sitemap inválidos.
  • Tarefa agendada falhando — job do pg_cron com falha nas últimas 24h.
  • Função com erro ou lenta — edge function com muitos erros 5xx ou tempo médio alto.
14

IA na sua máquina (sem custo de API)

  • RLS com intenção errada — a regra está sintaticamente certa, mas um cliente vê o dado de outro.
  • IDOR / BOLA — trocar um id e acessar o dado de outra pessoa.
  • Caminho do dado (taint) — segue a entrada do usuário até o ponto explorável (SQLi, SSRF).
  • Abuso de regra de negócio — manipular cupom, preço ou quantidade.
  • Prompt injection — entrada do usuário misturada nas instruções de uma IA com acesso privilegiado.
  • System prompt exposto — as instruções internas da IA aparecem no código do navegador.
  • Classificação de segredo — a IA decide se um candidato é segredo real, de teste ou exemplo.
  • Dependência maliciosa — lê o código de uma atualização de pacote em busca de sinal malicioso.
  • LGPD semântica — compara o que a política promete com o que o app realmente coleta.
A inteligência

Não é lista de problema. É o que corrigir primeiro.

Achar é fácil. O BuscaFalha diz o que importa, por quê, entrega a correção — e confirma que foi resolvido.

Prioriza

Risco real 0–100

Nota que mistura gravidade, se está sendo explorado (EPSS/KEV), alcance e exposição — não só o CVSS. Com rótulo de “ação imediata” e prazo (SLA).

Prioriza

Corrija estes 5

Em vez de “você tem 1.327 falhas”, as poucas ações que mais reduzem risco. Simulador: “se corrigir estas 3, risco 82→51”.

Prioriza

É explorável?

Separa risco teórico de risco real: teórico → alcançável → externamente alcançável → exploit conhecido → ativamente explorado.

Correlaciona

Cadeia de ataque

Junta achados soltos num caminho de ataque: token exposto + tabela aberta + função sem login = 1 ataque, não 3 avisos.

Correlaciona

Causa raiz

Agrupa dezenas de achados numa causa só (“37 achados → faltou RLS no schema de vendas”) e mostra o alcance de um segredo vazado.

Mostra

O que mudou

Desde a última varredura: +3 novas, −12 corrigidas, risco 71→68, e por que mudou. Tempo de exposição e retorno (ROI).

Apresenta

Centro de comando

Risco geral, críticos exploráveis, expostos à internet, segredos ativos, KEV, novos e corrigidos na semana, violações de prazo.

Apresenta

Nota A–F e postura

Nota por site e por projeto, com a tendência no tempo, e um painel executivo com a postura geral de segurança.

Corrige e confirma

Correção pronta

Prompt de correção ou o “antes → depois” do código. O achado só fecha quando a varredura seguinte não encontra mais. Se voltar, reabre.

O que ele protege

Seu cliente, sua conta, sua reputação.

Dados do clienteCPF, e-mail e documentos nunca abertos a qualquer um. Conformidade com a LGPD.
CredenciaisAcha a chave vazada antes do golpista e manda revogar — conta na nuvem e APIs protegidas.
Acesso entre clientesGarante que um cliente nunca veja o dado de outro: RLS, IDOR e isolamento multi-tenant conferidos.
Reputação e SEOImpede o site de ser marcado como perigoso, distribuir vírus ou virar spam.
DisponibilidadeDomínio e certificado vencendo, tela branca, erro 5xx e cron falhando — avisados antes.
E-mail e domínioSPF/DKIM/DMARC e subdomínio sequestrável: ninguém manda e-mail fingindo ser a marca.
O próprio códigoFalhas de lógica, injeção e acesso indevido entre clientes, achadas a cada push.
A IA do appRobô de IA sem login ou sem teto de custo e prompt injection, antes de virar conta alta.
Como funciona

Conecta uma vez. Roda sozinho.

Do código à produção, a cada push e a cada 24 horas, sem você precisar lembrar.

1
ConectaGitHub (só leitura) e os sites no ar. Nada é instalado no site do cliente.
2
VarreAs 14 famílias, do código ao domínio. Cada push dispara a varredura em minutos.
3
PriorizaCalcula o risco real e monta “corrija estes 5 primeiro”.
4
CorrigeEntrega a correção pronta. A IA roda na sua máquina, sem custo de API.
5
ConfirmaConfere que sumiu e avisa por e-mail e WhatsApp. Se voltar, reabre.
Para agências

Centenas de projetos, um só painel.

Feito para quem cuida de muitos apps de cliente (Lovable, Supabase, Vercel) e precisa saber, de relance, onde está o risco.

550+ projetosNota por clienteRelatório para o clienteAviso por e-mail e WhatsAppSem instalar nada no siteRoda sozinho 24/7IA no seu plano, sem custo de APISelo de verificação
150+verificações automáticas
14famílias de falha
24/7a cada push e a cada 24h
0instalação no site do cliente

Ache a falha antes.

Conecte seus projetos e, em minutos, veja o que corrigir primeiro.