Bot de Telegram para detectar fraudes y phishing en tiempo real. Analiza URLs, emails, números de teléfono y perfiles de vendedores usando la API REST de Guardian.
| Tipo | Cómo enviarlo | Comando |
|---|---|---|
| URL sospechosa | Pega el link directamente | /url <link> |
| Número de teléfono | Manda el número directamente | /telefono <numero> |
| Email de phishing | Pega el contenido o adjunta un .eml |
/email |
| Perfil de vendedor | Pega el link del perfil | /vendedor <url> |
Plataformas soportadas para vendedores: MercadoLibre, Amazon, AliExpress.
El bot detecta automáticamente el tipo de contenido — no es necesario usar comandos.
URLs
- Typosquatting y homoglifos contra marcas conocidas
- TLDs sospechosos y subdominios falsos (
login.,pagos.,secure.) - Dominios Punycode/IDN que imitan caracteres legítimos
- Expansión de URLs cortos antes del análisis
- WHOIS: antigüedad del dominio
- Redirecciones encadenadas y validez SSL
- Ranking Tranco (presencia en el top 1M de dominios)
- GeoIP: país del servidor e infraestructura de hosting
- Google Safe Browsing y VirusTotal
Números de teléfono
- Detección de números VoIP (Twilio, Google Voice, etc.)
- Validación de código de país y formato
- Inconsistencia de país respecto al contexto del email
Emails
- Suplantación de dominio e impersonación de marcas
- Display name spoofing (nombre visible ≠ dominio real)
- Validación SPF y DMARC
- Alineación DKIM y Reply-To sospechoso
- Frases de urgencia, solicitud de datos de tarjeta e identidad
- Links ocultos (texto visible ≠ href real)
- Teléfonos VoIP o de país inconsistente en el cuerpo
- Análisis de links sospechosos embebidos
- Soporte vía WhatsApp y cuentas bancarias
Vendedores
- Antigüedad de la cuenta
- Historial de transacciones
- Tasa de cancelaciones y reclamos
- Calificación negativa
| Nivel | Emoji | Score |
|---|---|---|
| BAJO | 🟢 | 0–24 |
| MEDIO | 🟡 | 25–49 |
| ALTO | 🟠 | 50–74 |
| CRÍTICO | 🔴 | 75–100 |
- Python 3.9+
- Guardian API corriendo localmente o en un servidor
- Token de Telegram (obtenido desde @BotFather)
git clone <repo>
cd guardian-bot
pip install -r requirements.txt
cp .env.example .env
# Edita .env con tu token y la URL de la APICrea un archivo .env en la raíz del proyecto:
TELEGRAM_TOKEN=tu_token_de_telegram
GUARDIAN_API_URL=http://localhost:8080Levanta la API de Guardian primero:
cd ../guardian
./main serveLuego inicia el bot:
python3 bot.pyguardian-bot/
├── bot.py # Punto de entrada y registro de handlers
├── config.py # Variables de entorno
├── guardian_api.py # Cliente HTTP para la API Guardian
├── detection.py # Clasificación automática de mensajes
├── formatters.py # Formateo de respuestas con emojis
├── handlers/
│ ├── commands.py # /start, /help
│ ├── url.py # Análisis de URLs
│ ├── phone.py # Análisis de teléfonos
│ ├── seller.py # Análisis de vendedores
│ └── email.py # Análisis de emails (flujo guiado + archivos .eml)
├── requirements.txt
└── .env.example
El bot corre como Background Worker (no expone HTTP — usa polling de Telegram).
-
Sube el repositorio a GitHub.
-
En Render, crea un nuevo Background Worker apuntando al repo. Render detecta el
render.yamlautomáticamente y configura el servicio. -
En la sección Environment del servicio, agrega las variables:
Variable Valor TELEGRAM_TOKENToken obtenido de @BotFather GUARDIAN_API_URLURL pública de la Guardian API en Render (ej. https://guardian-api.onrender.com) -
Haz deploy. Render instala dependencias con
pip install -r requirements.txte inicia el bot conpython bot.py.
Nota: Los Background Workers requieren plan de pago en Render. En el plan gratuito solo están disponibles Web Services.
| Archivo | Propósito |
|---|---|
render.yaml |
Configuración del servicio (tipo worker, comandos, env vars) |
runtime.txt |
Fija la versión de Python (python-3.11.9) |
| Endpoint | Descripción |
|---|---|
POST /api/v1/analyze/url |
Typosquatting, TLDs, Punycode, URLs cortos, WHOIS, GeoIP, Tranco, VirusTotal, Safe Browsing |
POST /api/v1/analyze/phone |
VoIP, código de país, consistencia con contexto |
POST /api/v1/analyze/email |
Headers, SPF/DMARC, display name spoofing, links ocultos, teléfonos, cuentas bancarias |
POST /api/v1/analyze/seller |
Reputación, antigüedad, tasas de cancelación y reclamos |