REVISTA .SEGURIDAD | 1 251 478, 1 251 477 | REVISTA BIMESTRAL

Glastopf: Honeypot de aplicaciones web – I

Honeypot Glastopf

 

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:

  • Sistema Operativo Linux Debian 8.1 – Jessie [1]
  • Glastopf [2]
  • Conexión a Internet

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."

 

Funcionalidad del honeypot Glastopf
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.
Tabla 1. Descripción de herramientas
 

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.

 

Imagen 2. Archivo sources.list - Glastopf
Imagen 2. Archivo sources.list
 
Actualización de repositorios

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

 

Imagen 3. Actualización de repositorios - Glastopf
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
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 5. Contraseña al usuario root de MySQL
 
Imagen 6. Confirmar contraseña de MySQL - glastopf
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 - Glastopf
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 - Glastopf
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 - Glastopf
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 - Glastopf
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
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 - Glastopf
Imagen 12. Instalación de Pylibinjection
 

distribute

Procede con la instalación de distribute.

 

Imagen 13. Instalación de distribute - Glastopf
Imagen 13. Instalación de distribute
 

hpfeeds

Instala hpfeeds.

 

Imagen 14. Instalación de 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 15. Ingresar a MySQL
 
Imagen 16. Creación de usuario y base de datos para Glastopf
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
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
Imagen 18. Configuración e inicio de Glastopf
 

Cuando inicia Glastopf, se observa una salida similar a la siguiente:

 

Imagen 19. Glastopf
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.

1. Ingresar a la base de datos glastopf.
mysql -D glastopf -u glastopfuser –p
2. Mostrar las tablas.
show tables;

 

Imagen 20. Tablas de la base de datos de Glastopf
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.

 

Páginas web del honeypot Glastopf  Páginas web del honeypot Glastopf
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
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:

UNAM

[ CONTACTO ]

Se prohíbe la reproducción total o parcial
de los artículos sin la autorización por escrito de los autores

 

Hecho en México, Universidad Nacional Autónoma de México (UNAM) © Todos los derechos reservados 2017.