Detectar Balanceador de Carga HTTP con halberd

  • Posted on: 3 April 2014
  • By: ReYDeS

Halberd permite descubrir balanceadores de carga HTTP. Es útil para auditorias de seguridad a aplicaciones web y para evaluar la configuración del balanceador de carga.

¿Qué es un Balanceo de Carga?

El Balanceo de Carga es un método para distribuir cargas de trabajo entre diversos recursos de cómputo, como computadoras, arreglos de computadoras, enlaces de red, unidades de procesamiento central y unidades de disco. El Balanceo de carga ayuda a optimizar el uso de recursos, maximizando el rendimiento, minimizando el tiempo de respuesta, y evita la sobrecarga en alguno de los recursos. El utilizar diversos componentes con balanceo de carga en lugar de un único componente puede incrementar la confiabilidad a través de redundancia.

Conceptos

Halberd opera mediante las siguientes etapas.

1. Inicialmente, envía varias solicitudes al servidor objetivo y registra sus respuesta. Esto es llamado la fase de muestreo. El tiempo invertido en esta etapa y la cantidad de solicitudes HTTP a ser enviadas puede ser especificada utilizando las opciones “--time” y “parallelism” en la linea de comando.

2. Después de que la fase de análisis finaliza, ya sea de manera normal o debido a una interrupción del usuario presionando las teclas “Control + C”, el programa procesa las réplicas buscando señales de balanceo de carga. Esto es llamado la fase de análisis.

3. Finalmente, halberd escribe un reporte de sus hallazgos a la pantalla (o a un archivo si se usa la opción “--out”).

La siguiente es una lista de técnicas de detección actualmente implementados por halberd

  • Comparación de Fecha
  • Nombre del campo de cabecera MIME, valores y su orden
  • Generar altas cantidades de tráfico
  • Utilizar diferentes URLs
  • Detectar cache en el lado del servidor
  • Obtener las direcciones IP públicas

Para realizar la instalación de halberd se requiere descargar los archivos pertinentes, y tener instalado python.

# git clone https://github.com/jmbr/halberd.git

Luego de lo cual se debe ejecutar el script de instalación.

# python setup.py install

Se visualiza la ayuda de halberd.

# halberd -h

Para la primera práctica se utiliza la opción “-v”, la cual activa la verbosidad. De esta manera se explica lo que halberd está realizando.

La opción “-o” permite definir un archivo en el cual escribirá el reporte con los resultados.

En la siguiente práctica realizada se expone un escenario particular, en el cual los controles de seguridad implementados en el objetivo de evaluación, no permiten que halberd complete su funcionamiento.

En las prácticas realizadas no ha sido factible detectar un balanceador de carga en alguno de los objetivos de evaluación. En caso se lograse su detección, la siguiente acción es analizar cuidadosamente los resultados obtenidos para planificar adecuadamente las siguientes etapas de la Prueba de Penetración.

Fuentes:

https://github.com/jmbr/halberd
http://en.wikipedia.org/wiki/Load_balancing_%28computing%29

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense