Ataques Lógicos contra Ajax

  • Posted on: 26 January 2017
  • By: ReYDeS

Los ataques lógicos aprovechan la naturaleza de lado del cliente de las aplicaciones Ajax. Ajax y la Web 2.0 son una gran cosa para los ataques lógicos. Esto a razón de la lógica del negocio es enviada y ejecutada sobre el lado del cliente.

Un profesional en pruebas de penetración es capaz de recorrer a través de una transacción satisfactoria. Interceptando cada paso del proceso, se puede examinar cada llamada durante el desarrollo del mismo mirando el flujo de la aplicación. Se puede llamar manualmente porciones de la transacción antes de lo esperado por la aplicación, lo cual puede permitir encontrar vulnerabilidades.

Un ejemplo clásico de ataque lógico es el referente al proceso seguido por un carrito de compras. El proceso está constituido de cuatro fases; añadir artículo a carrito, costo total, autorizar tarjeta y pagar.

Debido a la aplicación almacena el estado de cada paso, el profesional en pruebas de penetración podría llamar a la autorización de la tarjeta antes de añadir el artículo. Esto podría causar una autorización para un balance cero. Luego cuando los artículos sean añadidos, el pago podría ser llamado a continuación. La aplicación podría asumir, la autorización fue hecha antes de añadir los artículos y permitiría pagar.

Los ataques lógicos típicamente no se encuentran mediante la utilización de herramientas automáticas. Esto porque las herramientas no están diseñadas para realizar pruebas lógicas, están diseñadas para ejercitar funcionalidad y encontrar fallas existentes dentro de la funcionalidad. Para encontrar fallas lógicas, la herramienta podría necesitar ser capaz de evaluar el éxito del ataque. Por ejemplo; en la falla en el carrito de compras previamente mencionado; la herramienta podría necesitar entender esta evaluando un carrito de compras y podría también necesitar ser capaz de figurarse donde detectar lo exitoso de la transacción.

Mientras esto hace más difícil encontrar las fallas, es típicamente incluso más difícil solucionarlas. Esto porque la lógica de una aplicación es usualmente integral a la arquitectura, y el cambiarla tiene un gran impacto. Debido a esto, como profesionales en pruebas de penetración, se necesita buscar por recomendaciones las cuales puedan minimizar el riesgo de un ataque. Utilizando nuevamente el ejemplo del carrito de compras, una recomendación podría ser implementar un flujo de trabajo el cual valide las ordenes contra totales de pago antes de la entrega.

Fuentes:

http://zaproxy.blogspot.no/
https://www.owasp.org/index.php/OWASP_Mutillidae_2_Project

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


Curso de Informática Forense