domingo, 20 de junio de 2010

¡No Quiero Características!


¿Quién rechazaría más características en su programa favorito? Después de todo, esa es La diferencia entre las versiones antiguas y las actuales. Sin embargo, no todas las características son realmente útiles e inclusive pueden acarrear problemas de seguridad; entonces deberíamos quererlas?

Ejemplifiquemos esto de las “características” con un programa muy querido por todos nosotros: Adobe Reader. También es mi favorito pero por otra razón: su seguridad deja tanto que desear que siempre me es útil para ejemplos de inseguridad. En fin, basta de divagar. Continuemos. Adobe Reader es un programa para ver archivos PDF, pero que también es capaz de ejecutar código JavaScript.

Se preguntarán para qué un lector de archivos querría ejecutar dentro de sí mismo un programa. Lo que queremos es leer documentos con texto e imágenes, no ejecutar código con un lenguaje de programación (algo parecido a la dupla macro-Word).

Aunque lo anterior pueda sonar lógico, nuestros amigos de Adobe no pensaron igual. Y le incrustaron una característica: JavaScript. Mala idea, creo yo. Muchas de las vulnerabilidades se cuelan al Reader por conducto de JavaScript. Hagan el ejercicio de googlear lo siguiente: “disable javascript adobe security”. Habrá N referencias para deshabilitarlo precisamente porque al hacerlo le damos vuelta a las debilidades asociadas a JavaScript en el Reader (que son bastantes).

Yo empecé un ejercicio hace un mes: deshabilité JavaScript en Adobe Reader (Edición-> Preferencias-> JavaScript-> Activar JavaScript para Acrobat). ¿Y saben? Ni lo he extrañado.

Y es más, intrigado por esta situación, me di a la tarea de buscar explícitamente un PDF que necesitara de JavaScript porque se me hizo sospechoso que ningún archivo me lo exigiera. Luego de un rato buscando, encontré una calculadora dentro de un PDF. ¿Y para este tipo de cosas quiero tener JavaScript en Adobe Reader?

Aclaremos. Habrá gente que requiera JavaScript en el Reader para realizar su trabajo (otros como yo se tienen que dar a la tarea de buscar explícitamente un PDF que así lo demande). Pero puedo asegurar que tanto dentro de un corporativo o en los equipos de casa, esta es una característica que la mayoría NO necesita. ¿No me creen? Hagan la prueba en su equipo ahora mismo. Y luego propongan la medida a su área de TI para que bajo un esquema pausado se deshabilite. El usuario que proteste es aquel que lo necesitará y nadie más.

En otro ejemplo, uno que está lleno de “características” de este tipo es Windows. De ahí que haya hasta libros dedicados a quitarle lo delicado y bonito para volverlo fuerte y feo, por decirlo así.

El software comercial vende a través del ofrecimiento de nuevas características en sus más recientes versiones. De otro modo, los usuarios no se verán decididos a gastar su dinero y eso no es bueno para el fabricante.

Desgraciadamente, entre todas estas “nuevas y mejores” características, cuántas son realmente necesarias y útiles para un porcentaje alto de usuarios (pero inseguras)? ¿Cuántas son del estilo de JavaScript en Adobe Reader? ¿Podríamos vivir sin el autorun en los USB que es usado sin lugar a dudas para distribuir malware? ¿Qué tal JavaScript en los navegadores, podríamos sobrevivir sin él? ¿Vivir sin Flash? La respuesta la tienes tú para poder llegar a un balance entre funcionalidad y seguridad.