Actualmente el uso de Internet está creciendo y las aplicaciones web se han incrementado en diversos sectores, como el gubernamental, educativo, empresarial y otros, lo que atrae a los atacantes que buscan obtener información sensible o que tienen otras intenciones.
Este artículo tiene como finalidad mostrar la implementación de un honeypot de baja interacción que sea capaz de responder ante los diferentes tipos de ataques a páginas web. Un honeypot es un equipo señuelo configurado e instalado en una red de investigación o producción para poder obtener información de ataques, atacantes o intrusos.
De esta forma, la organización que lo implementa puede obtener información muy valiosa, por ejemplo, conocer direcciones IP, herramientas y métodos de ataque, scripts, entre otros datos. Toda esa información ayudará a mejorar la seguridad en el perímetro y en las aplicaciones web que se utilicen.
Glastopf fue creado por Lukas Rist (también conocido por su seudónimo Glaslos) en el año 2009 a través de la iniciativa Google Summer of Code. Lukas Rist es miembro de la organización internacional de investigación Honeynet Project y también desarrolla otros proyectos de investigación, entre los cuales se destaca Conpot, un honeypot de Sistemas de Control Industrial (ICS por sus siglas en inglés).
Requisitos de hardware/software
Los requerimientos para la instalación de Glastopf son:
Glastopf
Es un honeypot de baja interacción para aplicaciones web capaz de emular miles de vulnerabilidades web con el objetivo de recopilar la información de tales ataques, como inserción remota de archivos (RFI), inyección SQL, inserción local de archivos, entre otros.
Glastopf está desarrollado en Python bajo una licencia GPL y actualmente se encuentra en la versión 3.1.2, también conocida como Glaspot v3.
"In principle, our honeypot works like a normal web server. Someone sends a request to a web server, the request gets processed, maybe something gets stored into a database and the server returns a response. If the request wasn't correct, this could be an error page.
Now we want to simulate this behavior in our honeypot: The attacker sends a malicious request, the honeypot processes the request and maybe writes to a database or the file system, and replies to the attacker, as shown in figure 1. But our goal is to provide a proper reply for every request from the attacker - to convince him that we are vulnerable."[3]
"El principio del honeypot es trabajar como un servidor web normal, en el momento en que un cliente envíe una petición al servidor web, ésta será procesada y el servidor regresará una respuesta. Si la petición no es correcta se mostrará una página de error.
Ahora nosotros tratamos de simular este comportamiento en nuestro honeypot: el atacante envía una petición maliciosa, el honeypot procesa la petición, puede escribir en la base de datos o en un archivo del sistema y responder al atacante tal como se muestra en la imagen 1. Nuestra meta es dar la respuesta apropiada a todas las peticiones del atacante para convencerlo de que es vulnerable."

Imagen 1. Panorama general de funcionalidad. Lukas Rist (Traducción de UNAM-CERT)
La siguiente tabla muestra de forma general las herramientas que utiliza Glastopf:
Nombre
|
Descripción
|
BFR (Better Function Replacer based on APD)
|
APD es un completo depurador/perfilador que se carga como una extensión de Zend y cuyo objetivo es ser análogo a gprof del Lenguaje C o a Devel::DProf de Perl.
|
hpfeeds
|
Es un protocolo ligero de suscripción/publicación de datos compartidos. Existe en otros lenguajes de programación a parte de Python como Go, Ruby, C++, etcétera.
|
Pylibinjection
|
Es una biblioteca envolvente en Python de la biblioteca libinjection escrita en C que sirve para analizar el lenguaje SQL y detectar ataques de inyección SQL.
|
distribute
|
Es un paquete de Python y una capa de compatibilidad que se instala con Setuptools. Este último es una biblioteca estable diseñada para facilitar el empaquetado de proyectos de Python.
|
MySQL
|
Sistema de gestión de Base de Datos relacional.
|
Glastopf
|
Honeypot de baja interacción de aplicaciones web desarrollado en Python.
|
Implementación
Es posible instalar Glastopf en diversos sistemas operativos como Debian, Raspbian, OpenBSD, Ubuntu, OS X y otros. Para este caso se utilizará Debian 8.1 - Jessie[4] y se deberán configurar los repositorios[5] para instalar las dependencias que el honeypot requiere.
Repositorios
A continuación te muestro la configuración y actualización de los repositorios en Debian Jessie.
Lista de repositorios
Primero edita el archivo sources.list ubicado en /etc/apt.

Actualización de repositorios
Ejecuta el comando apt-get update para resincronizar los archivos de índice de paquetes.

Imagen 3. Actualización de repositorios
Paquetes
Con el comando apt-get install realiza la instalación de los paquetes que necesita Glastopf.

Imagen 4. Instalación de paquetes de Glastopf
Durante la instalación MySQL solicita ingresar la contraseña del usuario root (dos veces, como confirmación).

Imagen 5. Contraseña al usuario root de MySQL

Imagen 6. Confirmar contraseña de MySQL
Con la siguiente instrucción instala y actualiza los paquetes de Python que Glastopf requiere.

Imagen 7. Instalación y actualización de paquetes de Python
BFR
Ahora continúa con la instalación y configuración de BFR.

Imagen 8. Instalación de BFR
Al terminar la instalación se muestra la ruta donde se instaló BFR.

Imagen 9. Ruta de instalación de BFR
Verifica la creación del archivo para agregar la extensión.

Imagen 10. Verificación del archivo de BFR
Ahora agrega la directiva zend_extension en el archivo de configuración de PHP ubicado en /etc/php5/apache2/.

Imagen 11. Configuración de la extensión BFR
Pylibinjection
Continúa con la instalación de Pylibinjection, que servirá para analizar el lenguaje SQL y los ataques de inyección SQL que recibirá el honeypot.

Imagen 12. Instalación de Pylibinjection
distribute
Procede con la instalación de distribute.

Imagen 13. Instalación de distribute
hpfeeds
Instala hpfeeds.

Imagen 14. Instalación de hpfeeds
MySQL
Ahora crea la base de datos y el usuario para que Glastopf pueda almacenar información.

Imagen 15. Ingresar a MySQL

Imagen 16. Creación de usuario y base de datos para Glastopf
Glastopf
A continuación instala Glastopf y posteriormente configúralo para habilitar el envío de información utilizando hpfeeds y almacenar información en la base datos.
Instalación

Imagen 17. Instalación de Glastopf
Configuración e inicio
Configura Glastopf e inicia el honeypot con la instrucción glastopf-runner.

Imagen 18. Configuración e inicio de Glastopf
Cuando inicia Glastopf, se observa una salida similar a la siguiente:

Imagen 19. Glastopf
Verificación
En este punto se terminó la instalación y configuración, y se inició Glastopf en Debian 8.1. Ahora se revisarán algunos detalles, además de mostrar los datos capturados por el honeypot en la base de datos.
Al iniciar el honeypot, éste se conectará a la base de datos que creada en los pasos anteriores y creará automáticamente el esquema de la base de datos que utilizará Glatopf, así podrás observar las tablas.
mysql -D glastopf -u glastopfuser –p
show tables;

Imagen 20. Tablas de la base de datos de Glastopf
Después de iniciar Glastopf e ingresar la dirección IP del equipo donde se instaló el honeypot en un navegador web, se pueden observar las páginas web que Glastopf ofrece a los atacantes.


Imagen 21. Páginas web de Glastopf
Consulta de datos
Finalmente realiza una consulta a la base de datos glatopf para mostrar los registros que está almacenando el honeypot en la tabla events.

Imagen 22. Consulta de datos
En esta primera parte del artículo proporcioné una forma de implementar un honeypot de baja interacción de aplicaciones web capaz de almacenar los datos capturados para su posterior análisis, de esta forma se facilita información valiosa para poder implantar medidas de seguridad y robustecer nuestros sistemas web. En la segunda parte, se mostrarán los diferentes tipos de ataques que Glastopf puede capturar.
Si quieres saber más consulta:
- Sitio oficial del honeypot Glastopf
- Repositorio Github de Glastopf
- Ciber Fast track. Reporte final del honeypot Gastopf
- Know Your Tools para Glastopf
- Proyecto Honeynet
- Proyecto Honeynet en la UNAM
- Glastopf: Honeypot de aplicaciones web – I (video)
[1] Instalar Debian 8.1: https://www.debian.org/releases/stable/debian-installer/
[2] Glastopf: https://github.com/glastopf/glastopf.git
https://github.com/glastopf/glastopf/blob/master/requirements.txt
[3] Lukas Rist. (4 de noviembre de 2010). "Know Your Tools: Glastopf". Obtenido de The Honeynet Project, https://honeynet.org/sites/default/files/files/KYT-Glastopf-Final_v1.pdf
[4] Debian Jessie, guía de instalación: https://www.debian.org/releases/stable/installmanual
[5] SourcesList: https://wiki.debian.org/SourcesList