Seguridad en Ajax

Actividades Trabajo: Seguridad en AJAX Descripción de la actividad Realización de un trabajo para recopilar los problema

Views 402 Downloads 6 File size 266KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Actividades Trabajo: Seguridad en AJAX Descripción de la actividad Realización de un trabajo para recopilar los problemas de seguridad que presenta la tecnología WEB 2.0 AJAX y las posibles soluciones a los mismos. 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 Se valorará (para todas las actividades): Contenidos. Para la realización de los trabajos se deben consultar varias fuentes para después contrastarlas, sintetizarlas y generar un trabajo y opinión personalizados aportando ejemplos gráficos. Estructura del documento. Debe ser planificada previamente y tener un apartado de conclusiones y de referencias al final. Presentación acorde con la categoría del curso. Referencias. Se deben especificar en un apartado al final todas las fuentes consultadas, URL’s de internet, papers, artículos o libros especificando todos los datos de la publicación disponibles. Recalcar la obligatoriedad de la especificación de las referencias consultadas. Extensión máxima: 10-15 páginas (fuente Georgia 11 e interlineado 1,5). ¿Qué es Ajax? TEMA 1 – Actividades

© Universidad Internacional de La Rioja (UNIR)

Asynchronous

Las peticiones pueden ser síncronas o asíncronas, las asíncronas engañan más por que el cliente sigue trabajando con la aplicación mientras se resuelve la petición. JavaScript And

Lenguaje que controla las acciones en el cliente XML

Suele o puede ser el contenido de los mensajes de solicitud y respuesta. No es ninguna tecnología, ni lenguaje de programación Es una técnica de desarrollo web que combina varias tecnologías de forma conjunta como XML, JavaScript y

objetos de cliente (Microsoft.XMLHTTP o XMLHttpRequest) y por lo cual permite una navegación más ágil y rápida, más dinámica. ¿Cómo funciona Ajax?

En una aplicación web tradicional, las solicitudes HTTP, que se inician mediante la interacción del usuario con la interfaz web, se realizan a un servidor TEMA 1 – Actividades

© Universidad Internacional de La Rioja (UNIR)

web. El servidor web procesa la solicitud y devuelve una página HTML al cliente. Durante el transporte HTTP, el usuario no puede interactuar con la aplicación web.

En una aplicación web Ajax, no se interrumpe el usuario en interacciones con la aplicación web. El motor de Ajax o el intérprete JavaScript permite que el usuario interactúe con la aplicación web independientemente del transporte HTTP procedente del servidor o que tenga el servidor como destino representando la interfaz y gestionando las comunicaciones con el servidor en nombre del usuario.

Ventajas del uso de Ajax 1. Mejor experiencia de usuario: Ajax permite que las páginas se modifiquen sin tener que volver a cargarse, dándole al usuario la sensación de que los cambios se producen instantáneamente. 2. Optimización de recursos: Al no recargarse la página se reduce el tiempo implicado en cada transacción. Por lo que se reduce el consumo del ancho de banda. 3. Alta compatibilidad: Ajax es soportado por casi todas las plataformas We b.

Limitaciones de Ajax

TEMA 1 – Actividades

© Universidad Internacional de La Rioja (UNIR)

Aunque Ajax es una técnica de desarrollo de aplicaciones web que se ha diseñado para que las páginas web sean más receptivas e interactivas con un usuario, Ajax presenta algunas limitaciones a tener en cuenta antes de desarrollar una aplicación basada en Ajax. Las limitaciones siguientes representan algunas de las desventajas principales: 1. Problemas de SEO: Los buscadores tiene n dificultades al analizar el código escrito en JavaScript. 2. Accesibilidad : Las aplicaciones con Ajax suelen requerir un mayor tiempo de desarrollo. 3. Seguridad y privacidad de usuario - No se resuelven todos los

puntos de vista. Es necesario tener en cuenta los problemas relacionados con la seguridad y la privacidad de usuario a la hora de desarrollar una aplicación Ajax. 4. Los motores de búsqueda: La información en la página dinámica no se almacena en los registros del buscador. Exceptuando Google, que desde el 2011 sí indexa contenido Ajax y JavaScript. 5. El Objeto XMLHttpRequest no está estandarizado y no está en navegadores antiguos. 6. Marcador y navegación - Puesto que Ajax se utiliza para cargar bits de contenido de forma asíncrona en una página existente, es posible que parte de la información de la página no corresponda a una página recién cargada. Puede que el historial del navegador y los marcadores no se comporten de forma correcta porque el URL no se ha modificado, aunque ciertas partes de la página se hayan cambiado. Un grave problema utilizando AJAX entre nombres de dominios es lo que se conoce como Same Origin Policy. Con este problema de seguridad un script obtenido en un origen puede cargar o modificar propiedades del documento desde otro origen no igual al primero.

TEMA 1 – Actividades

© Universidad Internacional de La Rioja (UNIR)

¿Qué es la Web 2.0? Se refiere a la transición percibida en Internet desde las webs tradicionales a aplicaciones web destinadas a usuarios. Web 2.0 no es un cambio tecnológico, sino un cambio en la filosofía con la que los usuarios y empresas se plantean Internet.  Los usuarios de Internet quieren participar (blogs, wikis…), quieren poder elegir, estar informados de forma rápida y eficaz de lo que les interesa y eligen, localizar la información más fiable, y poder colaborar o participar sin tener que rehacer (servicios web) y además disfrutar de una buen interfaz de cliente. Aquí va la lista de vectores de ataque en aplicaciones Web 2.0 y una breve descripción de cada uno de ellos: 

Cross-site scripting en AJAX: Las vulnerabilidades basadas en XSS son ya unas viejas conocidas de todos los desarrolladores web, pero sin duda el amplio uso de JavaScript que hace AJAX hace que estas tomen una nueva dimensión.



Envenenamiento XML: Muchas aplicaciones Web 2.0 mueven datos entre el servidor y el cliente en forma de XML. Es relativamente fácil crear XML malformado, que unido a un parseo poco cuidadoso del mismo en el servidor, puede degenerar en una denegación de servicio. Debemos validar en cualquier caso todo XML recibido en el servidor.



Ejecución maliciosa de código AJAX: Las llamadas AJAX se ejecutan en segundo plano sin la interacción directa del usuario. Esto hace que el usuario no siempre sea consciente de las actividades que está realizando un determinada

TEMA 1 – Actividades

© Universidad Internacional de La Rioja (UNIR)

web, lo que una web maliciosa puede aprovechar para, por ejemplo, hacerse con cookies de autentificación. 

Injección RSS / Atom: Esta técnica consiste en inyectar código JavaScript en el RSS o Atom para que el navegador lo ejecute. Casi todos los navegadores son capaces de mostrar feeds RSS o Atom. Si nuestra aplicación produce un RSS o un Atom deberíamos validar su contenido antes de enviarlo al cliente.



Enumeración y escaneo WSDL: Básicamente los posibles atacantes pueden encontrar un motón de información sobre simplemente viendo la información que nosotros publicamos sobre nuestros servicios web. Debemos proporcionar el acceso más limitado posible a nuestros WSDLs.



Validación (únicamente) de cliente en rutinas AJAX: La validación en cliente en las aplicaciones Web 2.0 es muy rica, esto ha hecho que algunos desarrolladores no hagan estas mismas validaciones en el servidor. Esto es un error porque es fácil crear una petición y enviarla al servidor saltándose las validaciones de cliente. Por ello las validaciones de cliente siempre deben ser respaldadas en el servidor.



Cuestiones relacionadas con el enrutador de servicios web: WSRouting permite enviar un mensaje SOAP debidamente encriptado por un camino de servidores, pero si un solo servidor de ese camino se ve comprometido, nuestro mensaje SOAP puede ser comprometido.



Manipulación de parámetros con SOAP: Es posible crear mensajes SOAP malformados que intenten realizar inyecciones clásica tipo SQL, XPATH, LDAP o de comandos.



Inyección XPATH en mensajes SOAP: Es un proceso similar a las inyecciones de SQL sobre bases de datos, solo que utilizando XPATH como lenguaje de consulta y documentos XML como destino del ataque.



Manipulación binaria del cliente rico ligero: La aplicaciones utilizan componentes ActiveX, Flash o Applets, que ya han demostrado históricamente que son caldo de cultivo para virus y otros tipos de malware.

Recomendaciones de protección Ajax 

Ser cuidadoso en las actividades que se deben desempeñar del lado del cliente y



del lado del Servidor. Mantener los datos separados del código, ser cuidadoso con los datos que podrían incluir una entrada del usuario. En este caso procure validar todos los datos antes de ejecutarlos, aún en aquellos datos que se ejecutan del lado del cliente.

TEMA 1 – Actividades

© Universidad Internacional de La Rioja (UNIR)



Tener cuidado en la codificación, ya que Las decisiones que se realicen pueden incrementar drásticamente el tamaño de la superficie de ataque. Asegurarse de dónde se ejecuta el código, qué tipo de formato de datos y protocolos que están involucrados y también que analizadores e intérpretes se utilizan. Y lo más importante, asegure que los datos y el código se mantengan separados.

Casos de vulnerabilidades en Ajax 

Vulnerabilidad de Seguridad UNAM-CERT-2005-343. Vulnerabilidades de ejecución de comandos en Ajax Toolkit de CPAINT. Descripción: Thor Larholm reportarón varias vulnerabilidades en CPAINT, que pueden explotarse por personas maliciosas para realizar ataques de Cross-site Scripting o comprometer un sistema vulnerable. Ataque: Cross-Site Scripting. Solución: Actualizar a la versión 1.3-SP2.



Caso Equifax Descripción: los hackers expusieran los números de seguridad social, direcciones postales e incluso números de los carnés de conducir de millones de personas. Esto demuestra que no cumplir con medidas básicas de seguridad como parchear el software que emplea la empresa puede tener consecuencias colosales. Ataque: Cross-Site Scripting. Solución: Siempre hay que mantener actualizadas todas las medidas de seguridad para evitar ataques en los sistemas.

Referencias  

Web 2.0 -http://www.ite.educacion.es/formacion/materiales/155/cd/modulo_1_Iniciac ionblog/concepto_de_web_20.html Qué es Ajax- https://www.tutorialspoint.com/ajax/what_is_ajax.html

TEMA 1 – Actividades

© Universidad Internacional de La Rioja (UNIR)

   

Seguridad de las web 2.0 -https://es.slideshare.net/danielalejandro04/seguridad-de-las-web-20 Caso de Vulnerabilidades -https://www.cert.org.mx/historico/vulnerabilidadesDB/index.htmlvulne=4695 Caso de vulnerabilidad equifax -https://www.pandasecurity.com/spain/mediacenter/seguridad/equifax-ypeligro-de-las-web-apps/ Seguridad Ajax- https://uniwebsidad.com/libros/ajax/capitulo-7/seguridad? from=librosweb

TEMA 1 – Actividades

© Universidad Internacional de La Rioja (UNIR)