Según Wikipedia :
Se denomina honeypot al software o conjunto de computadores cuya intención es atraer a atacantes, simulando ser sistemas vulnerables o débiles a los ataques. Es una herramienta de seguridad informática utilizada para recoger información sobre los atacantes y sus técnicas. Los honeypots pueden distraer a los atacantes de las máquinas más importantes del sistema, y advertir rápidamente al administrador del sistema de un ataque, además de permitir un examen en profundidad del atacante, durante y después del ataque al honeypot.
Algunos honeypots son programas que se limitan a simular sistemas operativos no existentes en la realidad y se les conoce como honeypots de baja interacción y son usados fundamentalmente como medida de seguridad. Otros sin embargo trabajan sobre sistemas operativos reales y son capaces de reunir mucha más información; sus fines suelen ser de investigación y se los conoce como honeypots de alta interacción.
Entonces, y ya sin citar a Wikipedia, básicamente (y muy básicamente) un Honeypot tiene como función atraer a los mal llamados "hackers" para conocer e investigar los comportamientos.
Por ejemplo, supongamos que tenemos un servidor ofreciendo servicios tales como SSH, FTP, WEB, etc.
Con una Honeypot podríamos emular esos servicios en los puertos stándars (22, 21, 80, en este caso) y distraer a los atacantes para que pierdan el tiempo y de paso ver qué hacen, qué exploits utilizan, si explotan alguna vulnerabilidad nueva, etc..
Eso, nos dará tiempo para ir a nuestros verdaderos servicios y "parchear" o securizar sabiendo qué es lo que los atacantes podrían hacer.
El diagrama de red de un honeypot sería más o menos así:
Vamos a los bifes, en este caso (porque vamos a ver más adelante varios ejemplos de honeypots)
Instalaremos kippo un honeypot destinado a emular un Servidor SSH.
Lo primero que vamos a hacer es instalar python-twisted
apt-get install python-twisted
Y luego (como usuarios comunes) vamos a descarganos kippo.
wget http://kippo.googlecode.com/files/kippo-0.5.tar.gz
Descomprimimos:
tar -xvzf kippo*
Entramos al directorio y lo ejecutamos:
cd kippo*
./start.sh
Listo, eso es todo .. demasiado fácil no?
Ya tenemos corriendo un honeypot de baja-media interacción, emulando ser un servidor SSH.
Si ustedes pueban conectarse van a ver que pueden hacer exactamente las mismas cosas que podrían hacer en un servidor SSH común y corriente.
Este tipo de honeypots son totalmente inofensivos para el sistema, puesto que (justamente) el servicio emulado no existe y jamás podrán acceder al sistema real.
Se trata de un software hecho en python que emula cada uno de los módulos de una distribución (wget, apt-get, ping, uptime, ls, cd, cat, etc etc etc)
Ahora seguimos, porque en mi caso tuve que cambiar el puerto del servidor SSH original, para que si el atacante quiere conectarse al 22 lo lleve al 2222 (que es el puerto del servidor SSH emulado)
Esto lo hacemos con IPTABLES de la siguiente manera:
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 22 -j REDIRECT –to-port 2222
(Puede variar la interface, en mi caso es eth0)
Si usteden tienen un cliente SSH como Putty ( click acá para bajarlo ) pueden probarlo contra un VPS mío.
Pongan en host name o ip: www.efe4.com.ar
Y el puerto queda como está, el 22
Logueense como root con la clave 123456 y vean cómo funciona kippo.
Entre otras cosas, kippo tiene la opción de loguear todo lo que el atacante hizo y luego reproducirse en tiempo real como si estuvieran frente a la consola, un ejemplo pueden verlo aquí:
http://kippo.rpg.fi/playlog/?l=20100316-233121-1847.log
La función "playlog" se encuentra en la carpeta "utils" y la ejecutan con:
python playlog.py -b -m 2 ubicacion-del-log 0
Eso es todo .. después seguimos con un par de honeypots un poco más complejos y completos.
Salutes!