Вы находитесь на странице: 1из 9

Asignatura Datos del alumno Fecha

Seguridad en Apellidos: Martínez Cáceres


Aplicaciones Online 02 de abril del 2014
y Bases de Datos Nombre: Carlos Fernando

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).

TEMA 1 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Martínez Cáceres
Aplicaciones Online 02 de abril del 2014
y Bases de Datos Nombre: Carlos Fernando

INICIO DE LA TAREA

Con el inicio de la creación de aplicaciones creadas en internet donde el usuario ya pasa


a interactuar con las aplicaciones y el internet siendo y es por este motivo es que el
internet está cambiando. Nuevas tecnologías e incluso fenómenos sociales han
transformado la Red, al tiempo que han provocado la aparición de nuevas amenazas que
los administradores de TI en las empresas deben empezar a valorar y afrontar.

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.

Aunque muchas organizaciones han encontrado formas, aplicaciones y herramientas


para darle un buen uso a la web 2.0, los directores de TI y seguridad de la información
han empezado a preocuparse por los riesgos que representa los malware, la perdida de
datos y otros aspectos que hacen parte de la seguridad de la información como activo
más importante. Las soluciones de seguridad tradicionales como los antivirus no pueden
incluso evadir la detección de antivirus. A través de sentencias de comandos activos,
códigos maliciosos y tácticas de ingeniería social. La seguridad de la web 2.0 requiere
de un análisis y categorización en tiempo real de contenidos web que deben ser
monitoreados al vuelo.

AJAX es el acrónimo de Asynchronous Javascript and XML, es decir: Javascript y


XML Asíncrono. Este acrónimo fue utilizado por primera vez por Jesse James Garret en
2005, en su publicación Ajax: a New Approach to Web Applications si bien los
componentes en que se basan y los recursos técnicos de que hace uso ya existían desde
muchos años antes.

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:

• Javascript es un lenguaje de programación conocido por ser interpretado por los


navegadores de páginas web.

• XML es un lenguaje de descripción de datos pensado fundamentalmente para el


intercambio de datos entre aplicaciones, más que entre personas.

• Asíncrono: en el contexto de las comunicaciones (y la visualización de una


página web no deja de ser un acto de comunicación entre un servidor y un
cliente) significa que el emisor emite un mensaje y continúa son su trabajo, dado
que no sabe (ni necesita saberlo) cuándo le llegará el mensaje al receptor.

TEMA 1 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Martínez Cáceres
Aplicaciones Online 02 de abril del 2014
y Bases de Datos Nombre: Carlos Fernando

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.

TEMA 1 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Martínez Cáceres
Aplicaciones Online 02 de abril del 2014
y Bases de Datos Nombre: Carlos Fernando

Primer ejemplo de AJAX

El código siguiente podemos guardarlo en un fichero llamado ajax.2.1.1.html. Una vez


guardado, podemos abrirlo en nuestro navegador sin necesidad de un servidor de
páginas web instalado, sino utilizando la opción “Abrir fichero” que poseen los
navegadores y de igual manera tenemos que tener un archivo llamando hola_mundo.txt
teniendo en cuenta que temeos que tenerlo en el mismo lugar que ajax.2.1.1.html

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.

TEMA 1 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Martínez Cáceres
Aplicaciones Online 02 de abril del 2014
y Bases de Datos Nombre: Carlos Fernando

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.

Finalmente, dentro del proceso de realizar la conexión mediante AJAX describimos


brevemente el paso 2; lo hemos colocado en esta explicación después del paso 3
intencionadamente, aunque por supuesto es imprescindible que se encuentre en segunda
posición. En este paso 2, indicamos al objeto creado qué debe hacer cada vez que
cambie el estado en que se encuentra, es decir, indicamos un manejador de eventos.

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:

• Al existir más “inputs” hay más puntos que proteger


• Las funciones internas se encuentran expuestas
• No contiene mecanismos de codificación bien definidos cuando un cliente
accede a determinados recursos
• No es muy seguro a la hora de proteger la información de sesiones y
autenticaciones

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.

TEMA 1 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Martínez Cáceres
Aplicaciones Online 02 de abril del 2014
y Bases de Datos Nombre: Carlos Fernando

Ataques más conocidos utilizando Ajax

Ataques Lógicos contra Ajax

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

TEMA 1 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Martínez Cáceres
Aplicaciones Online 02 de abril del 2014
y Bases de Datos Nombre: Carlos Fernando

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.

Superficie de Ataque, Mapeo, Descubrimiento y Explotación en Ajax

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.

TEMA 1 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Martínez Cáceres
Aplicaciones Online 02 de abril del 2014
y Bases de Datos Nombre: Carlos Fernando

• Descubrimiento en Ajax

El descubrimiento en Ajax depende grandemente de la habilidad del profesional


en pruebas de penetración para interceptar todas las peticiones hechas por la
aplicación. Utilizado una herramienta como Zed Attack Proxy se puede
interceptar las llamadas. Luego será factible catalogar cada una de las peticiones
y sus parámetros para determinar si algunas vulnerabilidades están en la
aplicación.

• Explotación en Ajax

La explotación de aplicaciones Ajax típicamente no tienen más dificultad


comparado con aplicaciones no Ajax. Los problemas podrían ser causados por
los temas ya expuestos. Por ejemplo, si una herramienta no es capaz de descubrir
las fallas, esta no puede sembrar sus funciones de explotación.

La manera más fácil de solucionar esto es manualmente sembrar las fallas


utilizando las herramientas. Por ejemplo, SQLMap aceptar parámetros para
atacar como parte de sus argumentos en línea de comandos.

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.

En todo software particularmente en nuestro caso Ajax que requiere de validaciones de


cliente enfrenta un mayor grado de amenaza, como una forma de contrarrestarlo
podríamos citar la validación tanto en este lado como en el lado del servidor.

Amenazas y medidas a tener en cuenta:

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.

TEMA 1 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos: Martínez Cáceres
Aplicaciones Online 02 de abril del 2014
y Bases de Datos Nombre: Carlos Fernando

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.

• Las amenazas donde tienede aumentar es en el lado del cliente si utilizamos


AJAX, por lo cual el código es visible por parte del usuario por lo cual se debe
asegurar que no se presente información sensible

• Las contraseñas, la lógica de negocios y la conexión a base de datos se debe


poner al lado del servidor y de esta manera protegemos la información del
usuario final.

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/

TEMA 1 – Actividades © Universidad Internacional de La Rioja (UNIR)

Вам также может понравиться