
Hace unas semanas recibí un SMS que parecía de mi banco. "Su cuenta ha sido bloqueada temporalmente. Verifique su identidad accediendo al siguiente enlace." El enlace apuntaba a un dominio que se parecía mucho al real, pero con una letra de más. Lo identifiqué porque llevo años trabajando en tecnología y presto atención a estos detalles, pero pensé en toda la gente que no tiene esa ventaja. Mi madre, mis vecinos, cualquier persona que reciba ese mensaje un viernes a las diez de la noche con prisa por resolver el supuesto problema.
Las estafas digitales en España están en niveles récord. El smishing (SMS fraudulento), el phishing bancario, las llamadas de supuestos técnicos de Microsoft y los mensajes de paquetería falsa son el pan de cada día. Y los estafadores son cada vez más sofisticados, ya que los mensajes están mejor redactados, los dominios son más creíbles y la urgencia que transmiten está calculada al milímetro.
ScamDetector es una herramienta web que construí para ayudar a identificar estas estafas. La idea es simple: pegas el mensaje sospechoso, opcionalmente incluyes el número de teléfono o una captura de pantalla, y la herramienta te dice si tiene pinta de fraude, qué tipo de estafa podría ser y qué deberías hacer.
ScamDetector no se limita a buscar palabras clave en un mensaje. Combina tres fuentes de información diferentes que se ejecutan en paralelo para ofrecerte una visión lo más completa posible.
El motor principal es Google Gemini 3 Flash, un modelo de IA multimodal que analiza tanto el texto del mensaje como las imágenes que adjuntes. Si recibes un WhatsApp sospechoso, puedes hacer una captura de pantalla y subirla directamente. El modelo procesa hasta tres imágenes en la misma petición.
El análisis no es genérico. El prompt del sistema está diseñado para reconocer patrones de estafa específicos del contexto español. Detecta phishing bancario que suplanta a CaixaBank, Santander, BBVA o cooperativas locales. Identifica smishing de paquetería falsa que imita a Correos, SEUR o Amazon. Reconoce estafas de energéticas como Endesa o Iberdrola, falsas devoluciones de Hacienda, el clásico Bizum inverso e incluso el mensaje del "hijo en apuros" que llega por WhatsApp desde un número desconocido.
El resultado incluye un nivel de riesgo (alto, medio o bajo), un porcentaje de confianza, el tipo concreto de estafa que identifica, una explicación detallada de por qué considera que es fraudulento y una recomendación sobre qué hacer a continuación. Si el riesgo es medio o alto, te muestra los enlaces directos para denunciar al INCIBE, la Policía Nacional o la Guardia Civil.
Además de la recomendación general, la herramienta muestra pasos de acción concretos adaptados al tipo de estafa detectado. Si identifica phishing bancario te dice que contactes con tu banco por su canal oficial, cambies contraseñas y actives la verificación en dos pasos. Si es un Bizum inverso, que compruebes siempre si te están pidiendo dinero en vez de enviártelo. Si es paquetería falsa, que verifiques el seguimiento en la web oficial del transportista. Cada tipo de estafa tiene sus propios pasos porque la respuesta correcta no es la misma para todas.
Si además del mensaje tienes el número desde el que lo enviaron, ScamDetector busca su reputación en internet usando Perplexity Sonar, un modelo con acceso a búsqueda web en tiempo real. Consulta fuentes como ListaSpam, Tellows, quienllama.es y Clever Dialer para comprobar si ese número ya ha sido reportado por otros usuarios.
Hay una decisión de diseño que me parece importante mencionar. Si el modelo no encuentra información sobre un número, el resultado es "desconocido", nunca "bajo riesgo". Sería tentador clasificar como seguro un número del que no hay quejas, pero la ausencia de reportes no garantiza nada. Un número puede ser nuevo, recién activado o simplemente no haber sido denunciado todavía. La herramienta lo refleja con honestidad en lugar de generar una falsa sensación de seguridad.
La tercera capa es el escaneo de enlaces. Cuando pegas un mensaje que contiene URLs, ScamDetector las extrae automáticamente y te permite escanearlas con urlscan.io. El servicio visita la URL en un entorno controlado, toma una captura de pantalla de la página, analiza los certificados TLS, registra todas las redirecciones, identifica las tecnologías que usa el servidor y emite un veredicto sobre si es maliciosa.
Puedes escanear hasta cinco URLs en paralelo. Los resultados incluyen la captura de pantalla (que te permite ver la página sin visitarla), el veredicto de maliciosidad con puntuación, los detalles del certificado TLS incluyendo si se emitió hace menos de 30 días (un indicador común de phishing), y un enlace al informe completo en urlscan.io por si quieres profundizar.
Los resultados de escaneos recientes se cachean durante una hora para no repetir consultas innecesarias, y si alguien ya escaneó esa misma URL en las últimas 24 horas se reutiliza el resultado existente.
Lo que convierte a ScamDetector en algo más que la suma de sus partes es la opción de enriquecer el análisis del mensaje con los datos de urlscan. Cuando activas esta opción, la herramienta primero escanea las URLs del mensaje y después inyecta los resultados (veredicto, edad del certificado TLS, redirecciones, dominios contactados) en el contexto que recibe la IA.
Esto marca una diferencia real. Sin el enriquecimiento, la IA analiza el texto y hace su mejor estimación basándose en patrones lingüísticos. Con el enriquecimiento, puede decirte cosas como "el enlace redirige tres veces antes de llegar a un dominio registrado hace dos días con un certificado Let's Encrypt recién emitido, lo cual es consistente con una campaña de phishing activa". Es información técnica concreta, no una inferencia sobre el tono del mensaje.
ScamDetector no requiere registro, no almacena los mensajes que analizas y no guarda los números de teléfono que consultas. El historial de análisis se mantiene en el localStorage del navegador, así que vive y muere en tu dispositivo.
Los mensajes pasan por un servidor proxy que se comunica con los servicios de IA. El proxy no registra el contenido de los mensajes ni las imágenes, solo metadatos anonimizados (hash de la IP, duración, tipo de análisis) que se purgan automáticamente cada 7 días. Su función principal es autenticar contra los servicios externos y aplicar rate limiting para evitar abusos.
La interfaz imita una burbuja de chat tipo SMS para que pegar un mensaje sospechoso resulte natural. Si copias un texto sospechoso al portapapeles y pegas en cualquier parte de la página, la herramienta detecta automáticamente si es texto, una URL o una imagen y lo envía al campo adecuado. No hace falta buscar dónde pegar, la detección es global. Si pierdes la conexión a internet, un indicador visual te avisa. Y el historial de análisis anteriores se organiza con paginación para no saturar la pantalla si lo usas a menudo.
Si es tu primera vez, un panel de ayuda deslizable explica cada funcionalidad con capturas de pantalla. Se abre desde un botón en la esquina y no interfiere con el formulario.
Una de las funcionalidades que más me gusta es el soporte para imágenes. Muchas estafas llegan como capturas de pantalla reenviadas por WhatsApp o como imágenes que imitan la interfaz de un banco. En esos casos copiar el texto no sirve porque el texto está dentro de la imagen.
ScamDetector acepta hasta tres imágenes (PNG, JPG o WebP, máximo 5 MB cada una) que se envían junto con el mensaje al modelo de visión de Gemini. El modelo las analiza visualmente y puede detectar interfaces falsas, logos manipulados o textos incrustados que contengan indicadores de fraude.
Pero el análisis visual no es lo único que ScamDetector extrae de las imágenes. Si la captura contiene URLs visibles, ya sea un enlace en un mensaje de WhatsApp o una dirección web en un email reenviado, la herramienta las detecta automáticamente mediante reconocimiento óptico y las envía al escáner de urlscan.io. No necesitas copiar manualmente las URLs que aparezcan en la imagen para poder analizarlas.
Conviene ser claros sobre las limitaciones. ScamDetector es una herramienta educativa, no un oráculo infalible. Hay cosas que hace bien y cosas que escapan a sus capacidades.
Funciona mejor con mensajes en español que siguen patrones de estafa conocidos. Si recibes un SMS en rumano que suplanta a un banco portugués, el análisis será menos fiable porque los prompts están optimizados para el contexto español. También tiene un límite de 5000 caracteres por mensaje, lo cual cubre la inmensa mayoría de SMS y WhatsApps fraudulentos pero puede quedarse corto con emails largos.
La consulta de reputación de teléfonos depende de que existan reportes previos en las fuentes que consulta. Un número nuevo usado por primera vez para una estafa no aparecerá en ninguna base de datos, y la herramienta te lo dirá honestamente.
Y lo más importante, que un análisis diga "bajo riesgo" no significa que puedas confiar ciegamente en el mensaje. Los estafadores evolucionan continuamente y ningún modelo de IA detecta el 100% de los intentos de fraude. ScamDetector es un segundo par de ojos, no un sustituto de tu propio criterio.
Si quieres compartir un resultado con alguien, la herramienta genera una imagen PNG estilizada con el análisis completo (nivel de riesgo, tipo de estafa, explicación y recomendación) que puedes enviar por WhatsApp, guardar o compartir desde el navegador. ScamDetector también funciona como aplicación instalable. Si la añades a la pantalla de inicio de tu móvil se comporta como una app nativa, con cache offline para que la interfaz cargue aunque no tengas conexión en ese momento.
Pruébalo en scamdetector.josemanuelortega.dev y, si alguna vez recibes un mensaje que te haga dudar, pégalo ahí antes de hacer clic en ningún enlace.

Defensa contra inyección de prompts, prevención de alucinaciones del modelo, rate limiting en capas y el resto de cambios que endurecieron ScamDetector para producción real.

Repaso completo de las medidas de seguridad que puedes aplicar a un VPS Linux: desde CrowdSec y el firewall hasta el hardening del kernel, pasando por SSH, Docker y las actualizaciones automáticas.

Nuestros posts viven en una base de datos SQLite. Si alguien accede a ella, puede cambiar cualquier artículo sin dejar rastro. Construimos un verificador externo con hashes SHA-256 y firma Ed25519 que vigila la integridad desde un segundo servidor.