Академический Документы
Профессиональный Документы
Культура Документы
Actividades
Trabajo: Seguridad en AJAX
Descripción de la actividad
Pautas de elaboración
Esta actividad sobre seguridad en aplicaciones Ajax abarca los problemas de seguridad
que tienen este tipo de aplicaciones, que caen en la categoría denominada rich internet
applications y en las posibles soluciones a los mismos. Hay que consultar cuantas
fuentes relativas al tema se considere y sintetizar la información relevante sin limitarse
a copiar el contenido de alguna de ellas.
Criterios de valoración
INICIO DE LA TAREA
Para algunos usuarios de la web 2.0 la seguridad es un tema irrelevante, esta opinión se
convierte en algo que para otros usuarios es una ventaja aprovechándose de los mismos
al usar los blogs para insertar un código HTML malicioso, archivos con virus o gusanos
por el solo hecho de no dar la importancia y prestar atención a los cuidados mínimos a
una de las tantas ventanas que tiene el ciberespacio de cara a nuestra información.
Normalmente, AJAX se define como una técnica para el desarrollo de páginas (sitios)
web que implementan aplicaciones interactivas. No obstante, analicemos un poco cada
una de las palabras que la forman:
Es decir, que podemos refinar un poco nuestra definición indicando que AJAX es una
técnica que permite, mediante programas escritos en Javascript, que un servidor y un
navegador intercambien información, posiblemente en XML, de forma asíncrona.
¿Para qué sirve AJAX?: permite que una página web que ya ha sido cargada solicite
nueva información al servidor. Por lo cual cuando se utiliza AJAX, ¿Cuál es la
diferencia cuando usamos AJAX? La diferencia es que con AJAX no es necesario
recargar toda la página web, como ocurre cuando pinchamos en un enlace o cuando
pulsamos el botón submit de un formulario. Con AJAX es posible realizar una conexión
a un servidor desde dentro de una página web usando un programa Javascript. Dicho
servidor enviará una respuesta; esta respuesta se almacenará en una variable del
programa Javascript y, una vez almacenada en la variable, podremos hacer con ella lo
que deseemos.
Una ves que ejecutemos el archivo que creamos nos daremos cuenta que nos saldrá un
mensaje de Hola Mundo que tenemos en el fichero txt que creamos. Ahora vamos a
desglosar un poco el código que ingresamos
El objeto, al que hemos llamado conexion actúa como un “mini-navegador” dentro del
cliente en el que se ha cargado nuestra página web.
Seguidamente, y para poder obtener información del servidor, abrimos una conexión y
le enviamos los datos necesarios para completarla. En este caso, la conexión es de tipo
GET, intenta recuperar un fichero llamado hola_mundo.txt y no necesita muchos más
datos, por lo que enviamos la petición sin datos adicionales.
Para hablar de la seguridad en AJAX se debe traer en mención de lo que está compuesto
ya que su seguridad dependerá de los componentes que lo conforman. La probabilidad y
exposición de ataque en el lado del cliente es grande, la revelación de la lógica de la
aplicación hace que los posibles atacantes conozcan parte del código ya que reside en
esta parte permitiéndoles estudiar e inferir de cierto modo la lógica de esta. El gran
número de líneas de código y su dificultad para revisarlas hace que la revisión de las
aplicaciones multiplique su dificultad aumentando la vulnerabilidad de la aplicación, así
como también su auditoria, sin embargo y sumado a lo anteriormente mencionado
tenemos unas características de seguridad que no han sido solventadas en su totalidad,
tales como:
Entre las amenazas más notables se tienen el XSS el cual mediante el DOM se puede
alterar el contenido de un sitio, modificar la dirección donde los datos o formularios de
usuarios son enviados, robo de cookies y credenciales.
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.
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
está evaluando un carrito de compras y podría también necesitar ser capaz de figurarse
donde detectar lo exitoso de la transacción.
Todos los típicos ataques funcionan contra la interfaz de Ajax. Pero esto se hace más
fácil por la gran cantidad de código en el lado del cliente quien realiza la lógica del
negocio, y se debe entender el flujo de la aplicación. Esto hace más claro el flujo de la
aplicación para un atacante con experiencia. El atacante puede incluso acceder a la
lógica de la aplicación de una manera inesperada por ésta. Un ejemplo podría ser un
carrito de compras el cual permite a un atacante utilizar la autorización de crédito antes
de añadir artículos hacia el carrito. Potencialmente esto podría permitir comprar
artículos sin una autorización o sin dinero. Funcionan los típicos ataques de inyección
SQL, XSS, y las aplicaciones Ajax también está diseñadas para CSRF, pues la
funcionalidad es llamada directamente por el código del cliente.
• Mapeo en Ajax
Mapear una aplicación Ajax es más difícil en la mayoría de los casos. Esto
porque mucha de la funcionalidad de la aplicación es llamada mediante código
del cliente o es dinámicamente generada. Las herramientas utilizadas
mayormente no están diseñadas para interpretar y evaluar este código. Esto de
hecho causa el profesional en pruebas de penetración deba manualmente recorrer
el sitio, para asegurarse todas las funcionalidades del objetivo se añadieron al
mapa del sitio sobre el cual se trabaja.
• Descubrimiento en Ajax
• Explotación en Ajax
Envenenamiento XML
El envenenamiento XML es otro de los problemas de seguridad a los que nos podemos
enfrentar. El servidor debe validar todos los datos que recibe, ya que un posible XML
malformado puede causar un crash en el servidor provocando una denegación de
servicio.
La ejecución de código malicioso también debemos tenerlo en cuenta. Las llamadas que
se realizan con Ajax ejecutan en backgraund sin ninguna interacción del usuario por lo
que el usuario no es consciente de lo que se está realizando en un sitio concreto,
aprovechando la web este hecho para realizar un robo de cookies y aun peor de manera
silenciosa y poco sospechosa.
No establecer conexiones con sitios diferentes del nombre de dominio del que se ha
obtenido el script de JavaScript, protegiéndolo ante problemas de seguridad y esta
medida se conoce como CORS, Cross-Origin Resource Sharing.
Conclusiones
• Uno de los peligros más grandes que hoy en día existe es el robo de la
información de esta manera los ciberdelincuentes logran capturar datos que
sirvan para realizar una estafa electrónica.
Bibliografía o Webgrafía
http://www.infosecwriters.com/text_resources/pdf/SShah_Web20.pdf
http://zaproxy.blogspot.no/
https://www.owasp.org/index.php/OWASP_Mutillidae_2_Project
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
http://www.forosdelweb.com/f13/ajax-no-funciona-chrome-1065493/
https://www.digitallearning.es/blog/que-es-ajax/