HoneyProxy: Analizando tráfico Web

Dando una vuelta por el portal de The Honeynet Project me encontré con la noticia de una nueva versión de HoneyProxy, la 1.1. Vamos a tratar de hacer una pequeña introducción a esta herramienta y ver qué posibilidades nos ofrece.

La primera fase, la de instalación, es bastante rápida. Nos basaremos en que esta se realiza en un sistema Debian, pero no difiere mucho de otros sistemas Unix o incluso de la instalación en Windows. Basta con descargar el fichero.zip desde la Web del proyecto e instalar algunas dependencias.

La aplicación está desarrollada en Python por lo que necesitaremos instalar los paquetes python-pip y python-twisted. Seguidamente instalaremos los paquetes que necesita Python mediante pip. La instrucción sería la siguiente:

#pip install pyOpenSSL pyasn1 Twisted Autobahn

Una vez solventadas las dependencias, descomprimimos el archivo.zip y arrancamos la aplicación ejecutando el fichero honeyproxy.py

Como vemos en la imagen, una de las nuevas mejoras en esta versión de HoneyProxy es que levanta un pequeño servidor Web desde el cual es muy sencillo gestionarlo visualmente. Éste genera una URL de acceso única para la presente sesión, aunque desde el propio servidor puede accederse a través de http://localhost:8081.

Como vemos, el proxy que debe configurarse en los clientes Web o en el sistema que gestione dichas conexiones, ya sean HTTP como HTTPS, será la IP del servidor y uno de los puertos usados típicamente para Proxies, el 8080/TCP.

Un primer vistazo a la interfaz Web nos muestra un menú con 3 opciones.

La primera, Show Traffic, es una consola donde se puede observar de forma simple, dinámica y clasificados según el tipo de contenido, cada uno de los elementos que van siendo solicitados por los clientes Web y gestionados por HoneyProxy.

Pero si debemos destacar algo de esta sección, sin duda es la sencillez y la potencia de los filtros y marcadores por colores que pueden ser usados para el análisis del tráfico capturado. En ella destaca la posibilidad de aplicar tags como =<filtro> para realizar búsquedas sensibles a Mayúsculas (case-sensitive) o !<filtro> para obtener todos los resultados que no coincidan con una condición concreta. Finalmente, señalar la posibilidad de uso de nuestras grandes amigas: las Expresiones Regulares.

La siguiente sección es la que abarca los Informes o Reports. En ella es posible obtener, en diferentes formatos, información sobre la navegación de los usuarios de nuestro HoneyProxy.

Existen varios reportes interesantes como pagetree, con el que es posible generar una lista de los sitios visitados en estructura de árbol, o como post_extract, que muestra las solicitudes tipo POST que normalmente son usadas para transmitir, entre otros datos importantes, las credenciales de acceso a aplicaciones Web.

Pero si alguno destaca por encima del resto es el visual traffic_per_host. Como su nombre indica, desglosa el tráfico por cada servidor o host visitado, pero lo hace en forma de “gráfica de quesitos”, lo que permite un rápido primer análisis de los portales Web más consultados, así como su porcentaje respecto al total.

Destacar la posibilidad que ofrece la herramienta para usuarios avanzados donde se permite la interacción directa con el código fuente que genera cada uno de los tipos de reportes, tal y como se puede observar a la derecha de la imagen.

Finalmente, tenemos la opción Show Dumped Files, donde se muestra, en forma de lista de links accesibles, todos los ficheros solicitados por los usuarios.

Como se indica en la propia aplicación, es posible acceder a todos estos ficheros a través del directorio <ruta_instalación_honeyproxy>/dump/sites y poder realizar así cualquier procesamiento sobre ellos.

Un último punto interesante a destacar es la posibilidad de realizar todos estos análisis sobre tráfico de conexiones que hacen uso de SSL (HTTPS). HoneyProxy ofrece a los clientes Web su propio certificado para iniciar la relación de confianza entre ambos sistemas.

Como pequeña muestra, un acceso mediante HTTPS al correo de Google, GMail, nos muestra la típica alerta de Certificado No Válido (o no validado), dependiendo del navegador usado.

Si seleccionamos la opción de ver el certificado (en lugar de confirmar la excepción de seguridad directamente como hacen la mayoría de los usuarios), podremos observar que el parámetro CN para el cual el certificado es emitido coincide con la URL seleccionada, pero que el parámetro CN, el cual identifica la compañía que emite el certificado, no es Google, sino mitmproxy, nuestro HoneyProxy.

Sin embargo, como todos sabemos, esta comprobación es realizada por un número mínimo de usuarios. Sin embargo, con la presente Excepción de Seguridad, estamos dando total acceso a HoneyProxy sobre todas nuestras comunicaciones que, erróneamente, creeremos cifradas.

Estas son solo algunas de las opciones presentes en HoneyProxy, pero hay muchas más. Si estáis interesados en profundizar en otras de las posibilidades que nos ofrece, podéis consultar su Wiki y contarnos otras prestaciones que hayáis descubierto.

Nota: HoneyProxy está muy ligado al proyecto mitmproxy, por lo que es interesante que se consulte información sobre dicho proyecto si se pretende hacer un uso profundo de HoneyProxy.

Comments

  1. Buenas,

    Buen artículo, un servidor proxy con mucha información estadística y fácil de implementar. Seguiremos este proyecto ya que es interesante encontrar herramientas de este tipo en open source.

    Coincido en cuanto a los certificados…la gente tiene una facilidad inquietante para no comprobarlos y dar de alta excepciones :)

  2. ¿Y no se podría modificar el código fuente para que el CN y la organización coincidiesen con el servicio al que se queire hacer mitm? Así un atacante sembraría más dudas a la hora de verificar el certificado.