Title | Musi010 act1 - tarea |
---|---|
Author | Javier Sanchez |
Course | Seguridad en Redes |
Institution | Universidad Internacional de La Rioja |
Pages | 9 |
File Size | 278.2 KB |
File Type | |
Total Downloads | 599 |
Total Views | 814 |
Download Musi010 act1 - tarea PDF
Asignatura Seguridad en Aplicaciones Online
Datos del alumno Apellidos: Sánchez Delgado
Fecha
20/10/2021
Nombre: Javier Antonio
Actividad: Seguridad en aplicaciones AJAX Introducción AJAX son las siglas para Asynchronous Javascript y XML, y no es una nueva tecnología, sino la combinación de varias tecnologías: Javascript como lenguaje de programación, XML para el intercambio de datos, DOM para el manejo de los objetos de la página y un modelo asíncrono de comunicación para el intercambio de datos. La idea principal de AJAX es cargar y renderizar una página, esto se logra con base a scripts que se comunican de manera asíncrona con el servidor para traer los datos y luego cambiar partes de esta sin tener que cargar de nuevo la página. Entre las empresas más grandes que utilizan AJAX se encuentra Google, Yahoo, Amazon y Microsoft. Las aplicaciones automáticamente hasta una suite de
van desde completar algunos campos
oficina con procesador de
texto y hojas
electrónicas. ¿Qué es Ajax? Hace algún
tiempo para realizar una aplicación Web
que tuviera la
funcionalidad de una aplicación de escritorio, había que realizarla en Flash, Java o algún otro producto comercial. Esta solución tenía el inconveniente de tener que instalar un plug-in o en el caso de los applets la máquina virtual de Java. AJAX viene a ser otra opción y son las siglas Asynchronous Javascript y XML. Pero no es una nueva tecnología, sino la combinación de varias tecnologías y estándares que llevan muchos años usándose. Garret (2005) enumera las tecnologías que lo forman:
CSS: Su función es manipular la presentación de las páginas Web, sin tener que cambiar el código HTML.
DOM: Su función es la manipulación dinámica e interacción de
los
elementos HTML y XML. XML: función © Universidad Internacional de La Su Rioja (UNIR)
es proveer un estándar para el intercambio de datos.
El objeto XMLHttpRequest: Su función es la proveer un mecanismo de comunicación síncrona y asíncrona con el servidor.
JavaScript: Su función es proveer un lenguaje de
programación que se
encarga de unir todas estas tecnologías y estándares.
Actividades
1
Asignatura Seguridad en Aplicaciones Online
Datos del alumno Apellidos: Sánchez Delgado Nombre: Javier Antonio
Fecha
20/10/2021
Arquitectura AJAX La gran diferencia entre la arquitectura de
una aplicación AJAX
y una
aplicación Web tradicional es el motor AJAX. Sin el motor AJAX cada evento del usuario, podría significar una petición al servidor. El resultado sería una nueva página HTML. Ahora el explorador tiene una aplicación más inteligente, ya no solo visualiza el contenido de
la página HTML sino realiza más procesamiento,
aprovechando los recursos que tiene la computadora del usuario. Desde una perspectiva general la arquitectura AJAX difiere de la arquitectura Web tradicional en los siguientes puntos:
Motor AJAX del lado del cliente, como intermediario entre el servidor y las interfaces de usuario.
Eventos generados por el usuario, generan llamadas al motor AJAX en lugar de peticiones directas al servidor.
Comunicación asíncrona entre el motor AJAX y el servidor.
Utiliza un formato de intercambio de datos como XML o JSON.
© Universidad Internacional de La Rioja (UNIR)
Actividades
2
Asignatura Seguridad en Aplicaciones Online
Datos del alumno Apellidos: Sánchez Delgado
Fecha
20/10/2021
Nombre: Javier Antonio
Función Es un refinamiento del DHTML, utiliza todas sus herramientas, sumándole el objeto XMLHttpRequest para obtener información asíncronamente y refrescar solo la parte necesaria de
la página sin perder nada del contexto, se terminaron los
problemas del DHTML. Ventajas:
La mejor tecnología RIA hasta el momento.
Está en su mejor momento para la industria.
No se necesita descargar plug-in.
Desventaja:
Todavía existen incompatibilidades entre navegadores (cada vez menos).
Desarrollo con Javascript, hoy día no suficientemente explorado.
Vulnerabilidades de seguridad. Así como AJAX brinda mejoras a las aplicaciones web a nivel de
usabilidad,
velocidad, dinamismo y atractivo con respecto a las tradicionales, dio lugar también a la creación de posibles ataques o amenazas si es que no se ha tenido en cuenta un adecuado diseño de seguridad. Dado que AJAX puede encontrarse tanto en el cliente como en el servidor, ambas partes suelen verse afectadas. A continuación se mencionaran algunas de las cuestiones que deben de tenerse en cuenta al momento de diseñar una aplicación AJAX. 1. Código de Sitio-Entrecruzado (Cross-Site Scripting - XSS): es un ataque basado en explotar las
vulnerabilidades
del sistema de validación de
una página HTML, mas específicamente al problema de inserción, dado a que permite insertar código malicioso o fragmentos maliciosos en sitios web confiables, de acuerdo a la comunidad que conforma el Proyecto Abierto de Seguridad de Aplicaciones Web (PASAW) [OWASP-XSS]. 2. Aumento en la Superficie de Ataque: a diferencia de las aplicaciones web tradicionales que residen en el servidor, las aplicaciones AJAX se entienden el Rioja cliente y el servidor, el llevar © Universidad Internacionalen de La (UNIR) parte de AJAX requiere una relación de
a
cabo esta implementación por
confianza entre el cliente y el
servidor, la cual en muchas ocasiones es aprovechada por un atacante. Además agrega que una aplicación AJAX, envía pequeñas con el propósito de
muchas
solicitudes
crear más entradas en la aplicación. Esas
entradas ofrecen más vías de ingreso para que un atacante ingrese a la
Actividades
3
Asignatura Seguridad en Aplicaciones Online
Datos del alumno Apellidos: Sánchez Delgado
Fecha
20/10/2021
Nombre: Javier Antonio
aplicación. AJAX también aumenta inevitablemente la complejidad general del sistema, puesto que al momento de
adoptarlo, los programadores
pueden codificar un gran número de páginas del lado del servidor, donde cada página lleva a cabo una pequeña función (por ejemplo, el autocompletado del código postal a partir de
la ciudad y provincia del
usuario) en lo que respecta a la aplicación general. Esas pequeñas páginas representan un objetivo adicional para el atacante y un punto a tener en cuenta a nivel seguridad dado que representa una nueva vulnerabilidad. 3. Solicitud
Falsa
de
Sitio-Entrecruzado (Cross-Site Request Forgery -
XSRF): es un viejo ataque en el que un navegador puede ser forzado a realizar
solicitudes GET o
POST
a dominios-entrecruzados (cross-
domains); solicitudes que pueden desencadenar un evento en la lógica
de
la aplicación que se esté ejecutando en el dominio- entrecruzado. Desde la postura que ofrece la comunidad del PASAW [OWASP-XSRF], este ataque engaña a la víctima cargándole una página que
contiene
solicitudes
maliciosas, esto se refiere al sentido que hereda la identidad y privilegios de la víctima para realizar una función no deseada en nombre de la víctima. Estos ataques generalmente apuntan a las funciones que causan un cambio de estado en el servidor pero también pueden utilizarse para acceder a datos confidenciales. 4. Inserción de XPATH: la inserción XPath ocurre cuando un sitio web utiliza la información suministrada por el usuario para construir una consulta XPath
para
datos XML.
Al enviar
intencionalmente
la información
errónea al sitio web, un atacante puede determinar cómo están estructurados los datos XML o tener acceso a los mismos y aumentar los privilegios del sitio web, si se trata de los datos XML para la autenticación de usuario. 5. Ejecución de Código AJAX Malicioso: debido a que las llamadas de AJAX, medio © Universidad Internacionalpor de La Rioja de objetos XMLHttpRequest, (UNIR) podría determinar si el navegador
son muy silenciosas, un usuario no está
realizándolas. Cuando un
navegador realiza una llamada AJAX a algún sitio web, se reproduce una cookie por cada solicitud. Esto
puede
dar
lugar
a
potenciales
oportunidades en materia de inseguridad, ya que cuando un usuario navega en una página en la que requiere conectarse y autenticarse con el servidor, se
Actividades
4
Asignatura Seguridad en Aplicaciones Online
Datos del alumno Apellidos: Sánchez Delgado
Fecha
20/10/2021
Nombre: Javier Antonio
genera una cookie de sesión. Si el usuario continua navegando por otras páginas mientras su sesión está abierta y llega a una página web de un atacante, la cual tiene escrito código AJAX silencioso, ésta puede realizar llamadas en segundo
plano
sin
el
consentimiento del
usuario,
obteniendo información crítica de las páginas del mismo y enviándola al sitio web del atacante, pudiendo dar lugar a un problema de seguridad y a la pérdida de información confidencial. 6. Infección de XML: muchas aplicaciones web 2.0 hacen uso de bloques de XML,
provenientes de
clientes AJAX,
para la comunicación entre
navegadores y servidores. Es posible infectar un bloque de XML, ya que los atacantes pueden
producir documentos XML con formato erróneo que
puede alterar la lógica dependiendo del mecanismo de análisis que se utilice en el servidor. Ampliando el alcance de
este ataque Shah [Shah11/06]
comenta que esta vulnerabilidad se traslada hacia los servicios web quienes en definitiva consumen mensajes XML, dando lugar a que los atacantes puedan insertar contenido malicioso. 7. Inserción
de RSS /
Atom: La problemática de
la redifusión de
contenidos web comentando que, los suministros de RSS / Atom son un medio común para
compartir y
actualizar
información a
través
de
internet, pudiendo ser utilizadas por aplicaciones web, portales, blogs, etc. Un suministro (o feed) es un documento XML estándar, el cual puede ser consumido por una aplicación web y enviado al navegador del usuario. Una vez en el navegador el suministro es analizado e insertado en el DOM. Esto representa un caso crítico de
seguridad, ya que si el suministro no
es
validado adecuadamente antes de su inserción, es posible introducir enlaces maliciosos o código Javascript para generar un ataque en el navegador (dando lugar a un ataque XSS). Por lo que es de suma importancia filtrar ciertos caracteres del lado del cliente antes del envió de datos al usuario © Universidad Internacionalfinal. de La Rioja 8. Parte(UNIR) del Cliente:
En principio todas las aplicaciones Web están 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 línea, si la aplicación necesita de seguridad deberá ser el
Actividades
5
Asignatura Seguridad en Aplicaciones Online
Datos del alumno Apellidos: Sánchez Delgado Nombre: Javier Antonio
Fecha
20/10/2021
servidor el que la proporcione. A nadie se ocurriría poner la seguridad en el lado cliente ya que equivale a servir en bandeja al cracker todo el control de seguridad. 9. Problemas Antiguos AJAX: El código Javascript es visible al usuario, que perfectamente puede ser un potencial Hacker, puede buscar la forma de utilizar el código, como está o
con las modificaciones oportunas para
explotar las debilidades de la aplicación.
Solución
errónea: Encriptarlo, si se ejecuta es porque nuestra
máquina es capaz de desencriptarlo con lo cual seguro que es posible la ingeniería inversa.
Solución correcta: No existe, el código debe ser visible para que se ejecute defensas de seguridad.
Aplicación desarrollada con una Seguridad Ineficiente.
Aplicación desarrollada con una Seguridad correcta
© Universidad Internacional de La Rioja (UNIR)
Actividades
6
Asignatura Seguridad en Aplicaciones Online
Datos del alumno Apellidos: Sánchez Delgado Nombre: Javier Antonio
Fecha
20/10/2021
Defensas de seguridad. Como cualquier otra técnica o tecnología que se emplee en un entorno Web, el uso de AJAX está sujeto a inconvenientes. La experiencia enseña que con el tiempo estos inconvenientes se suplen cuando el mercado apoya una tecnología 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. Conexión cifrada La conexión debería estar cifrada desde la página principal para que cuando el usuario mande sus datos personales éstos estén codificados, aunque esto haga gastar más recursos. Hay que configurarlo en el servidor. Sin cookies Entre otras cosas, gracias a AJAX, al no
necesitar cambiar de
Web
e
ir
modificando dinámicamente la actual, se puede dar al usuario un identificador al comenzar la sesión, apuntarlo en la base de datos y no necesitar usar ningún cookie sino una variable que contenga el identificador y que se borrará al cerrar el navegador, de
esta manera enviando ese identificador con cada petición se
identificaría al usuario. Verificación 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 verificación y otra en la que será obligada. Por ejemplo en una aplicación de negocio, se puede tener una parte de noticias pública, donde el usuario además pueda ver los productos pero en caso de que quiera realizar una compra el usuario tenga que introducir su nombre y contraseña que ha dado anteriormente cuando se registró, dando sus datos de cuenta y demás, aunque estos se podrían especificar más tarde por si quiere cambiar el domicilio envío o cualquier otra © Universidad Internacional de Lade Rioja (UNIR) Evitar la inserción de código.
información personal
El usuario no debería poder introducir información en ningún momento, la página debe estar hecha completamente para su cometido, que es realizar las compras a golpe de clic, en caso de dudas que se hagan por correo-e. Verificación completa de datos.
Actividades
7
Asignatura Seguridad en Aplicaciones Online
Datos del alumno Apellidos: Sánchez Delgado Nombre: Javier Antonio
Fecha
20/10/2021
Cuando el usuario decida pagar por su carrito de la compra, se deberá comparar toda la información enviada de
nombre del artículo, su identificador único y su
precio de manera que se sepa que la petición es correcta ya que el usuario podría cambiar los precios de
los artículos usando alguna herramienta de depuración,
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. Además, en una aplicación 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á diseñado expresamente para esto. Minimizar la superficie de impacto. El cliente solo debe poder acceder a una página que luego delegará dependiendo la petición realizada por el usuario el trabajo en otras contenidas en el servidor no accesibles desde fuera. Conclusión Al desarrollar una aplicación web, se deben analizar las distintas tecnologías con las que uno dispone, si bien a lo largo del texto se da una breve descripción de las mismas, optando por dar mayor importancia a AJAX y haciendo un estudio más profundo de ella, esto no debe entenderse como que las demás tecnologías son de menor importancia, ya que el uso de cada una de ellas dependerá de la aplicación final que se quiera obtener. Así mismo las distintas tecnologías pueden interactuar complementándose unas a otras. La tecnología AJAX
permite que una aplicación
sea dinámica,
que cargue
contenidos parciales de una página, que brinde una mayor interacción del usuario final con la aplicación sin la necesidad de esperar por una respuesta del lado del servidor.deOtros de © Universidad Internacional La Rioja (UNIR) implementación de
los beneficios que se puede mencionar es la simplicidad en la las herramientas desarrolladas en Javascript (librerías y
frameworks), las cuales ofrecen al usuario un gran atractivo visual y facilidad de uso. En el proceso de elaboración de una aplicación AJAX, pueden surgir distintos inconvenientes, para la solución de los mismos se pueden utilizar los patrones de
Actividades
8
Asignatura Seguridad en Aplicaciones Online diseño, la no
Datos del alumno Apellidos: Sánchez Delgado
Fecha
20/10/2021
Nombre: Javier Antonio
utilización de
ellos como el uso en exceso puede producir
contratiempos. Si no se han tomado recaudos al momento de diseñar la seguridad de la aplicación web, puede darse lugar a ataques provenientes de
piratas informáticos o
códigos malintencionados.
Bibliografía bitstream.
(s.f.).
repository.unipiloto.edu.co.
Obtenido
de
http://repository.unipiloto.edu.co/bitstream/handle/20.500.12277/4913/00 0050 flu-project.
(s.f.).
flu-project.
Obtenido
de
https://www.flu-
project.com/2014/04/seguridad-en-ajax-parte-i.html www.cert.org.mx.
(s.f.).
www.cert.org.mx.
Obtenido
de
https://www.cert.org.mx/historico/vulnerabilidadesDB/index.html vulne=4695
© Universidad Internacional de La Rioja (UNIR)
Actividades
9...