k0Pot: un honeypot que explica los ataques en lenguaje humano

k0Pot: un honeypot que explica los ataques en lenguaje humano

Si dejas una máquina expuesta en internet y te asomas a sus registros, la sensación es de vértigo: miles de intentos de acceso, contraseñas probadas, comandos raros… un ruido constante, día y noche, contra un servidor que a nadie debería importarle. La pregunta obvia es: ¿quién hay ahí fuera, y qué quieren? Para responderla existe una herramienta preciosa (el honeypot) y para responderla sin volverme loco leyendo logs me acabé montando la mía. Se llama k0Pot.

Primero: ¿qué es un honeypot?

Un honeypot (literalmente, "tarro de miel") es un señuelo: una máquina que finge ser un sistema vulnerable y jugoso para atraer a los atacantes. No guarda nada real; su único trabajo es dejarse atacar y registrarlo todo para que puedas estudiar cómo, con qué y desde dónde te intentan colar.

El problema clásico del honeypot es que genera una cantidad brutal de datos. Miles de eventos al día, casi todos ruido automático. Y ahí es donde la mayoría acaba en el cajón: nadie tiene tiempo de leer semejante avalancha. Ese fue justo el problema que quise resolver.

La idea de k0Pot: no registrar, entender

k0Pot parte de honeypots maduros y probados (para SSH y Telnet usa Cowrie; para HTTP, Redis, FTP, MySQL y compañía, servicios propios), pero le añade la capa que a mí me faltaba: interpretación. En lugar de escupirte diez mil líneas ordenadas por volumen, k0Pot:

  • Agrupa los ataques en "episodios" por lo que el atacante consiguió, no por cuántas veces llamó a la puerta. Un semáforo lo resume de un vistazo: roce (solo tocaron el puerto), tanteo (probaron credenciales), acceso (entraron) e intrusión (entraron y actuaron).
  • Te explica en lenguaje humano qué significaba cada cosa.

Así, la primera pantalla ya te dice lo único que importa: de todo el ruido, qué merece tu atención.

Panel de k0Pot mostrando la lista de ataques ordenados por gravedad, un desglose por severidad (intrusión, acceso, tanteo, roce) y un gráfico de actividad por horas.
Los ataques ordenados por gravedad (no por volumen) y el reparto entre ruido de fondo y lo que va en serio. De 1.861 ataques, casi la mitad es ruido; el resto es lo que de verdad miras.

Lo que lo hace distinto: te lee el ataque

Aquí está la parte de la que estoy más orgulloso. Cuando un atacante hace algo, k0Pot no te deja el comando crudo y que te apañes: lo traduce. Usa IA (en segundo plano, sin frenar el panel) para convertir la jerga técnica en una explicación que entiende cualquiera.

Un ejemplo real capturado por el honeypot: alguien subió un pequeño script y k0Pot lo diseccionó solo (qué hace, para qué arquitecturas, y con qué intención), además de calcular su hash y enlazarlo a VirusTotal para analizarlo sin riesgo:

Ficha de un artefacto capturado en k0Pot: un script descargador de malware, con su explicación automática, hash SHA-256, enlace a VirusTotal, IP de origen y las IPs que lo trajeron.
Un "downloader" de malware capturado y explicado automáticamente: borra rastros, descarga binarios para ARM y MIPS (routers, cámaras IP, IoT) y los lanza para sumar el dispositivo a una botnet.

Y no se queda en un comando suelto: conecta los puntos. Cuando varias IPs distintas ejecutan exactamente la misma secuencia, k0Pot se da cuenta de que no son tres incidentes sueltos, sino una sola campaña coordinada, y te lo dice:

Vista de k0Pot que agrupa varias IPs que ejecutan la misma secuencia de comandos de reconocimiento, explicando que se trata de una única campaña coordinada tipo crawler distribuido.
Cuatro IPs ejecutando el mismo guion de reconocimiento: un "crawler" distribuido que inventaría máquinas vulnerables antes de la intrusión definitiva. Reparten la carga entre cientos de bots para no ser bloqueados.

Incluso una cosa tan vieja como un intento por Telnet queda explicada con contexto: qué es Telnet, por qué es peligroso, qué intentó el atacante y qué habría pasado en un servidor real:

Ficha de una IP atacante en k0Pot que intentó acceder por Telnet, con la explicación del ataque y la línea temporal de cada conexión.
Un intento por Telnet, con su explicación y la línea temporal de cada conexión. La ficha incluso avisa de que el origen (un proveedor de hosting barato) es un punto habitual de escaneo hostil.

Todo lo demás, de un vistazo

Más allá de las explicaciones, el panel reúne lo que necesitas para entender la foto completa: las IPs más activas y su reputación, los países de origen, las credenciales que más se prueban (spoiler: admin/admin@123 no falla nunca) y los artefactos que intentaron colar.

Paneles de k0Pot con artefactos capturados, IPs más activas con su reputación, ranking de países y las credenciales (usuarios y contraseñas) más probadas por los atacantes.
IPs más activas, países, y el top de usuarios y contraseñas que prueban los bots. Un retrato de lo que de verdad ataca internet a diario.

Y por encima de todo eso, el panel principal: un mapa con el origen de los ataques, tendencias respecto al periodo anterior, un flujo en vivo de lo que va entrando, y un semáforo por servicio (SSH, Telnet, RDP, VNC, HTTP…). Es la imagen destacada de este artículo, la que abre la página.

k0Pot también exporta indicadores (IOCs en CSV y STIX 2.1) y listas de IPs para bloquear en tu cortafuegos, genera informes HTML autocontenidos, y avisa por Telegram, ntfy o webhook solo cuando algo grave ocurre (no por cada ping).

Cómo está hecho (para quien le pique la curiosidad)

Quería que fuera fácil de desplegar y de auditar, así que las decisiones técnicas van en esa dirección:

  • Un único binario en Go, compilado estático, sin dependencias raras. Base de datos SQLite, cero configuración.
  • Cowrie (en contenedor Docker) hace de honeypot SSH/Telnet de alta interacción; el resto de servicios son nativos en Go. Orquestado con Docker Compose y aislado con nftables.
  • La IA es opcional y agnóstica: funciona con OpenAI, Anthropic, Groq, Ollama y más (o sin IA en absoluto, si prefieres no depender de nadie). Lo mismo con la geolocalización o la reputación de IPs: mejoran la experiencia, pero no son obligatorias.
  • Panel por HTTPS, usuarios propios, y servicios systemd. Instalación en un paso con su paquete .deb.

Libre, autoalojado y tuyo

Como todo lo que publico, k0Pot es software libre (licencia MIT) y autoalojado: corre en tu servidor, tus datos se quedan contigo. Está en GitHub, para que lo uses, lo audites línea a línea o lo mejores:

Ver k0Pot en GitHub

Código abierto (MIT) · autoalojado · Go + SQLite + Docker

Lo que se aprende mirando

Tener un honeypot delante unos días te cura de golpe la ilusión de "a mí quién me va a atacar". Internet es un lugar donde miles de máquinas automáticas llaman a tu puerta sin descanso, probando las mismas contraseñas de siempre, buscando cámaras y routers que sumar a una botnet. No hay maldad personal: hay eficiencia industrial.

Un honeypot es una ventana para ver ese ruido de frente. Lo que quise con k0Pot es que esa ventana, además, se entienda (que cualquiera pueda asomarse y salir sabiendo un poco más de cómo funciona el lado oscuro de la red). Si te dedicas a esto, o simplemente te pica la curiosidad, dale una vuelta.

← Volver al inicio

0 comentarios

Deja un comentario