Você está na página 1de 7

Asignatura Datos del alumno Fecha

Seguridad en Apellidos: Gustavo Javier


Aplicaciones Online 29/03/2017
y Bases de Datos Nombre: Barreiro Martillo

Actividades

Trabajo: Seguridad en AJAX

Descripcin de la actividad

Realizacin de un trabajo para recopilar los problemas de seguridad que presenta la


tecnologa WEB 2.0 AJAX y las posibles soluciones a los mismos.

Pautas de elaboracin

Esta actividad sobre seguridad en aplicaciones Ajax abarca los problemas de seguridad
que tienen este tipo de aplicaciones, que caen en la categora 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 informacin relevante sin limitarse
a copiar el contenido de alguna de ellas.

Criterios de valoracin

Se valorar (para todas las actividades):

Contenidos. Para la realizacin de los trabajos se deben consultar varias fuentes


para despus contrastarlas, sintetizarlas y generar un trabajo y opinin
personalizados aportando ejemplos grficos.
Estructura del documento. Debe ser planificada previamente y tener un
apartado de conclusiones y de referencias al final.
Presentacin acorde con la categora del curso.
Referencias. Se deben especificar en un apartado al final todas las fuentes
consultadas, URLs de internet, papers, artculos o libros especificando todos los
datos de la publicacin disponibles. Recalcar la obligatoriedad de la especificacin
de las referencias consultadas.

Extensin mxima: 10-15 pginas (fuente Georgia 11 e interlineado 1,5).

TEMA 1 Actividades Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Gustavo Javier
Aplicaciones Online 29/03/2017
y Bases de Datos Nombre: Barreiro Martillo

Como cualquier otra tcnica o tecnologa que se emplee en un entorno Web, el uso de
AJAX est sujeto a inconvenientes. Con el tiempo uno puede aprender que estos
inconvenientes se suplen cuando el mercado apoya una tecnologa y sta se estandariza
lo suficiente como para que los distintos navegadores no den problemas con ella, ya
sean estos de compatibilidad o de seguridad.

AJAX permite realizar ahora cosas que antes no se podan o necesitaban algn plugins
externo, adems de aumentar la interactividad al poder mantener la conexin con el
servidor de forma sencilla. Por este motivo la industria se ha volcado mucho
ltimamente en desarrollar software con AJAX.

En este trabajo se mencionar los principales problemas de los entornos Web que
utilicen AJAX as como los problemas de desarrollo que supone junto con las
alternativas de soluciones para dichos problemas.

1. PROBLEMAS DE DESARROLLO
1.1. Internet Oscura
Como las pginas generadas por AJAX generan informacin dinmicamente los
robots de Google no encuentran muchas veces nada en la pgina, obteniendo un
ranking deficiente, para evitarlo, deben crearse pginas especiales de recorrido
completo.

1.2. Complejidad Aumentada


Los desarrolladores de la parte cliente de la aplicacin deben entender la parte lgica
del programa suficientemente como para que se combine satisfactoriamente con la
parte servidor. Por tanto, es fcil mezclar lgica de presentacin y lgica de negocio.
Los desarrolladores de pginas Web deben tener habilidad para trabajar con
Javascript.

1.3. Aplicaciones Difciles de Mantener


Javascript es difcil de testear.
No hay unos patrones de diseo con Javascript claros ya que no se ha utilizado
apenas.
La modularidad de Javascript es muy limitada.

TEMA 1 Actividades Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Gustavo Javier
Aplicaciones Online 29/03/2017
y Bases de Datos Nombre: Barreiro Martillo

1.4. Las Herramientas de Desarrollo que Usan AJAX son Inmaduras


Como es ahora cuando se est empezando a emplear el objeto XMLHttpRequest las
herramientas de desarrollo todava estn en fase beta.

1.5. El Objeto XMLHttpRequest No Est Estandarizado


Una futura versin de Internet Explorer podra solucionar esto.

1.6. El Objeto XMLHttpRequest No Est en Navegadores Antiguos


Obliga a las personas que quieran utilizar aplicaciones AJAX a actualizarse, cosa que
no es demasiado grave para cualquier usuario medio.

1.7. Dependencia de la Tecnologa Javascript


Javascript debe estar activado para que las aplicaciones funcionen. Hay pequeas
incompatibilidades entre navegadores lo que obliga a testear el cdigo para asegurar
su correcto funcionamiento. Cualquier persona con algo de experiencia en el uso de
AJAX se da cuenta de todo lo que esto supone, el uso de AJAX para poder crear una
aplicacin exitosa obliga a tener conocimientos de Javascript y del DOM y, durante
su desarrollo y una vez terminada, a testarla en los diferentes navegadores donde se
quiera utilizar y a corregir los problemas.

2. PROBLEMAS DE SEGURIDAD
Cuando se quiere analizar la seguridad de un programa en red se deben tener dos
partes claramente diferenciadas: servidor y cliente/s. El anlisis de seguridad se debe
hacer pensando que el atacante conoce perfectamente todo el funcionamiento del
sistema ya que no se puede confiar en que ayude mantenerlo en secreto; sus mismos
desarrolladores pueden atacarlo.

2.1. Parte del Cliente


En principio todas las aplicaciones Web estn sujetas a los mismos problemas de
seguridad ya que todas se suelen correr sobre el mismo software del servidor al que
le llegan las peticiones de los usuarios no identificados ya que nunca se puede
asegurar realmente de quien hay al otro lado de la lnea, si la aplicacin necesita de
seguridad deber ser el servidor el que la proporcione.

TEMA 1 Actividades Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Gustavo Javier
Aplicaciones Online 29/03/2017
y Bases de Datos Nombre: Barreiro Martillo

2.2. Problemas Antiguos AJAX


El cdigo Javascript es visible al usuario, que perfectamente puede ser un potencial
Hacker, puede buscar la forma de utilizar el cdigo, como est o con las
modificaciones oportunas para explotar las debilidades de la aplicacin.
Solucin errnea: Encriptarlo, si se ejecuta es porque nuestra mquina es capaz
de desencriptarlo con lo cual seguro que es posible la ingeniera inversa.
Solucin correcta: No existe, el cdigo debe ser visible para que se ejecute.

El cdigo Javascript puede ser bajado y evaluado (eval) en el cliente, si fuera cdigo
con malas intenciones el cliente podra hacer poco ante ello.
Solucin 1: Utilizar algn tipo de rea de pruebas para el cdigo antes de lanzarlo
directamente que lo analice, existen ya algunos filtros que evitan la ejecucin de
ciertas funciones o envo de ciertas etiquetas.
Solucin 2: El cdigo Javascript podra estar Firmado digitalmente, sera una
buena solucin futura, pero hoy es solo una idea.

Si se desea que la informacin de las peticiones no sea visible es necesario utilizar un


canal HTTPS.

2.3.Parte del Servidor


Formas de proporcionar seguridad en el lado servidor:
Solo dejar utilizar la aplicacin a los clientes que puedan validarse realmente con
su firma digital.
Utilizar los mecanismos de identificacin de sesin que pueda proporcionarnos el
servidor de forma que podamos validar y autorizar al usuario comprobando sus
privilegios.

2.4. Problemas Agravados Por el Uso de AJAX


El principal problema del uso de AJAX respecto al de una aplicacin Web normal es
que, debido a su naturaleza (hacer peticiones para luego refrescar partes de una
pgina), el desarrollador puede perfectamente desglosar las diferentes partes de la
pgina JSP, incluidas las que necesitan autenticacin y autorizacin, o incluir otros
servicios que necesiten por ejemplo de una base de datos. Al terminar la aplicacin a
un desarrollador no demasiado experto puede quedarle el esquema de la figura 1,
que si bien puede funcionar correctamente es fcilmente atacable ya que tiene una

TEMA 1 Actividades Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Gustavo Javier
Aplicaciones Online 29/03/2017
y Bases de Datos Nombre: Barreiro Martillo

GRAN SUPERFICIE DE IMPACTO (este problema surge al dividir un programa en


mdulos accesibles individualmente ya que tambin se pueden intentar atacar
individualmente buscando un comportamiento incorrecto que genere algn agujero
de seguridad), este es el gran problema de AJAX, pero puede solventarse.

En la figura 1 el cliente tiene acceso directo a todas las partes de la aplicacin, lo que
resulta abominable ya que la validacin no sirve de nada si no se hace antes de
cualquier servicio que lo necesite lo que requiere mucha repeticin de cdigo,
adems al equipo de desarrollo se le puede escapar alguna validacin y como los
servicios se pueden acceder individualmente (en este caso) puede haber algn
agujero de seguridad en alguno. Lo ideal para proporcionar seguridad sera el caso
de la figura 2. Como se puede observar en la figura, el hecho de que el lado servidor
de la aplicacin est diseado de forma segura es la verdadera clave de la seguridad
en las aplicaciones Web ya que todo el cdigo de la parte cliente es visible a ataques
y modificaciones en la memoria del cliente para atacar a la parte servidor.

Figura1: Aplicacin desarrollada con una Seguridad Ineficiente.

TEMA 1 Actividades Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Gustavo Javier
Aplicaciones Online 29/03/2017
y Bases de Datos Nombre: Barreiro Martillo

Figura2: Aplicacin Desarrollada con una Seguridad Correcta.

3. Desarrollo de una Aplicacin Web Segura


Conexin cifrada: La conexin debera estar cifrada desde la pgina principal
para que cuando el usuario mande sus datos personales stos estn codificados,
aunque esto haga gastar ms recursos. Hay que configurarlo en el servidor, por
ejemplo Tomcat.
Sin cookies: Entre otras cosas, gracias a AJAX, al no necesitar cambiar de Web
e ir modificando dinmicamente la actual, se puede dar al usuario un
identificador al comenzar la sesin, apuntarlo en la base de datos y no necesitar
usar ningn cookie sino una variable que contenga el identificador y que se
borrar al cerrar el navegador, de esta manera enviando ese identificador con
cada peticin se identificara al usuario.
Verificacin completa del usuario: Al desarrollar un sitio Web se lo debe
dividir en dos partes claramente diferenciadas: una a la que se puede entrar sin
verificacin y otra en la que ser obligada. Por ejemplo en una aplicacin de
negocio, se puede tener una parte de noticias pblica, donde el usuario adems
pueda ver los productos pero en caso de que quiera realizar una compra el
usuario tenga que introducir su nombre y contrasea que ha dado
anteriormente cuando se registr, dando sus datos de cuenta y dems, aunque
estos se podran especificar ms tarde por si quiere cambiar el domicilio de
envo o cualquier otra informacin personal.
Evitar la insercin de cdigo: El usuario no debera poder introducir
informacin en ningn momento, la pgina debe estar hecha completamente

TEMA 1 Actividades Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Gustavo Javier
Aplicaciones Online 29/03/2017
y Bases de Datos Nombre: Barreiro Martillo

para su cometido, que es realizar las compras a golpe de clic, en caso de dudas
que se hagan por correo-e.
Verificacin completa de datos: Cuando el usuario decida pagar por su
carrito de la compra, se deber comparar toda la informacin enviada de
nombre del artculo, su identificador nico y su precio de manera que se sepa
que la peticin es correcta ya que el usuario podra cambiar los precios de los
artculos usando alguna herramienta de depuracin, como Firebug.
Base de datos no accesible exteriormente: Solamente debe de poder
trabajar con ella la parte del servidor Web y debe tener un usuario que solo debe
poder acceder a su base de datos para evitar que se cambien los precios aqu, si
es que se tiene una tienda. Adems, en una aplicacin Web el usuario no
necesita acceder directamente al servidor por SQL a no ser que sea
precisamente para esto como el ISQLPlus de Oracle, en cuyo caso est diseado
expresamente para esto.
Minimizar la superficie de impacto: El cliente solo debe poder acceder a
una pgina que luego delegar dependiendo la peticin realizada por el usuario
el trabajo en otras contenidas en el servidor no accesibles desde fuera.

Webgrafia:
http://www.infosecwriters.com/text_resources/pdf/SShah_Web20.pdf
http://librosweb.es/libro/ajax/capitulo_7/seguridad.html
http://www.flu-project.com/2014/04/seguridad-en-ajax-parte-i.html
http://sedici.unlp.edu.ar/bitstream/handle/10915/20590/Documento_com
pleto.pdf?sequence=1

TEMA 1 Actividades Universidad Internacional de La Rioja (UNIR)

Você também pode gostar