>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
HTML

Cómo bloquear cientos de miles de sitios de phishing con una sola línea de código

Destroylist

La mayoría de los sitios de phishing solo viven unos pocos días. Los estafadores registran un dominio con un nombre similar a un servicio popular, roban claves privadas o datos de tarjetas de un par de decenas de usuarios desatentos, y luego pasan a la siguiente dirección. Las bases de datos antivirus tradicionales a menudo se quedan atrás en la etapa de análisis, cuando el daño principal ya se ha producido.

Hace poco me encontré con el proyecto de código abierto Destroylist del equipo PhishDestroy. No es solo otra lista de direcciones maliciosas, sino un sistema integral de recopilación de amenazas que busca automáticamente estafas, verifica contenido, reporta violaciones a los registradores y entrega feeds listos para usar en todos los formatos posibles.

Qué hay dentro y para quién es

La base de datos del proyecto contiene más de 888,000 dominios rastreados. De estos, unas 180,000 están en la lista principal verificada de recursos de phishing. El proyecto recopila datos de 13 fuentes a través de sus propios parsers, filtrando constantemente los falsos positivos.

Workflow

El feed es útil en cuatro escenarios claros:

  • Configurar un servidor DNS de red doméstica u oficina a través de Pi- hole, AdGuard Home o Unbound.
  • Validar enlaces dentro de servicios web, bots de mensajería o billeteras de criptomonedas antes de redirigir al usuario.
  • Enriquecer datos en herramientas de investigación SOC u OSINT.
  • Entrenar tus propios modelos de filtrado de tráfico.

Feeds para todos los gustos y Redis rápido

Una característica interesante del repositorio es que los autores se preocupan por cómo vas a obtener los datos. No necesitarás escribir parsers para limpiar logs ni transformar JSON sobre la marcha. El directorio del proyecto contiene archivos listos para diversas herramientas:

  • Hosts (para Pi-hole, /etc/hosts o Windows)
  • AdBlock (para uBlock Origin y AdGuard)
  • Dnsmasq
  • Unbound (para pfSense y OPNsense)
  • RPZ (para BIND y Knot DNS)
  • Redis

Si necesitas cargar un feed actualizado en Redis para búsquedas O(1), el repositorio incluye un one-liner listo para usar:

curl -s https://cdn.jsdelivr.net/gh/phishdestroy/destroylist@main/rootlist/formats/primary/redis.txt | redis-cli --pipe

Después de ejecutar este comando, verificar una dirección en evil-domain.com se convierte en una operación instantánea:

SISMEMBER destroylist:primary evil-domain.com

Todas las listas están disponibles directamente desde GitHub así como a través de jsDelivr CDN. La segunda opción es preferible ya que las solicitudes frecuentes a archivos raw de GitHub pueden resultar fácilmente en un error 429.

Verificación de contenido HTTP y el problema del cloaking

Muchos creadores de listas negras se limitan a la resolución DNS. Si un dominio responde al ping o devuelve una dirección IP, se considera activo. Pero los atacantes a menudo usan cloaking: si un bot de búsqueda o un escáner de seguridad automatizado visita el sitio, obtiene una página vacía o un marcador de posición. El contenido real de phishing solo se muestra a usuarios reales con los encabezados HTTP correctos y la geolocalización adecuada.

Destroylist tiene un feed separado con verificación HTTP. Los scripts del proyecto no solo verifican registros DNS—hacen solicitudes HTTP reales cada 12 horas y analizan el contenido de la página.

Si una página de phishing se está sirviendo realmente en este momento, el dominio se agrega a content_active.json. Sin embargo, los autores advierten honestamente: si un sitio no está en la lista verificada por contenido, eso no significa que sea seguro. Debido al cloaking, es más lógico usar la lista completa.

API gratuita de Threat Intelligence

Si no quieres almacenar una base de datos local ni actualizar regularmente archivos de texto, el proyecto tiene una API REST pública. Es completamente gratuita, no requiere registro ni claves API.

La característica especial de la API es el cálculo de puntuación de riesgo de 0 a 100 puntos. La calificación se forma a partir de una combinación de factores:

  • Presencia en la lista principal del proyecto (+40 puntos)
  • Actividad DNS confirmada (+30 puntos)
  • Reportes de la comunidad (+20 puntos)
  • Palabras clave sospechosas como airdrop, wallet, metamask (+5 puntos cada una)
  • TLDs riesgosos como .xyz, .top, .club (+5 puntos)

Puedes verificar un dominio a través de cURL con un solo comando:

curl "https://api.destroy.tools/v1/check?domain=suspicious-site.xyz"

La respuesta es un JSON transparente con el nivel de amenaza (severidad) y los puntos obtenidos:

{
  "domain": "suspicious-site.xyz",
  "threat": true,
  "risk_score": 85,
  "severity": "critical"
}

Para verificaciones por lotes, hay un endpoint POST en /v1/check/bulk que acepta hasta 500 dominios por solicitud. Esto es conveniente si estás filtrando entrada de usuarios o procesando logs entrantes en lotes.

Ejemplo en Python para verificaciones regulares:

import requests

def check_domain(domain: str) -> bool:
    response = requests.get(f"https://api.destroy.tools/v1/check?domain={domain}")
    if response.status_code == 200:
        data = response.json()
        return data.get("threat", False)
    return False

if check_domain("suspicious-site.xyz"):
    print("Внимание! Домен находится в черном списке.")

Luchando contra los registradores y automatización

Destroylist es interesante no solo como base de datos, sino como precedente en la lucha automatizada contra el abuso. Los autores del proyecto desarrollaron un pipeline que, después de detectar una amenaza, genera evidencia (capturas de pantalla, volcados de tráfico, volcados WHOIS) y envía quejas oficiales a proveedores de hosting, registradores y más de 50 servicios de seguridad incluyendo Google Safe Browsing, VirusTotal, Cloudflare y Microsoft Security.

El repositorio mantiene transparentemente un historial de todos los abusos reportados. El proyecto publica informes sobre registradores que ignoran los requisitos de ICANN y no responden a decenas de reportes de abuso durante meses.

Si un dominio legítimo se capturó accidentalmente en la limpieza, hay un formulario de apelación en el sitio web y GitHub Issues públicos. Los autores procesan rápidamente las solicitudes y agregan las direcciones corregidas al archivo allowlist.json.

Appeals

Reflexiones finales

Destroylist es una herramienta de código abierto madura (licencia MIT) con una alta frecuencia de actualización. Gracias a su estructura de exportación flexible, es fácil de integrar tanto en un Pi-hole doméstico como en un servicio de producción que necesita filtrar estafas sobre la marcha.

Echa un vistazo al repositorio, obtén el formato de feed que necesitas, o simplemente guarda la dirección de la API gratuita. El proyecto está vivo, desarrollado activamente por la comunidad, y genuinamente ayuda a hacer la red más limpia.

Proyectos relacionados