Seguridad en AJAX 2429260

Actividades Trabajo: Seguridad en AJAX Realización de un trabajo para recopilar los problemas de seguridad que presenta

Views 118 Downloads 1 File size 16KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Actividades Trabajo: Seguridad en AJAX Realización de un trabajo para recopilar los problemas de seguridad que presenta l a tecnología WEB 2.0 AJAX y las posibles soluciones a los mismos. Extensión máxima de la actividad (10-15 páginas, fuente Georgia 11 e interlineado 1,5) . Esta actividad sobre seguridad en APLICACIONES AJAX abarca los problemas de segu ridad que tienen este tipo de aplicaciones, que caen en la categoría denominada RI CH INTERNET APPLICATIONS y en las posibles soluciones a los mismos. Hay que cons ultar cuantas fuentes relativas al tema se considere y sintetizar la información r elevante sin limitarse a copiar el contenido de alguna de ellas. Asimismo se val orará (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 personaliz ados 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. -EXTENSIÓN el trabajo tiene límite de 10-15 páginas aprox. -REFERENCIAS. Se deben especificar en un apartado al final todas las fuentes con sultadas, URL,s de INTERNET, papers, artículos o libros especificando todos los da tos de la publicación disponibles. Recalcar la obligatoriedad de la especificación de las REFERENCIAS consultadas. ¿Qué es AJAX? Ajax (Asynchronous Javascript and XML) es una tecnología que nos permitirá realizar peticiones al servidor sin necesidad de tener que cargar una página web entera, ta n solo el apartado que nos interese. Este tipo de aplicaciones se ejecutan en el apartado del cliente en un segundo plano y en el navegador. En la anterior imagen podemos observar como es una arquitectura web clásica siendo necesaria la cargar de la página web en su totalidad en caso de querer cargar un mínimo apartado de la misma. Por otro lado tenemos la arquitectura AJAX, que reali zará sincronizaciones asíncronas en función de las necesidades del momento. Para entender bien qué es AJAX, debemos entender primero que no es una tecnología en sí misma, sino un compendio entre 5 ya existentes: HTML/XHTML y CSS: Diseño o maquetación de la web. “Front-end” del cliente para p resentar la información. DOM o Document Object Model : Muestra e interactúa dinámicamente con la inf ormación presentada. A través del DOM, los programas pueden acceder y modificar el c ontenido, estructura y estilo de los documentos HTML y XML. Es una interfaz de p rogramación de aplicaciones para acceder, añadir y cambiar dinámicamente contenido est ructurado en documentos con lenguajes XMLhttpRequest : Interfaz empleada para realizar peticiones (de forma asín crona) HTTP y HTTPs a servidores Web. XML : XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Permite la compatibilidad entre sistemas para compartir la información de una mane ra segura, fiable y fácil definiendo la gramática de lenguajes específicos para estruc turar documentos. También da soporte a bases de datos, siendo útil cuando varias apl icaciones deben comunicarse entre sí o integrar información. JavaScript: Es el nexo de unión entre todas ellas. AJAX es nativo en los navegadores web y es el único RIA framework que puede ser e ncontrado por los diferentes motores de búsqueda. Las principales ventajas que AJAX nos ofrece son; la optimización de recursos y la alta compatibilidad ya que es soportado por casi todas las plataformas web. Est o desemboca en una mejor experiencia del usuario ya que los tiempos de espera se optimizan notablemente. Sin embargo, esta tecnología también ofrece una serie de de sventajas visibles a primera vista como el incremento del tiempo de dedicación en

su implementación debido a su complejidad o el problema del SEO. Problemas de seguridad en AJAX Exposición: AJAX posee la característica de delegar en el cliente cierto gra do de gestión ya que una porción del código se ejecuta en él. Esto conlleva a que cierta lógica de nuestro programa queda expuesta al atacante, con lo que se este podría es tudiar la forma de explotar esta forma de trabajo para llevar a cabo acciones ma liciosas. SQLi o XSS: Debido a la forma de trabajo que tiene AJAX almacenando dato s en la parte del cliente pueden obtenerse cookies, credenciales y hasta se pued e realizar un robo de información en profundidad. XML envenenado: El servidor debe validar todos los datos que recibe, ya que un posible XML mal formado puede causar un problema en el servidor provocand o una denegación de servicio. Código malicioso: Las llamadas que se realizan con AJAX ejecutan en backgr ound sin ninguna interacción del usuario, por lo que el usuario no es consciente d e lo que se está realizando en un sitio concreto, por lo que la web puede aprovech ar este hecho para realizar un robo de cookies. XPATH inyectados en SOAP: Esta es una acción similar a una inyección SQL. El lenguaje utilizado es XPATH y el objetivo del ataque son los documentos XML. DOM y XSS: Puede alterar el contenido de un sitio y modificar la dirección de dónde los datos o formularios de usuarios son enviados. (Ej. Imagen) Same Origin Policy: Este es un grave problema a la hora de utilizar AJAX entre nombres de dominios. Aquí un script obtenido en un origen podría cargar o mod ificar propiedades del documento desde otro origen no igual al primero. (Ej. Ima gen) Validaciones: Algo que hay que tener muy en cuenta son las validaciones de cliente y no realizadas en la parte del servidor. Este hecho es quizá una de la s mayores amenazas a las que se enfrenta AJAX y cualquier tecnología que se encuen tre en el lado del cliente. Toda petición debe ser validada en el lado del servido r, además de en el cliente. Soluciones Sandobox: El código de JavaScript se debe ejecutar mediante el uso de una sandbox , con lo que todo lo malicioso que se intente ejecutar queda aislado y s in acceso a los recursos de interés de la máquina atacada. CORS: Cross-Origin Resource Sharing consiste en no establecer conexiones con sitios diferentes del nombre de dominio del que se ha obtenido el script de JavaScript. De este modo se puede proteger de problemas de seguridad. Accesos: Los ficheros JavaScript que se obtengan desde un sitio en concr eto no deben poder acceder a propiedades de otro sitio. Validación: Todos los campos de entrada han de ser validados adecuadamente tanto en el lado del cliente como en el del servidor. La idea es que ninguna ac ción que se valide en el cliente puede ser manipulada, por ejemplo mediante el uso de un proxy. Controles de seguridad: Como pueden ser autenticación, autorización, e inclu so registro de operaciones o logging, siempre en el lado del servidor. De este m odo se mantiene un seguimiento de qué ha pasado. Métodos: Utilizar métodos POST en vez de métodos GET para no dejar a plena vis ta la información que se pasa como parámetros. Filtrados: Los ataques clásicos como SQLi y XSS también hay que tenerlos en cuenta y se han de buscar para que “otros” no los encuentren, sin olvidar los XSRF, los cuales podrán ser solventados mediante un filtrado correcto o utilización de tok ens correctamente en el caso del XSRF. Información sensible: Nunca se han de almacenar datos sensibles o confiden ciales en el lado del cliente, este hecho haría que obtenerlos por un atacante fue ra algo potencialmente sencillo y crítico. Cifrado de datos: Utilización de métodos de cifrado para transmitir datos se nsibles o confidenciales entre el cliente y el servidor es una buena forma de qu

e, aun habiéndose hecho con nuestra información, el atacante no logre dejarnos expue stos. También podemos usar una VPN. Negociación cliente-servidor: La lógica de negocio debe tener el principio d e mínima exposición y encontrarse siempre en el lado del servidor de modo que quede salvaguardada de posibles malos usos. Peticiones: Toda petición realizada con AJAX y que acceda a recursos prote gidos deberán encontrarse autenticadas controlando así los accesos. Por supuesto, todo esto son conceptos que hay que tener siempre presente en el d esarrollo de software, aplicándolo al desarrollo de software seguro o “S-SDLC”. Webgrafía Manuel Cebrian. (junio 29 2006). Puntos a tener en cuenta cuando uses AJ AX. 23/03/2015, de http://www.maestrosdelweb.com/ Sitio web: http://www.maestros delweb.com/puntosajax/ Seguridad en AJAX. (27 ABRIL, 2014). Seguridad en AJAX. 22/03/2015, de E xpresión Binaria Sitio web: http://www.expresionbinaria.com/seguridad-en-ajax/ Pablo González. (jueves, 17 de abril de 2014). Seguridad en AJAX (Parte I) . 22/03/2015, de flu-project Sitio web: http://www.flu-project.com/2014/04/segur idad-en-ajax-parte-i.html Pablo González. (viernes, 18 de abril de 2014). Seguridad en AJAX (Parte I I). 22/03/2015, de flu-project Sitio web: http://www.flu-project.com/2014/04/seg uridad-en-ajax-parte-ii.html Pablo González. (lunes, 28 de abril de 2014). Seguridad en AJAX (Parte III ). 23/03/2015, de flu-project Sitio web: http://www.flu-project.com/2014/04/segu ridad-en-ajax-parte-iii.html José Manuel Alarcon. (5 abril 2006 07:49). AJAX (IV): Posibles problemas ( I) - Llamadas fuera de nuestro dominio. 23/03/2015, de JASoft.org Sitio web: htt p://www.jasoft.org/Blog/post/PermaLinkaspxguid=4632519c-cccf-4c26-aabc-ec83100.a spx César Krall. (Copyright 2006-2015). ¿Qué es y para qué sirve Ajax? Ventajas e in convenientes. JavaScript asíncrono, XML y JSON. 23/03/2015, de http://www.aprender aprogramar.com/ Sitio web: http://www.aprenderaprogramar.com/index.php?option=co m_content&view=article&id=882:ique-es-y-para-que-sirve-ajax-ventajas-e-inconveni entes-javascript-asincrono-xml-y-json-cu01193e&catid=78:tutorial-basico-programa dor-web-javascript-desde-&Itemid=206 LibrosWeb.es. (© 2015). Capítulo 1. Introducción a AJAX. 23/03/2015, de http:/ /librosweb.es/ Sitio web: http://librosweb.es/libro/ajax/capitulo_1.html Axzel Marin (SiCuTDeUx). (16/02/2010). ¿QUÉ ES AJAX Y PARA QUE SIRVE? (PARTE 1). 23/03/2015, de sicutdeux.wordpress.com Sitio web: https://sicutdeux.wordpre ss.com/2010/02/16/%C2%BFque-es-ajax-y-para-que-sirve-parte-1/ Mariano Dimaggio. (2014/05/22). VENTAJAS Y DESVENTAJAS DE UTILIZAR AJAX. 23/03/2015, de http://www.4rsoluciones.com/ Sitio web: http://www.4rsoluciones. com/ventajas-y-desventajas-de-utilizar-ajax/