// Expediente de evidencia
MankekeDev Discord Bot
Bot modular para Discord orientado a ciberseguridad defensiva, OSINT y automatización de comunidades. Integra consultas con proveedores externos, protección anti-raid, detección de phishing, música, persistencia local y auditoría operativa.
Contexto
Comunidades de Discord y administradores necesitaban concentrar consultas defensivas de ciberseguridad, OSINT y utilidades de moderación sin saltar entre varias herramientas o bots genéricos.
Problema
Las consultas de reputación, DNS, TLS, cabeceras, registros de dominio y análisis de indicadores estaban dispersas; el reto era centralizar ese flujo sin crear una herramienta monolítica. Además, la operación necesitaba detectar señales de phishing, observar incorporaciones masivas y mantener funciones de comunidad sin mezclar permisos administrativos ni secretos de proveedores.
Mi rol
Diseñé y desarrollé en Node.js la arquitectura modular del bot, los comandos slash, los eventos de Discord, las integraciones OSINT, la persistencia SQLite, los controles de permisos, anti-raid, phishing, música, logging y las pruebas automatizadas.
Restricciones
El sistema depende de permisos e intents de Discord, APIs externas con límites y disponibilidad propia, proveedores de música y una ejecución continua. Debía conservar secretos fuera del repositorio, controlar el uso por usuario, evitar enviar objetivos internos a servicios externos y mantener privados los comandos administrativos y detalles operativos.
Solución
Construí una superficie de comandos para OSINT defensivo —RDAP/Whois, DNS, HTTP/TLS, Shodan, VirusTotal, AbuseIPDB y urlscan— junto con informes descargables, búsqueda de música, cola y panel interactivo, utilidades de servidor y auditoría de seguridad. Los eventos agregan detector de phishing configurable, anti-raid con umbral, cooldown y reconstrucción desde SQLite, además de logs de cambios y eliminaciones para trazabilidad.
Arquitectura
Aplicación Node.js 20+ en CommonJS sobre Discord.js v14, organizada por loaders, comandos, eventos, servicios y utilidades. El flujo event-driven procesa interacciones, mensajes y nuevos miembros; better-sqlite3 mantiene persistencia local en modo WAL para la ventana anti-raid y la caché OSINT. Axios y validadores conectan proveedores externos, mientras Winston registra eventos y Discord Player gestiona la capa de música.
Decisiones
Separé los comandos por dominio para reducir acoplamiento y facilitar su descubrimiento y despliegue. Validé IPs, dominios y URLs con Zod antes de llamar a proveedores, bloqueé objetivos locales o privados, añadí caché y límites por comando/usuario para reducir abuso, y usé respuestas efímeras cuando el resultado puede contener información sensible. La persistencia local mantiene el bot operable sin introducir una base de datos remota innecesaria.
Seguridad
La configuración valida las credenciales esenciales antes del arranque y las mantiene fuera de la interfaz pública. Los comandos sensibles aplican permisos de Discord, respuestas efímeras y rate limiting por comando/usuario; los objetivos OSINT pasan por validación, se rechazan localhost/IPs privadas/credenciales embebidas y las descargas tienen nombre y tamaño acotados. El phishing puede registrar, alertar o eliminar según configuración, sin guardar el contenido completo del mensaje; anti-raid persiste la ventana y respeta cooldown. Las consultas de URLs o archivos pueden enviarse a proveedores externos como VirusTotal o urlscan según el comando, por lo que no deben usarse con información confidencial. Una capacidad de emergencia de alto impacto se mantiene fuera de esta ficha y requiere revisión independiente; esto no constituye una auditoría externa ni una garantía de seguridad total.
Testing
La ejecución local de la suite terminó con 37/37 pruebas aprobadas. La suite cubre descubrimiento de comandos, configuración, anti-raid, auditoría de seguridad, rate limiting, validación OSINT, caché e informes, phishing, privacidad de /ping, seguridad de archivos, cabeceras, música, purgas y manejo de errores. No prueba disponibilidad permanente en Discord, integraciones externas con credenciales reales, respuestas actuales de cada proveedor ni un benchmark de producción.
Deployment
El proyecto prepara Node.js 20+ y npm para una instalación reproducible, configuración de variables de entorno, registro de slash commands y arranque controlado. El bot requiere tokens/permisos de Discord y, según el comando, claves de proveedores; en esta revisión no se inició una sesión real ni se verificó uptime productivo. La distribución pública debe excluir credenciales, API keys, logs sensibles, SQLite y comandos operativos internos.
Resultado
Se unificaron investigación defensiva, automatización de comunidad y controles de moderación en un bot modular que puede responder desde Discord y producir evidencia legible para operadores autorizados. El resultado demostrado por la suite es funcional y local; no se publican métricas de usuarios, disponibilidad, precisión de detección ni sustitución de una plataforma SOC.
Evidencia
Evidencia revisada: arquitectura modular, configuración, punto de entrada, loaders, comandos, eventos, servicios, utilidades y los 37 tests del proyecto. La evidencia pública adicional es una captura con identificadores sensibles redacted. No se exponen credenciales, API keys, base SQLite, logs, IDs operativos, comandos de emergencia ni datos de servidores.