La herramienta de seguridad web copia los movimientos de las aplicaciones

Hoy en día, es fácil para los desarrolladores crear aplicaciones completas que se ejecuten dentro del navegador. Mantener estas aplicaciones a salvo de los piratas informáticos es otro asunto.





Juegalo de forma segura : Los investigadores de Microsoft han utilizado Ripley para proteger varias aplicaciones web, incluidos los juegos.

Con esto en mente, los científicos de Microsoft Research han presentado una nueva forma de proteger aplicaciones web complejas al clonar de manera efectiva el navegador del usuario y ejecutarlo de forma remota.

Muchas de las últimas aplicaciones web dividen su código ejecutable entre el servidor y el cliente. El problema es detectar si el código que se ejecuta en la PC del hogar del usuario se ha visto comprometido de alguna manera. La nueva solución de Microsoft, conocida como Ripley, fue anunciada el martes en la Association for Computing Machinery's Conferencia de seguridad informática y de comunicaciones en Chicago.



Ripley va más allá de los esfuerzos anteriores para asegurar la integridad de las aplicaciones web. Lleva la protección de la integridad a su extremo lógico, dice Adam Barth , investigador de la Universidad de California, Berkeley, que se especializa en la seguridad de las aplicaciones web. No estuvo involucrado en el proyecto. En lugar de simplemente verificar que una solicitud proviene del sitio web adecuado, Ripley verifica que las acciones del usuario estén realmente permitidas por la interfaz de usuario de la aplicación.

Ripley evita que un usuario malintencionado o un pirata informático remoto altere el comportamiento del código que se ejecuta dentro de un navegador web al crear una copia exacta del entorno computacional y ejecutar esa copia en el servidor. Luego, Ripley envía todas las acciones del usuario, incluidos los clics del mouse, las pulsaciones de teclas y cualquier otra entrada, en un flujo de eventos comprimido desde el cliente al servidor. Esta secuencia se ejecuta a través de la aplicación cliente clonada en el servidor, y el comportamiento de ese doppelganger virtual se compara con el de la aplicación que se ejecuta en el navegador del usuario en casa. Si hay alguna discrepancia, Ripley desconecta al cliente.

No se puede confiar en nada de lo que pasa en el cliente, dice Ben Livshits , investigador principal de Microsoft Research sobre el proyecto Ripley. Es básicamente el diablo en el navegador desde el punto de vista del desarrollador.



Ripley es invisible para el usuario final y no afecta el funcionamiento normal de una aplicación web. Solo los tipos malintencionados tienen que preocuparse por lo que sucede una vez que envían un resultado, dice Livshits.

Uno de los desafíos que Livshits y su colaborador en Microsoft, Emre Kiciman , que se enfrentó al construir Ripley fue cómo crear una copia de todo el entorno del cliente, la aplicación web y el motor de software que lo ejecuta, que era lo suficientemente pequeño como para ser práctico para un servidor web de alto volumen que maneja solicitudes de cientos o miles de usuarios en una vez.

En el servidor, dijo Livshits, si tiene que ejecutar la réplica dentro de un navegador, incurriría en una huella de memoria de 50 a 60 megabytes por instancia de navegador. La solución que idearon él y Kiciman fue ejecutar un navegador sin cabeza, un emulador que simula solo las funciones de un navegador web esencial para Ripley. Esto redujo la huella de memoria del navegador y la aplicación clonados entre uno y un megabytes y medio por aplicación.



Al reducir el clon del lado del servidor de la aplicación basada en navegador del usuario, Livshits y Kiciman, junto con colegas de la Universidad de Cornell, Nueva York y el Instituto Indio de Tecnología, Delhi, redujeron aún más la sobrecarga de rendimiento de Ripley. De cinco aplicaciones experimentales, que incluían un carrito de compras, varios juegos y un motor de blogs, el aumento promedio de la latencia debido al mayor esfuerzo de la CPU del servidor fue de alrededor de un milisegundo.

En algunos casos, Ripley incluso mejoró el rendimiento de las aplicaciones web, porque el clon del lado del servidor de la aplicación cliente se reescribe en .NET, un lenguaje de programación que es de 10 a 100 veces más rápido que el JavaScript que se ejecuta en el lado del cliente. A veces, esto permite a Ripley predecir cuál será la próxima solicitud de aplicación del lado del cliente incluso antes de que el cliente la haya realizado, y enviar datos de forma preventiva al cliente.

Esta es una situación mágica, si lo piensas bien, dice Livshits. Conduce a llamadas a procedimientos remotos de latencia cero.



En la actualidad, los desarrolladores interesados ​​en utilizar Ripley para proteger sus aplicaciones web tendrían que volver a implementar las ideas del documento presentado sobre Ripley en su propio marco de aplicación web favorito. Sin embargo, Livshits y Kiciman piensan que Ripley podría ayudar a democratizar una parte esencial de la seguridad de las aplicaciones web, poniéndola al alcance de desarrolladores no expertos.

Hasta ahora, creo que la gente ha atacado estos problemas manualmente, dice Kiciman. Obtiene expertos que se sumergen y adaptan sus aplicaciones para enfrentar estos desafíos, pero eso no es muy escalable y no es muy ágil cuando necesita hacer cambios. Lo que estamos tratando de hacer es llevar la plataforma de desarrollo web a un punto en el que cualquiera pueda aprovechar los tipos de tecnología que utilizan estos expertos.

Barth de UC Berkeley señala que Ripley es parte de una tendencia más amplia en soluciones que protegen la integridad del código del lado del cliente al asegurar que no ocurra ningún comportamiento no autorizado. Veo a Ripley más como un experimento mental: ¿Qué pasaría si el servidor validara todo? él dice. El trabajo sugiere que la seguridad se beneficiaría si validamos más de lo que estamos validando hoy.

esconder