Interesante debate sobre seguridad el que se ha abierto esta semana con la aparición de dos extensiones para firefox descargables e instalables desde Mozilla Add-ons y presuntamente infectadas con un troyano. Más adelante se ha comprobado que una de ellas estaba limpia.
Más allá de lo trivial, esto abre toda una reflexión sobre los procesos de calidad y verificación por parte de Mozilla de todas esas extensiones (software, en último caso) descargables desde su repositorio. A este respecto quiero destacar el post de Sergio, que creo que tiene mucha razón cuando recomienda ser prudente con el uso del navegador para tareas sensibles. Esto es obvio para muchas personas (entre los lectores de este blog imagino que obvio para casi todos), pero para la gran mayoría pensar en esos términos será algo nuevo porque no se lo han planteado antes.
Añadiría, además, que en nuestro papel de prescriptores tecnológicos (hablo por mí y mi entorno, sin ir más lejos) es importante que aparte de recomendar el uso de software libre y prácticas más seguras hiciéramos un especial hincapié en la prudencia y la sensatez. Evidentemente, los sistemas 100% seguros, fiables e invulnerables no existen. (Cualquiera que nos diga que su software o su sistema en general es 100% seguro puede ser inmediatamente catalogado como cretino sin miedo a equivocarnos.) Pero donde la técnica no puede llegar, si nos puede acercar (nunca llegaremos, obv) un buen conjunto de buenas prácticas. Al fin y al cabo, cuando hablamos de seguridad somos el eslabón más débil y tiene sentido reducir la inseguridad derivada del mal uso mismo de las herramientas.
Quiero comentar también una pregunta que hace Oscar en el blog de Sergio, que fue el auténtico disparador para escribir este post: un comentario que me quedó largo y al final he decidido ascender a post. Dice Oscar: «Realmente no tengo el tiempo ni los conocimientos para probar el código de uno u otro navegador. ¿cuáles serían las pautas para escoger el mejor o el mas seguro?»
Aquí viene mi respuesta:
Preguntar por las pautas para reconocer y escoger el navegador más seguro es una pregunta tan amplia que requiere una respuesta cuya extensión daría para escribir un blog (no un post, un blog) sólo para ir desglosando esas pautas.
¿El software libre es más seguro que el privativo? De entrada es auditable con mayor facilidad, lo cual no implica mayor seguridad, tan sólo que si hay código malicioso es posible que sea descubierto con menos retraso. El uso de software libre tiene incontables ventajas, pero éste no tiene porque ser intrínsecamente más seguro siempre. Es posible que lo sea en términos generales debido a la facilidad de auditoría (si no propia del usuario, sí de la comunidad –tan importante para que un proyecto de software sea verdaderamente libre), pero puntualmente puede ser inseguro como todo software.
A buen seguro que se aprovechará este incidente para lanzar miedo, incertidumbre y dudas sobre Firefox. Nadie debería alarmarse, sin embargo. Firefox sigue siendo una opción razonablemente segura que, usado con buen tino, conlleva menos riesgos que otras opciones.
Eso sí, en el tiempo por venir y si la tasa de usuarios de Firefox sigue creciendo, esta cuota de usuarios devendrá el mayor problema de seguridad para Firefox y sus programadores. Pensemos por un momento como lo haría un desarrollador de código malicioso: me va a costar el mismo tiempo (no tiene porqué, pero asumamos eso como una aproximación de orden cero correcta) desarrollar mi ataque contra un navegador específico. ¿Invierto mi tiempo para atacar al 1% de usuarios, al 20%, al 40%? Si asumimos también la inexistencia intereses concretos que decanten mi elección de objetivo, mi ataque irá dirigido al navegador que me abra la puerta de más víctimas potenciales: el navegador más utilizado. De entrada, esto convierte a IE8 en un blanco preferido, seguido de Firefox. No debería sorprendernos, por tanto, que en el futuro se hagan cada vez más frecuentes los ataques específicos contra este navegador que tiene el atractivo añadido (para el atacante) de ser multiplataforma.
Por otra parte, no me apasionan verdaderamente los estudios comparativos de seguridad entre diferentes navegadores. La utilidad de esos estudios comparados la pongo en cuarentena porque estas comparativas someten a los navegadores a ataques ya conocidos y los ataques más devastadores son siempre los innovadores, los no conocidos. Dicho de otra forma, equivale a exacerbar la seguridad aeroportuaria porque una vez hubo un atentado con aviones cuando todos sabemos que el próximo ataque masivo no tendrá lugar de la misma forma que el anterior: tendrá otra forma inesperada y nos cogerá por sorpresa. Esa nueva forma inesperada y la consecuente sorpresa son la base del éxito del atacante. Por eso creo que los benchmarks aportan información diferente a la que muchas veces se espera obtener de ellos.
Digo que pongo en cuarentena la utilidad de estas comparativas como medidores de seguridad, pero no la información más sutil que se deduce de ellos: es inadmisible que un navegador sea vulnerable a ataques conocidos, demuestran que el equipo a cargo de ese software no ha hecho su trabajo como debiera. Y, tristemente (porque pone en peligro a multitud de personas), no es infrecuente que se descubran bugs y vulnerabilidades en IE (no es fijación, es que nos guste o no, IE sigue siendo el navegador más utilizado en términos absolutos en febrero de 2010) que ya existían en versiones arcanas de este navegador o que el mismo tenga bugs sin parchear durante meses. (A la hora de escribir este post, IE8 lleva 8 días sin parchear un bug moderadamente crítico que permite la exposición de datos sensibles a un atacante remoto; casi ná. Para 2 años con otras vulnerabilidades sin parchear.)
Desde que una nueva vulnerabilidad se anuncia hasta que se parchea, la aparición de xploits que abusen de ese fallo es exponencial. Decía antes que los ataques innovadores son más peligrosos porque se da por sentado que los ataques ya conocidos harán que se modifique el software en cuestión para mejorar su defensa. Si este parche no llega, el atacante tiene todas las ventajas: un ataque bien conocido (algo que facilita el abuso de la vulnerabilidad) para el que el defensor no se ha preparado. Sin afirmar nada acerca de la seguridad de un software concreto, ese tipo de laxitud con los parcheos suponen todo un argumento para dejar de utilizar un software determinado.
Y todo esto lo digo tranquilamente, sin olvidar que todo software es susceptible de tener errores (por supuesto, también nuestro amado Firefox) que lo hagan susceptibles a ataques. Pero, ¿qué vamos a hacer con eso? No se puede evitar, lo único que se puede hacer es parchear cuanto antes. En eso Mozilla ha dado la de cal y la de arena en apenas unos días: un sistema de verificación del software de su repositorio que se ha demostrado imperfecto (quizá por confianza) que tardará en recobrar la confianza que poseía entre el público permitió que se colara malware, sin embargo han sido muy rápidos en la limpieza de las extensiones y la supresión de esa amenaza concreta, que además demostró ser menor de lo que parecía al principio.
[Y sí, no está libre de fallos ni lo estará nunca, pero en estos momentos no voy a sorprender a nadie si digo que recomiendo usar Firefox. ¿Acaso esperaban ustedes otra cosa? La última recopilación de extensiones de seguridad que vi la hicieron los chicos de Security by default.]