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

Departamento de Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur 2012

SEGURIDAD EN SISTEMAS
Trabajo Final: Aspectos de seguridad en las nuevas tecnologas web

Autores: Schwindt, Diego M. (LU: 88993) Villarroel, J. Fernando (LU: 89258)

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

ndice
Abstract ............................................................................................................. 2 Introduccin ...................................................................................................... 2 HTML5 ................................................................................................................ 2 Javascript ............................................................................................................ 2 AJAX ................................................................................................................... 2 Nuevas funciones y APIs de HTML5 ................................................................... 4 Almacenamiento local / sitios offline ................................................................. 4 Comunicacin / Tiempo real .............................................................................. 5 Integracin con el sistema operativo ................................................................. 7 Multimedia / grficos / interfaz de usuario ........................................................ 9 Nuevas etiquetas ................................................................................................ 5 Presentacin y estilo........................................................................................... 5 Mejoras en la plataforma de desarrollo web del lado cliente............................ 7 Modelo de seguridad en HTML5 ......................................................................... 13 Principales amenazas en HTML5 ........................................................................ 17 Vulnerabilidades en HTML5 ............................................................................... 17 Cross Document Messaging (Web Messaging) .................................................. 17 Cross-Origin Resource Sharing (CORS) ............................................................... 20 Web Storage ....................................................................................................... 17 Web Database .................................................................................................... 17 Web Workers ...................................................................................................... 20 Geolocation ........................................................................................................ 17 WebSockets ........................................................................................................ 17 Ejemplos de ataques .......................................................................................... 17 XSS (Cross-site scripting) .................................................................................... 17 Clickjacking ......................................................................................................... 17 Conclusin ......................................................................................................... 25 Recomendaciones finales ................................................................................... Referencias ........................................................................................................ 26

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Abstract
En el presente trabajo se hace una introduccin a las nuevas tecnologas web, que dan lugar a HTML5 y todo su conjunto de mejoras y funcionalidades, y se hace un breve anlisis ToDo

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Introduccin
Intro sobre los alcances de lo analizado. SEGURIDAD DEL LADO CLIENTE. Blabla Paraprotteger contraseas e informacin sensible en la web se debe utilizar los protocolos SSL / TLS (HTTPS) y hacer todos los controles en el servidor. Como se ver a continuacin, si lo que se desea es proteger pginas con contrasea o enviar datos cifrados, lo ideal es usar script del lado servidor y conexiones encriptadas, ya que lo que se enva desde el lado del cliente (generado a partir de javascript por ejemplo), puede ser ledo y modificado por cualquier usuario con acceso a esa conexin. Blabla

HTML5
HTML5 es la ltima evolucin del estndar que define HTML (definido por la W3C, an en desarrollo. La ltima versin de la especificacin puede encontrarse en http://dev.w3.org/html5/spec/Overview.html). Sin embargo, el trmino HTML5 no hace referencia slo a la nueva versin del lenguaje de marcado base para la web, sino que representa dos conceptos diferentes: La nueva versin del lenguaje HTML, con nuevos elementos, atributos y comportamientos. Un gran conjunto de tecnologas que permiten sitios y aplicaciones web ms diversas y poderosas. Este conjunto es llamado HTML5 & friends pero es frecuentemente mencionado simplemente como HTML5. Este conjunto de tecnologas (estndares y APIs) forman una nueva plataforma web, compuesta en conjunto por los lenguajes HTML5 + Javascript + CSS. En este sentido, la denominacin HTML5 es un trmino amplio que abarca a un grupo de tecnologas y especificaciones afines. Adems, es importante ser consciente de que HTML5 y amigos estn sometidos a un proceso constante de cambio y escrutinio, la especificacin sigue en desarrollo. X|x|Son tecnologas de presentacin y ejecucin del lado del cliente. Es decir, el usuario realiza requerimientos de informacin al servidor web, pero el procesamiento relacionado con estas funciones se realiza en la mquina del usuario, ms especficamente en el browser, de forma nativa, sin intervencin del servidor, ni plugins. As se obtienen ms ventajas para aplicaciones dinmicas, ms eficiencia, mejor soporte multimedia y de comunicacin, facilidades a los desarrolladores y estandarizacin. Se tiene una mayor potencia a la hora del desarrollo web, evitando usar tecnologas de terceros, y simplificando la longitud y complejidad del cdigo. A su vez, se facilita lograr una mejor estructuracin y semntica de los sitios web. La implementacin de estas tecnologas depende de cada browser, que tambin estar a cargo de la seguridad. La especificacin de HTML5 an se encuentra en desarrollo, pero todos los navegadores modernos ya soportan la mayora de las funcionalidades. Una de las grandes ventajas es que es el browser el que implementa efectos visuales, soporte multimedia y muchas funciones tiles, que antes deban realizarse mediante libreras Javascript o plugins como Flash. En http://html5test.com/ se puede verificar cules son las funciones que soporta el navegador que se est usando.

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Browser con HTML5

En la prxima seccin se mencionar y dar una breve descripcin de las nuevas funcionalidades, haciendo foco en posibles cuestiones relacionadas con la seguridad.

Javascript
Javascript es un lenguaje interpretado por el navegador, que permite extender las capacidades de HTML, brindando la posibilidad de tener pginas dinmicas, mejoras en la interfaz de usuario, etc. Los programas (o scripts) escritos en javascript pueden acceder y modificar la estructura del cdigo HTML que es interpretado por el navegador, mediante la interfaz DOM. El cdigo JavaScript puede estar embebido en los documentos HTML (inline: dentro de tags HTML; o en bloques de script), o en archivos externos .js que son linkeados desde el HTML. Este cdigo es enviado desde el servidor y ejecutado en tiempo real en el lado del cliente, sin ser compilado a un archivo binario. Es decir, el usuario puede ver el cdigo JavaScript, y modificarlo. El cdigo no puede ser ocultado ni protegido. Aqu aparecen las primeras cuestiones bsicas de seguridad en relacin a este lenguaje: cualquier navegador permite la opcin de mostrar al usuario el cdigo HTML y los scripts relacionados, por lo que no debera incluirse informacin sensible sin encriptar. Por otro lado, fcilmente el usuario (o una aplicacin con acceso al navegador), puede modificar este cdigo, o insertar nuevo (lo que se denomina inyectar), alterando el comportamiento original del script. Si el usuario o la aplicacin actan de forma maliciosa, pueden causar un efecto indeseado en el sitio web. Por ejemplo, debido a que los scripts pueden ser modificados o deshabilitados, las validaciones que se hacen a un formulario, se pueden realizar mediante JavaScript por conveniencia para los usuarios, pero para asegurar que lo ingresado es lo esperado, debe validarse tambin en el servidor. JavaScript tiene su propio modelo de seguridad, y cuestiones a tener en cuenta que escapan al alcance de este informe. Hay dos restricciones bsicas de seguridad: El entorno de ejecucin de los scripts es la pestaa del browser: se ejecutan en un sandbox y slo pueden realizar acciones relacionadas con el sitio web abierto actualmente en esa pestaa.

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Poltica del mismo origen (same origin policy): los scripts provenientes de un determinado sitio web origen, no tienen acceso a informacin (como usuarios, passwords, cookies, etc) de documentos provenientes de otro origen (es decir, de un sitio web con diferente dominio, puerto o protocolo). Una alternativa a esto es usar scripts firmados digitalmente, signed script policy. Limitaciones de JavaScript (previas a HTML5) Como consecuencia de las restricciones mencionadas anteriormente, hay varias limitaciones sobre lo que se puede hacer con JavaScript. Sin embargo, varias de estas limitaciones son superadas con las tecnologas que ofrece HTML5, lo cual ser analizado en la prxima seccin. No puede leer ni escribir en el sistema de archivos del usuario, ni del servidor. nico medio de almacenamiento estable: cookies. Slo puede comunicarse entre distintas pginas, si fueron generados desde el mismo sitio (mismo origen). No puede ver las interacciones del usuario con el navegador (historial, otras pginas abiertas). No puede acceder a cookies ni variables generadas por otros sitios. No puede hacer llamadas al sistema operativo, ni a otras partes del browser externas a la pestaa donde se ejecuta. Amenazas Cross-site Las principales amenazas relacionadas con JavaScript son: Cross-site scripting (XSS): es una violacin a la poltica del mismo origen. Un atacante inyecta cdigo malicioso en un sitio vulnerable, luego se explota la confianza que un usuario tiene en ese sitio. Se tratar ms adelante como ejemplo de ataque. Cross-site request forgery (CSRF): comandos no autorizados son transmitidos por un usuario en el cual el sitio web confa. Se explota la confianza que un sitio tiene un usuario en particular, ya que se fuerza al navegador web validado de una vctima a enviar una peticin a una aplicacin web vulnerable, la cual entonces realiza la accin elegida a travs de la vctima.

AJAX
AJAX (Asynchronous JavaScript And XML) es un conjunto de tecnologas que permite comunicacin asncrona entre el cliente y el servidor. Desde un script que se ejecuta en una pgina web se pueden pedir datos al servidor (va requerimientos HTTP: XMLHttpRequest), y con esos datos modificar (de forma asincrnica) lo que se muestra al usuario, permitiendo as tener sitios dinmicos, sin necesidad de recargar toda la pgina (comunicacin sincrnica). De esta forma, los requerimientos al servidor son transparentes al usuario, y se gana en velocidad de navegacin. Permite la interaccin actual de la web dinmica 2.0, en la que nos comunicamos constantemente con el servidor sin apretar F5: redes sociales, chats, autocompletado y validacin de formularios, respuestas instantneas a formularios de consulta (ej: bsqueda de Google), aplicaciones de trabajo colaborativo (ej: Google Docs), etc. Al utilizar AJAX debemos tener en cuenta tanto la seguridad del lado del cliente, como del lado del servidor, ya que mediante esta tcnica se produce la interaccin entre ambos. Esto incluye autenticacin,

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

autorizacin, control de acceso y validacin de la entrada. Debido a que los requerimientos XMLHttpRequest que usa AJAX usan el protocolo HTTP, tiene las mismas vulnerabilidades que la comunicacin sincrnica de los sitios web que no usan AJAX. Al estar basado en javascript, una posible amenaza son los ataques Cross-site scripting (XSS).

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Nuevas funciones y APIs de HTML5


Las nuevas tecnologas que ofrece HTML5 pueden ser clasificadas en los siguientes grupos de funciones. Aqu mencionaremos los ms significativos, dando un breve pantallazo sobre las implicancias en seguridad. En la seccin Las principales amenazas en HTML5 se har foco en algunas de ellas.

Almacenamiento local / sitios offline


Cuando los desarrolladores web quieren almacenar cualquier informacin del usuario, piensan inmediatamente en subir datos al servidor. La nica manera de guardar datos de forma estable en el cliente eran las cookies (las cuales tienen una capacidad de almacenamiento limitada, y son transferidas va HTTP), o usando algn plugin (como Flash o Java). Sin embargo, esto ha cambiado con HTML5, ya que actualmente existen varias tecnologas que permiten que las aplicaciones almacenen datos en los dispositivos cliente, y adems puedan operar de modo offline de forma eficiente. Estn funcionalidades se acceden mediante Javascript. As como las cookies presentan riesgos de seguridad (por la informacin sensible que pueden guardar de los usuarios, vulnerabilidades cross-site, y la posibilidad de tracking o falsificacin de las mismas), las mismas consideraciones deben tenerse para estas nuevas tecnologas. Debe tenerse en cuenta adems, que si el navegador es compartido por varios usuarios, todos podrn tener acceso a la informacin guardada, por lo que una alternativa es almacenarla de forma encriptada. O Web storage: localStorage, sessionStorage Se provee un mapeo clave-valor, por ej: localStorage["name"] = username. Se asignan strings, pero pueden serializarse otras estructuras de datos, por ejemplo:
localStorage["currentGame"] = JSON.stringify(gameState)

Con localStorage, el almacenamiento es persistente, con la poltica del mismo origen. Con sessionStorage los datos estn disponibles mientras el navegador est abierto (sobreviven a recargas de la pgina). Abrir una pgina en una nueva pestaa o ventana crea una nueva sesin. Puede ser mejor por cuestiones de seguridad, ya que los datos se borran al cerrar el navegador. O Web SQL Database Se proporciona toda la potencia de una base de datos relacional SQL estructurada, implementada y almacenada en el propio navegador. O Indexed Database Se encuentra a medio camino entre Web Storage y Web SQL Database. Al igual que Web Storage, se trata de una sencilla asignacin de valores y claves, pero admite ndices similares a los de las bases de datos relacionales, por lo que la bsqueda de objetos que corresponden a un campo especfico es rpida. Adems, no es necesario repetir la accin de forma manual en todos los objetos almacenados. O Application Cache Basado en un manifest se determina qu archivos deben estar disponibles offline. As se puede navegar de modo offline, se gana en velocidad, y se reduce la carga del servidor. O Eventos online y offline

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Acceso a sistema de archivos y hardware: Integracin con el Sistema Operativo


Superando las limitaciones de Javascript mencionadas inicialmente, HTML5 proporciona APIs que permiten interactuar con datos binarios, con el sistema de archivos local del usuario, y con algunos dispositivos del hardware del sistema. O FileSystem API Provee otra alternativa de almacenamiento local e implementacin de aplicaciones offline. Las API de archivos permiten que las aplicaciones web realicen tareas como leer archivos de forma sncrona o asncrona, crear objetos BLOB arbitrarios, escribir archivos en una ubicacin temporal, leer un directorio de archivos de forma recurrente, arrastrar archivos del escritorio y soltarlos en el navegador y subir datos binarios con XMLHttpRequest2. El FileSystem API es una representacin virtual de un sistema de archivos. Algunos ejemplos de uso podran ser: aplicaciones con uploader persistente, videojuegos con muchas media assets, editores de audio o video con acceso offline o cache local, visor de video offline, cliente de web mail offline. Esta funcionalidad slo est implementada actualmente en Google Chrome. Se debe tener en cuenta cuestiones de seguridad y privacidad: Uso del disco y ancho de banda de E/S: debe ser limitado. Acceso a datos privados: el filesystem de HTML5 se limita a un sandbox con poltica del mismo origen. Las aplicaciones no pueden acceder a sistemas de archivos de otros dominios / orgenes. Almacenamiento de ejecutables maliciosos o datos no deseados en el sistema del usuario: se debe restringir la creacin de este tipo de archivos.

O Desktop Drag-in y Drag-out (File API) Mediante la API FileReader se puede arrastrar archivos del sistema de archivos de usuario y subirlos al navegador (Drag-in). En Google Chrome se permite adems el proceso inverso: arrastrar archivos del navegador (provenientes del servidor) al escritorio del usuario. O Geolocation Permite obtener la locacin geogrfica del dispositivo que accede al sitio. La especificacin tiene en cuenta que como se exponen los datos de la ubicacin geogrfica del usuario, esto puede comprometer su privacidad. Por ello es necesario consensuar el permiso para utilizar dicha informacin. Esta consulta es realizada automticamente por el navegador enviando un mensaje a travs de un popup o en su parte superior (la implementacin vara segn el navegador). O Interaccin con el hardware del dispositivo: Deteccin de la orientacin del dispositivo (evento registrado va javascript) Eventos touch: se puede manejar eventos relacionados con pantallas tctiles. Camera API: interaccin con la cmara del dispositivo, sin uso de plugins. Entrada de audio.

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Comunicacin / Tiempo real


Una conectividad ms eficaz se traduce en chats en verdadero tiempo real, una mayor velocidad en los juegos y una comunicacin mejor. Las conexiones web y los eventos enviados por servidores estn permitiendo que la eficacia en la transmisin de datos entre clientes y servidores alcance unos niveles sin precedentes. Estas nuevas formas de comunicacin tambin requieren especial atencin en su seguridad. O Web Messaging Es una manera en que documentos de contextos de navegacin independientes (distinto origen) puedan compartir datos, sin que el DOM est expuesto a cross-origin scripting malicioso. A diferencia de otras formas de comunicacin entre sitios (cross-domain XMLHttpRequest o insercin dinmica de scripts), web messaging nunca expone directamente el DOM. Hay dos sistemas: o Cross-document messaging, mediante el mtodo postMessage() o Channel messaging, mediante MessageChannel estableciendo un canal de comunicacin. En la seccin Principales amenazas en HTML5 se profundizar en esta caracterstica. O Cross-Origin Resource Sharing (CORS) La poltica del mismo origen que asla documentos de diferente dominio, puede ser relajada en HTML5, permitiendo solicitar mediante XMLHttpRequest recursos de distinto origen y compartir informacin. El estndar CORS funciona mediante el agregado de nuevos headers HTTP que permite a los servidores entregar recursos a los dominios de origen permitidos. En la seccin Principales amenazas en HTML5 se profundizar en esta caracterstica. O WebSockets Hasta el momento, para tener sitios dinmicos, donde cliente y servidor se comunican peridicamente (sin solicitar pginas enteras), se utiliza AJAX. Mediante Push o Comet se logra que un servidor enve datos al cliente cuando se detecta que hay nuevos datos disponibles. Uno de los trucos ms comunes para crear la ilusin de una conexin iniciada por el servidor se denomina Long Polling donde el cliente abre una conexin HTTP con el servidor, el cual la mantiene abierta hasta que se enve una respuesta. El problema de estas tcnicas es que utilizan el protocolo HTTP, provocndose un exceso de requerimientos, lo cual no es apto para aplicaciones de baja latencia (como juegos online, o comunicacin en tiempo real). Con HTML5 aparecen los WebSockets: Se puede establecer un canal de comunicacin bidireccional y full-duplex sobre un socket TCP, entre un navegador web y un servidor. Dicho con otras palabras: existe una conexin persistente entre el cliente y el servidor, y ambas partes pueden empezar a enviar datos en cualquier momento. Por lo tanto, es una alternativa al uso de AJAX, evitando el overhead de headers HTTP. La conexin puede ser establecida fcilmente desde el cliente mediante Javascript. El protocolo de websockets define un nuevo prefijo en el esquema de URL: ws:// (para una conexin WebSocket sin encriptar), o wss:// (conexin WebSocket Secure sobre TLS). Ambos esquemas utilizan un mecanismo HTTP upgrade de actualizacin al protocolo WebSocket. Si se desea establecer conexiones seguras, se debe usar wss. WebSocket Handshake Para establecer una conexin WebSocket, el cliente manda una peticin de negociacin WebSocket, y el servidor manda una respuesta de negociacin WebSocket. Una vez establecida,

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

las tramas WebSocket de datos pueden empezar a enviarse en ambos sentidos entre el cliente y el servidor en modo full-duplex, sin realizar nuevos requerimientos de HTTP.

Algunos ejemplos de sitios web con WebSockets pueden encontrarse ac: http://www.websocket.org/demos.html O Eventos enviados por el servidor (SSE) Cuando la aplicacin requiere principalmente recibir actualizaciones o mensajes peridicos del servidor, esta es una mejor alternativa. Ahora es mucho ms simple que la tcnica Push o Comet via AJAX. Se requiere un cdigo simple en el servidor para hacer un stream de eventos a la aplicacin web. Y desde el lado del cliente, la aplicacin web trabaja de forma similar a como maneja cualquier otro tipo de eventos, a travs de la interfaz EventSource. A diferencia de WebSocket, Los SSE son enviados a travs de HTTP tradicional, por lo que no requieren un protocolo especial ni modificaciones en el servidor. Es recomendable chequear el atributo origen del evento, para asegurarse se slo se aceptan mensajes desde dominios esperados, evitando posibles agujeros de seguridad. Tambin es buena idea chequear la integridad del mensaje recibido en el evento.

10

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel O WebRTC

Seguridad en Sistemas DCIC UNS 2012

Se implementan estndares abiertos de Comunicacin en Tiempo Real, sin uso de plugins, permitiendo streaming de audio/video y compartir datos entre browsers (peers).

Perfomance & Integracin: Mejoras en la plataforma de desarrollo web del lado cliente
Se logra una optimizacin en la velocidad y en el uso del hardware. Adems, las nuevas herramientas facilitan el desarrollo de aplicaciones web que se ejecutan en el cliente. Algunas de estas mejoras son: O Web workers Resuelve los problemas de concurrencia que aparecen en Javascript, ya que la ejecucin de los scripts se realiza en un nico thread, por lo que si se requiere procesar grandes cantidades de datos y manipular el DOM, para gestionar eventos de la interfaz de usuario debe esperarse a que lo anterior termine de ejecutarse. En cambio, mediante un web worker, se puede ejecutar un script en paralelo (en background) que realice acciones con tiempos de ejecucin largos, evitando que se bloquee la interfaz de usuario. La comunicacin entre un Worker y su pgina principal se realiza mediante un modelo de evento y el mtodo postMessage(). Este modelo de ejecucin tambin requiere de varias consideraciones sobre su seguridad, en cuanto al acceso que puedan tener. Los workers generan nuevos threads a nivel del Sistema Operativo, por lo que debe tenerse cuidado con los efectos de la concurrencia. Sin embargo, los puntos de comunicacin con otros subprocesos estn cuidadosamente controlados, por lo que es difcil que aparezcan problemas. Los workers no pueden manipular directamente con el DOM, sino que deben hacerlo enviando mensajes al script principal. Por otro lado, los scripts del worker deben ser archivos externos con el mismo esquema URL que la pgina que lo llama. Por ejemplo, una pgina https: no puede iniciar worker scripts que comiencen con una URL http: O XMLHttpRequest Level 2 (XHR2) El objeto que hace posible la comunicacin mediante AJAX fue renovado, introduciendo una gran cantidad de nuevas funciones que ponen fin a los disparatados problemas de nuestras aplicaciones web, como solicitudes de origen cruzado, eventos de progreso de subidas y compatibilidad con subida/bajada de datos binarios. Esto permite a AJAX trabajar en coordinacin con muchas de las API HTML5, como FileSystem, Web Audio y WebGL. O Sandbox en Iframes Para combatir uno de los principales problemas de seguridad de los iframes, que pueden abrir cualquier elemento externo a nuestro sitio, sin que podamos controlarlo, se incorpora el atributo sandbox que restringe algunas acciones: desactiva complementos, deshabilita formularios, desactiva scripts, desactiva enlaces a otros contextos de navegacin, el contenido se trata como de origen diferente. Mediante algunos atributos se puede relajar algunas restricciones, por ej: allow-same-origin, allow-top-navigation, allow-forms, allow-scripts.
<iframe sandbox="allow-same-origin allow-forms allow-scripts" src="http://www.example.com/incrustado.html"></iframe>

11

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel O API para manipular el historial: pushState, popState

Seguridad en Sistemas DCIC UNS 2012

En pginas dinmicas que se actualizan mediante AJAX, el historial del navegador no cambia (slo puede modificarse el hash del URL, es decir, lo que est despus del #). Mediante el mtodo pushState() puede modificarse el historial (actualizando el URL sin acceder directamente al mismo, guardando adems un objeto de dato si se desea), para que los botones back y forward del navegador tengan el efecto deseado. Al modificarse el estado actual del historial, se lanza un evento popState, que puede ser capturado mediante Javascript para recuperar los estados guardados. Por razones de seguridad, mediante estos mtodos se respeta la poltica del mismo origen. Es decir, no puede modificarse el protocolo+dominio+puerto del URL, para evitar posibles ataques de phishing o falsificacin de contenido. Por otro lado, debe limitarse el nmero de entradas al historial que puede crear o modificar una pgina, para evitar que sitios maliciosos inunden el historial, o lo manipulen de forma perjudicial para el usuario. O Drag & Drop nativo Arrastrar elementos de un lugar a otro en la pgina sin el uso de plugins. O Nuevos selectors (DOM API) Simplifican y facilitan el cdigo javascript O Atributos de datos personalizados Para definir, almacenar y recuperar datos personalizados en el DOM

Multimedia / grficos 2D & 3D


Muchos de los efectos grficos y de la reproduccin multimedia que hacen atractiva a la web, ahora pueden lograrse mediante el uso de estas tecnologas, implementadas por el browser, sin el uso de plugins o libreras de terceros. O Tags audio y video Reproduccin de audio y video nativa en el navegador, mediante etiquetas HTML. No se requiere ms el uso de plugins propietarios como Flash. O Canvas El elemento <canvas> de HTML5 permite dibujar grficos, hacer composiciones de fotos o animaciones mediante scripting. O SVG (Scalable Vector Graphics) Formato de imgenes vectoriales basado en XML, que puede ser directamente embebido en HTML O WebGL Se provee la posibilidad de crear grficos 3D, mediante una API que cumple con OpenGL ES 2.0, y pueden ser utilizados dentro de elementos <canvas>

12

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Semntica: Nuevas etiquetas HTML


Mediante las nuevas etiquetas de HTML5, podemos describir ms precisamente QU es el contenido de nuestras pginas. De esta forma los motores de bsqueda, las herramientas de accesibilidad y otras partes pueden mostrar, proporcionar y combinar nuestro contenido de mejor manera. O Etiquetas de semntica de la estructura del sitio Nuevos elementos estructurales. Nueva semntica de aplicacin internacional. Nuevos tipos de relaciones entre enlaces. Nueva sintaxis de microdatos para ampliar la semntica O Etiquetas de formato Nuevos elementos (datalists, progress bar, etc), nuevos atributos, nuevos tipos de formularios. Todo esto antes deba implementarse mediante javascript, ahora es una simple etiqueta en HTML. Debe prestarse atencin con los controles de seguridad, como validaciones en formularios: tener en cuenta que no todos los navegadores soportan an los nuevos formularios.

Presentacin y estilo [CSS3]


El lenguaje CSS que permite definir hojas de estilo, para definir la presentacin de las pginas, fue extendido, siendo capaz de estilizar los sitios de forma mucho ms compleja y potente O Nuevos selectores O Nuevas propiedades y atributos O Web fonts O Muchas de las estilizaciones implementadas mediante javascript e imgenes, ahora pueden hacerse de modo ms eficiente con CSS: sombras, animaciones, transiciones, gradientes, etc.

13

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Modelo de seguridad en HTML5

El diagrama anterior muestra una visin general de las caractersticas de HTML5 y cmo se relacionan entre s en el contexto de un navegador web. DomainA.csnc.ch es el origen del sitio web cargado que incrusta tres Iframes de fuentes diferentes. El Iframe con fuente untrusted.csnc.ch se ejecuta en un sandbox (entorno limitado) y no tiene permiso para ejecutar cdigo JavaScript. Los Iframes cargados desde anydomainA.csnc.ch y anydomainB.csnc.ch se comunican entre s haciendo uso de Web Messaging Los custom schemes (esquemas personalizados de URL) y content handlers (manejadores de contenido) estn registrados por domainB.csnc.ch, que se solicita si el usuario pide un recurso adecuado. Recursos adicionales son cargados de domainC.csnc.ch usando Cross-Origin Resource Sharing. Geolocation API, Offline Web Application, Web Storage y Web Workers representan caractersticas de HTML5 que pueden ser utilizados por los sitios web. En este ejemplo anydomainB.csnc.ch hace uso de todas ellas.

14

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Principales amenazas en HTML5


Vulnerabilidades en HTML5
Bla bla

Cross Document Messaging (Web Messaging)


Bla bla

Cross-Origin Resource Sharing (CORS)


Bla bla

Web Storage
Bla bla

Web Database
Bla bla

Web Workers
Bla bla

Geolocation
Bla bla

WebSockets
Bla bla

Lecturas recomendadas sobre seguridad y amenazas en HTML5


Para profundizar en este tema sugerimos la lectura de los siguientes papers e informes que hacen foco sobre estas y otras amenazas y posibles ataques a las tecnologas de HTML5 (en los links puede descargarse la versin en PDF): HTML5 Web Security (extracto de la Tesis de Master de Michael Schmidt) http://media.hacking-lab.com/hlnews/HTML5_Web_Security_v1.0.pdf Completo anlisis de las vulnerabilidades y escenarios de ataque de varias de las caractersticas mencionadas aqu, brindando ejemplos.

15

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

A Security Analysis of Next Generation Web Standards ENISA (European Network and Information Security Agency) http://people.cs.kuleuven.be/~lieven.desmet/research/publications/docs/NG_Web_Security.pdf La ENISA identific 51 problemas y amenazas de seguridad en las tecnologas de HTML5, incluyendo los estndares de comunicacin cross-origin como CORS, y en el acceso a datos locales como geolocation. En este informe se detalla este anlisis de seguridad y se brindan recomendaciones.

16

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Ejemplos de ataques
XSS (Cross-site scripting)
Bla bla

Clickjacking
Bla bla

17

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Conclusin
Bla Bla

18

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

Referencias
HTML5: Introduccin. Nuevas funciones y APIs o W3C: Definicin del estndar HTML5 http://www.w3.org/html/wg/drafts/html/master/ o Mozilla Developer Center: HTML5. https://developer.mozilla.org/en-US/docs/HTML/HTML5 o HTML5 Rocks (proyecto de Google). http://www.html5rocks.com ; http://slides.html5rocks.com http://playground.html5rocks.com/ o HTML5 Demos and Examples. http://html5demos.com/ o HTML5 test How well does your browser support HTML5? http://html5test.com/ o HTML5 Bookmarks http://html5bookmarks.com/ o Top 10 reasons to use HTML5 right now. http://tympanus.net/codrops/2011/11/24/top-10reasons-to-use-html5-right-now/ o HTML5 Features and Overview http://application-aegis.blogspot.com.ar/2012/06/html5features-and-overview.html Javascript o Javascript tutorial - Security http://www.howtocreate.co.uk/tutorials/javascript/security o JavaScript Security in Mozilla http://www.mozilla.org/projects/security/components/jssec.html o Wikipedia: Javascript Security http://en.wikipedia.org/wiki/JavaScript#Security AJAX o Ajax security: Are AJAX Applications Vulnerable to Hack Attacks? http://www.acunetix.com/websitesecurity/ajax/ o Symantec: Ajax Security Basics. http://www.symantec.com/connect/articles/ajax-securitybasics o Wikipedia: AJAX http://es.wikipedia.org/wiki/AJAX Almacenamiento estable / offline. o HTML5 Rocks Offline: What does it mean and why should I care? http://www.html5rocks.com/en/tutorials/offline/whats-offline/ o HTML5 Rocks Client-side storage. http://www.html5rocks.com/en/tutorials/offline/storage/ FileSystem API Geolocation. o Using the HTML5 Filesystem API.http://my.safaribooksonline.com/book/webdevelopment/html/9781449311384/introduction/i_sect11_d1e378 o Basic Concepts About the Filesystem API. https://developer.mozilla.org/enUS/docs/DOM/File_APIs/Filesystem/Basic_Concepts_About_the_Filesystem_API

19

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

o Ubicacin Geogrfica con Geolocation y Google Map http://surpatterns.com/sitio/html5-enespanol-surpatterns/tutorial-html5-en-espanol-ubicacion-geografica-con-geolocation-y-googlemap/ Conectividad: o Web Messaging http://dev.opera.com/articles/view/window-postmessage-messagechannel/ ; http://www.cristalab.com/tutoriales/introduccion-a-html5-web-messaging-c105028l/ o CORS https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS ; http://enable-cors.org o Server-sent events. http://www.html5rocks.com/en/tutorials/eventsource/basics/ ; https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events o WebSockets. http://www.websocket.org ; http://www.html5rocks.com/es/tutorials/websockets/basics/ ; https://developer.mozilla.org/en-US/docs/WebSockets o WebRTC. http://www.html5rocks.com/en/tutorials/webrtc/basics/ ; https://developer.mozilla.org/en-US/docs/WebRTC Perfomance & integracin: o Web workers https://developer.mozilla.org/en-US/docs/DOM/Using_web_workers ; http://www.html5rocks.com/es/tutorials/workers/basics/ ; o XMLHttpRequest2. http://www.html5rocks.com/es/tutorials/file/xhr2/ o Sandbox en Iframe. http://www.desarrolloweb.com/articulos/sandbox-html5.html ; http://javiercasares.com/blog/html-5-los-malditos-iframes/ o History API https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history https://wiki.mozilla.org/Firefox_3.6/PushState_Security_Review HTML5 Seguridad, amenazas: o HTML5 Security Resources Repository http://html5security.org/ o HTML5 Web Security (Michael Schmidt - Master thesis) http://media.hackinglab.com/hlnews/HTML5_Web_Security_v1.0.pdf o HTML5 Top 10 Threats Stealth Attacks and Silent Exploits o La seguridad de HTML5 no es tal http://h30565.www3.hp.com/t5/Destacado/La-seguridad-deHTML5-no-es-tal/ba-p/8780?profile.language=es o OWASP HTML5 Security Cheat Sheet https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet o eSecurity Planet Top 5 Security Threats in HTML5 http://www.esecurityplanet.com/trends/article.php/3916381/Top-5-Security-Threats-inHTML5.htm

20

Aspectos de seguridad en las nuevas tecnologas web


Diego Schwindt & Fernando Villarroel

Seguridad en Sistemas DCIC UNS 2012

o Help Net Security Top 10 HTML5 threats and attack vectors http://www.netsecurity.org/article.php?id=1656 o Mashable How Web Security Will Change With HTML5 http://mashable.com/2011/04/29/html5-web-security/ o HTML5 Overview: A Look at HTML5 Attack Scenarios http://www.trendmicro.com/cloudcontent/us/pdfs/security-intelligence/reports/rpt_html5-attack-scenarios.pdf o ENISA (European Network and Information Security Agency) A Security Analysis of Next Generation Web Standards http://www.enisa.europa.eu/activities/Resilience-and-CIIP/criticalapplications/web-security/a-security-analysis-of-next-generation-web-standards o HTML5 Security Cheatsheet http://html5sec.org/

21

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