Pon un Honeypot en tu vida
Creo que a día de hoy no quedan muchos que no sepan qué es un Honeypot, y lo bien que nos puede venir tenerlo implementado en nuestras infraestructuras. La idea de estos cacharros como sabemos es alertar y detectar ataques o curiosos en la red; pues en este post, además veremos cómo integrarlo con Centreon.
Hacía tiempo que no jugaba con un Honeypot, recientemente, en un post, los chicos de El Hacker me dieron alguna idea interesante. Puede que sea muy atractivo colocarlos en la parte pública y detectar los ataques que puedan sufrir nuestras IPs públicas, pero quizá sea más interesante desplegar un Honeypot ligero en cada segmento de red que dispongamos. Con la idea de detectar curiosos, bots, o cualquier escaneo que pueda existir en nuestra red interna.
La verdad que existen numerosos Honeypots y quizá por ello os he nombrado anteriormente el post de El Hacker, la gran mayoría se despliegan en un tris, y disponen de interfaces preciosas. En mi caso, andaba buscando uno ligero, uno que detecte y responda a ciertos servicios, a los más comunes que pueda existir en una red (telnet, smb, rdp, ldap, http…). Lo dicho, si alguien intenta conectar a un puerto de esta máquina lo sabremos, sea un ransomware que intenta desplazarse, un escaneo de puertos de algún coti, o un bot intentando hacer una fuerza bruta. El propio Honeypot podría alertarme, pero como sabéis, si puedo centralizarlo en Centreon, y saber el estado del Honeypot, pues mejor que mejor… y si alguien le levanta una conexión, pues alerta que me llega.
Total, no necesitamos nada más que un Ubuntu 18.04 con 1vCPU y por ponerle 2GB de RAM, nos basaremos en este simple pero efectivo Honeypot, llamado Chameleon. Trae un dashboard ya precreado en su propio Grafana y consiste en un pack de 19 honeypots personalizables para los servicios: DNS, HTTP Proxy, HTTP, HTTPS, SSH, POP3, IMAP, STMP, RDP, VNC, SMB, SOCKS5, Redis, TELNET, Postgres, MySQL, MSSQL, Elastic y LDAP.
Antes de desplegar nada, que será maravilloso gracias a los contenedores de Docker, tendremos que cambiar el puerto de conexión SSH a nuestro Ubuntu, ya que el 22tcp lo usará un honeypot, así que editando el ‘/etc/ssh/sshd_config’ ponemos alguno alto, como el 2222tcp (Port 2222) y reniciamos el demonio de sshd ‘sudo systemctl restart sshd’.
Bastará con clonar de la repo de Chameleon, y ejecutar un script, y él se encargará de todo, toca esperar.
git clone https://github.com/qeeqbox/chameleon.git cd chameleon sudo chmod +x ./run.sh sudo ./run.sh deploy sudo ./run.sh test
Tenemos al menos dos opciones, (i) deploy, desplegará 3 contenedores un Grafana, otro con Postgres y otro con los HoneyPots. La opción (ii) test, además desplegará un syslog y un contenedor que simula conexiones; creo menos interesante esta última opción y más pesada (para lo que tratamos en este post). Una vez haya finalizado la creación de los contenedores estará todo listo. Accederemos a Grafana por el puerto 3000 y los credenciales predeterminados (changeme457f6460cb287 / changemed23b8cc6a20e0). En mi caso que ya tengo de algún Grafana en la red, pues este contenedor no me interesa, exporto su dashboard y lo importo en el Grafana de producción, el acceso a la BD de Postgres sería usando el puerto 9999tcp y los credenciales (changeme027a088931d22 / changeme0f40773877963).
Y bueno, para integrarlo en Centreon y que éste sea el generador de las alertas de conexiones, pues lo mejor con consultas a la BD de PostgreSQL del propio Honeypot, así que con un Comando tal que:
perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --plugin=database::postgres::plugin --mode=sql --host=DIRECCION_IP_HONEYPOT --port=9999 --database=chameleon --username=changeme027a088931d22 --password=changeme0f40773877963 --sql-statement="$ARG1$" --warning=0 --critical=0
Y de argumento se le mandan las queries de Postgres, ejemplo el servicio HTTP:
SELECT COUNT(*) FROM sniffer_table WHERE date >= (NOW() - INTERVAL '1 HOUR') AND data->>'dst_port' = '80' AND DATA ->>'action' = 'tcpscan'
Y este sería el resultado. Si bien es cierto que desde el propio grafana que trae Chameleon se podrían configurar alertas, ya me conocéis como buen centralizador, todo pasa por Centreon, hay que enterarse de todo y desde un único punto central.
Lo dicho, espero que os haya parecido curioso, pero creo que es bueno tener alguna máquina de este tipo en nuestra red, si nos entran, mejor que nos lo chiven que tener que esperar a que nos enteremos nosotros mismos. Es ligera, no consume…
PS: Ojo con poner un Honeypot público en internet, sacaréis datos muy flipantes de la selva que hay en internet, de los ataques, los puertos más afectados o los credenciales que intentan los bots; pero como os vulneren la máquina, estarán en vuestra red; las pruebas con pesicola en una red aislada. Un abrazo,