Publicamos os vetores de abuso que identificámos e o que fazemos quanto a cada um. É um documento vivo — atualiza-se à medida que lançamos reforços.
Estorno após a entrega do dossiê
ParcialVetor
O comprador adquire o dossiê, descarrega o PDF e depois contesta a cobrança como «serviço não recebido» — alegando que o recibo nunca chegou.
Mitigação
Cada visualização do dossiê e descarregamento do PDF é registado com data/hora + IP + agente do utilizador. Um webhook do Stripe ouve os eventos de estorno; submetemos automaticamente o registo de entrega + IP-geo + utilizador com sessão iniciada como prova convincente (código de motivo 13.1 — crédito não processado / fraude amigável).
Partilha de credenciais do plano Investidor
Em esperaVetor
Uma subscrição de $129/mês usada por todo um escritório de corretagem de compradores ou uma agência de 20 pessoas, minando a economia unitária.
Mitigação
Limite de taxa suave na geração de dossiês por conta/IP (Upstash). Limite rígido implementado após o lançamento via deteção de sessões simultâneas na auth do Supabase + hash de impressão digital. Um nível de preço para agências é anunciado se for detetado abuso.
Teste de cartões via /upgrade
ParcialVetor
Um bot sonda /upgrade com números de cartão roubados numa varredura de $1 a $49 para encontrar cartões ativos.
Mitigação
Limite de taxa em /api/checkout (5/min/IP, rígido 20/h). As regras predefinidas do Stripe Radar cobrem velocidade de BIN + incompatibilidade de CVC + recusas repetidas. Adiciona-se reCAPTCHA Enterprise no checkout quando o rácio de bots ultrapassa 5 %.
Advogado mal-intencionado lista imóveis fictícios
DocumentadoVetor
Um perfil de advogado falso lista imóveis que não representa, recolhe contactos de compradores e depois desaparece.
Mitigação
Revisão editorial manual de cada anúncio (SLA de 24 h) durante o MVP. Após o lançamento: o advogado tem de completar a verificação do número da Ordem + o carregamento de uma cédula profissional recente + uma contra-assinatura de um par verificado existente. O rácio anúncio-conclusão é acompanhado; os anúncios abaixo de 10 % são sinalizados para revisão.
Personificação de um escritório verificado
DocumentadoVetor
Um atacante regista-se usando o número da Ordem de um escritório de advogados real obtido do registo público.
Mitigação
O registo exige um e-mail de verificação enviado para o domínio do escritório (validado por DNS MX, sem Gmail/Hotmail). O número da Ordem é cruzado com o registo público da ordem de advogados do país (England Bar Council, Ordem dos Advogados, Colegio de Abogados, Conseil National des Barreaux, Türkiye Barolar Birliği).
Falsificação de pedido do lado do servidor via o parâmetro URL de /api/analyse
AplicadoVetor
Um atacante submete um URL de rede interna (http://169.254.169.254, http://localhost) para extrair metadados de serviços na nuvem.
Mitigação
A PORTAL_ALLOWLIST em lib/geocode.ts codifica os nomes de anfitrião (rightmove.co.uk, idealista.com, seloger.com, imovirtual.com, sahibinden.com, …). Qualquer URL que não conste da lista de permitidos devolve 422 antes de iniciar qualquer pedido.
Injeção de prompt via conteúdo de anúncio extraído
AplicadoVetor
Um og:title ou og:description malicioso numa página de anúncio contém «Ignora as instruções anteriores e …» tentando alterar o prompt do Gemini.
Mitigação
As cadeias extraídas são escapadas, limitadas em comprimento (1000 caracteres) e envolvidas em blocos delimitados [USER_INPUT] no prompt. O prompt do sistema instrui explicitamente o Gemini a tratar a entrada como dados não fiáveis, não como instruções.
Branqueamento via depósito Concierge
DocumentadoVetor
O comprador paga uma taxa de $1.500 com o cartão A, pede reembolso para o cartão B — usando-nos como misturador de branqueamento.
Mitigação
Regra rígida via API de Reembolsos do Stripe: o reembolso tem de voltar ao método de pagamento original. Sem reembolsos a beneficiários alternativos. Verificação AML (prova de fundos) em depósitos acima de 10 000 €. O cliente Concierge tem de completar a verificação de identidade (Stripe Identity) antes de o depósito ser aceite.