domingo, 10 de octubre de 2010

Sandboxeando al Reader.


A inicios de este mes de octubre, Adobe nos dejó ver algunos detalles de lo que va a ser su tecnología sandbox que incorporará en una futura versión de Adobe Reader y que supone un avance en la protección contra las numerosas debilidades que son explotadas en cada nueva versión del Reader.

Una sandbox es una tecnología de seguridad que tiene como fin crear un ambiente virtual donde se ejecuta un programa para evitar en lo posible que se lleven a cabo acciones fuera de lo permitido. Es una “cajita de arena” para que los niños buenos y sobre todo los malos se empujen, se caigan y jueguen luchitas sin que se hagan demasiado daño ya que caerán sobre la suave arena y no podrán dañar el resto del kinder. Es una especie de caja de arena para confinar y limitar las acciones tanto de los “buenos” como de los “malos”.

En Adobe Reader esta funcionalidad también se le conocerá como “Protected Mode” y no sólo prohibirá ciertas acciones abusadas como la instalación, borrado o modificación en el sistema, sino que también “encerrará” al código malicioso que se quiera distribuir vía un archivo PDF sin mencionar que prevendrá la elevación de privilegios en el sistema del usuario.

El sandbox del Reader va a delimitar el “parseo” al leer el archivo PDF y limitará la nefasta característica para ejecutar JavaScript. Se implementará el concepto de un “intermediario” para los procesos que requieran salir del sandbox (así se implementa un control para que no cualquier proceso hijo de vecino haga lo que se le de la gana en el sistema). Finalmente, se incorporarán dos niveles de privilegio: el del usuario y el del PDF; así podremos bajar un archivo de Internet y éste se ejecutará en un contexto de muy bajos privilegios (restringidos) mientras que nosotros seguiremos trabajando con privilegios –normales- de usuario.

El concepto de sandbox no es nuevo. Uno de los más recientes en usarlo fue Chrome. También Java tiene el suyo, por decir unos ejemplos. ¿Es un sandbox “la neta”? No. Pero es un gran avance y para mí será un parte-aguas en lo que a la (in)seguridad que el Reader representa. No es secreto que la sandbox de Java tiene en sí misma debilidades que han sido explotadas en el pasado y por otro lado la seguridad de estas sandbox depende de la seguridad que pueda proveer el sistema operativo (nos quedamos indefensos si nos atacan el sistema operativo para “pagarle” al sandbox).

Más detalles técnicos los pueden encontrar en el blog de Adobe. Lo más importante a recordar es que estén al pendiente de cuando salga esa versión para que privilegien su instalación por la mejora ya expuesta (pueden suscribirse al RSS de seguridad de Adobe o seguir a @vupen que provee este tipo de información).

Sin olvidar que no deben de esperar a futuros sandbox, ya pueden sandboxear varios programas con por ejemplo SandboxIE, ya lo probaron?

2 comentarios:

Fernando Alameda dijo...

Que tal!

Respondiendo a tu última pregunta, sí lo usé y fue específicamente ese programa llamado sandboxie.

Fue hace dos años en un proyecto de seguridad en equipos móviles.

Era en ese entonces un programa muy bueno con las características que ofrecía en su versión gratuita y en su versión comercial mucho mejor. Desgraciadamente cuando tenías que hacer la implementación era un tanto difícil el uso para los usuarios finales, ya que si por ejemplo sandboxeabas el Internet Explorer y querías recuperar algo de esa sandbox tenías que asignar una carpeta especial en el sistema de archivos y obligatoriamente guardar ahí el archivo, cosa que no hacían siempre los usuarios y les causaba confusión, además de problemas con periféricos como impresoras...

Pero para un usuario avanzado la verdad es que me gustó mucho...

Saludos!

@FernandoAlameda

Fausto Cepeda dijo...

Creo que para usuario final, el hecho de tener una de estas heramientas es muy positivo. Ahora ya ves, salió el Adobe Reader X con sandobox integrada, supuestamente. Todavía no he bajado esta nueva versión, pero lo estaré haciendo pronto. Gracias por el comentario!!! Sl2.