sábado, 19 de septiembre de 2015

DOS a nivel aplicación. Sin herramientas hackers XD

Estimados amigos de Inseguros !!!

Vamos a comentar brevemente un concepto no muy habitual en los círculos juanckers, aunque de todos conocidos en la industria de la seguridad.

Todos hemos leído mil historias sobre ataques de denegación de servicio, o distribuidos, los famosos DDOS. Conocemos herramientas para realizar mil perrerías de este tipo, que si syn flood, que sin LOIC, que si ataques de amplificación o reflexión, servidores NTP, etc

Hay un DOS que no se suele hablar mucho, el físico !!! es decir, te vas al servidor que quieres atacar, y le cortas el cable, o cortas el cable de la acometida de la línea telefónica. También puedes pegarle fuego a todo el edificio del CPD, todas estas técnicas son ataques de Denegación de Servicio, ya que vas a conseguir una interrupción en el servicio.


El responsable de este pequeño truco imagino que habrá sido el director comercial. Imaginamos una web normal, de venta de productos. Todos habréis visto la típica opción de "cuantos elementos quieres ver en la ventana?" Muy sencillo, verlos de 8 en 8, de 16 en 16 , o TODOS de golpe. Esto comercialmente está muy bien, es más sencillo para el usuario ver TODOS los productos de un vistazo, y como Internet es mega rápido, no hay problema en que la página cargue un poquito más en cargar los productos...Algo normal. Cuantos productos tiene tu portal web?10? 20? 200? 2000?


Las malas configuraciones "humanas" al final afectan al negocio, en todos los sentidos. El problema aquí no que la web tarde en el cliente, sino que el servidor no sea capaz de gestionar las peticiones de imágenes. En este caso, era un VULGAR apache, sin cache para las imágenes.

  Abro paréntesis: un servidor web procesa mediante procesos y subprocesos, todos los elementos web que renderiza, que muestra. Las imágenes también. En un entorno de producción que precie medio bueno, se suele poner un servidor proxy inverso "delante" del servidor web, con opciones de cache. Esto hace que el contenido estático, que no cambia, como las imágenes, sea servidor por el proxy, dejando al servidor web renderizar lo que realmente necesita, como pueda ser el php. Cierro paréntesis.

Para hacer la prueba veo que la petición que hace el navegador para mostrar TODOS los elementos es tan simple como ?limit=all, por lo que me voy a dos equipos en la nube distintos, para comprobar la velocidad de respuesta del servidor. De esta manera puedo delimitar si están empleado medidas de QOS ( gestionar cuanto ancho de banda le corresponde a cada IP) o cualquier modulo de Apache como mod_evasive.

Para realizar la prueba me basta con la herramienta AB, Apache Benchmark, como ya vimos en este artículo. Simplemente hago una petición normal desde un equipo, y desde otro equipo lanzo 20 peticiones a la vez, pero esta vez con la opción de "TODO". 

Los sistemas de firewall o de networking no detectan nada, porque no estoy haciendo un DOS en base a saturar la red.


La denegación de servicio se produce a nivel aplicación, es la aplicación Apache la que no es capaz de servir más imágenes o documentos a la vez y por ello se produce el DOS.


Como se puede ver en la parte izquierda, una petición normal se sirve rápido, pero cuando a la derecha lanzo las 20 peticiones, vemos como tanto a la izquierda como a la derecha, que se producen time-outs y la web no sirve las páginas.


Un solo ordenador, realizando 20 peticiones ( que las podrías hacer incluso abriendo 20 pestañas a la vez en el navegador, sin herramientas) hemos sido capaces de "fastidiarle" el negocio durante un tiempo.

Es un fallo MUY EXTENDIDO y que no es tanto de "informáticos" o técnico, sino de la lógica del proceso. Se puede resolver de varias maneras, pero la más rápida es QUITAR la opción de que se muestren todos los productos. Poner un servidor proxy-cache también sería una opción muy interesante. Seguro que la configuración de Apache también se podría mejorar...

Espero que te haya gustado el artículo, y que comprendas que la denegación de servicio, el famoso DOS o DDOS se puede realizar de muchas maneras, no solo a base de "músculo" de red, de muchas peticiones.

Otro día buscaremos algún servidor que acepte comodines en el campo búsqueda, que también es divertido.

Como siempre, gracias por leerme !!!