La compu. Un viejo enemigo que todavía ronda la Web
La tormenta que Twitter sufrió con estoicismo en estas Pascuas no dejó víctimas ni daños materiales, pero sí una lección. La vulnerabilidad conocida como XSS, por Cross-site Scripting , sigue entre nosotros, lista para darnos cualquier día de estos un tremendo dolor de cabeza. (A propósito, si se está preguntando - de nuevo - por qué los expertos en informática viven inventando siglas raras y por qué, en este caso, no usaron, al menos, CSS en lugar de XSS, es por dos motivos. Primero, CSS se podría confundir con Cascading Style Sheets , un lenguaje para presentar documentos en HTML o XML; más siglas, ya lo sé... Segundo, la X es usada con frecuencia en las siglas inglesas en lugar de la palabra cross.)
En realidad, XSS es el nombre que se usaba originalmente para la vulnerabilidad que nos ocupa, pero hoy la etiqueta ya le tira un poco de sisa. No necesita ser entre sitios ni tiene que ver sólo con scripting . Pero lo seguimos usando; peor sería inventar nuevas siglas. Además, que sea extemporáneo es realmente lo de menos. En pocas palabras, un pirata puede incluir su propio código Javascript (o Flash o Java ) en una página con la vulnerabilidad XSS; cuando damos clic a ese link o se ejecuta automáticamente por las características propias del sitio, el guión toma código malicioso de otro sitio (de allí lo de cross-site ) y hace alguna de esas cosas que luego salen en los diarios.
Hay varios tipos de ataques XSS (tres, al menos) y su descripción minuciosa llevaría unas cuantas decenas de páginas. La mejor explicación que he visto es la de Technet, sitio de Microsoft para profesionales de tecnología informática, que el lector con inquietudes técnicas puede consultar en technet.microsoft.com/en-us/library/cc512662.aspx
Necesidad y urgencia
Más que los pormenores de código e implementación, lo realmente preocupante es lo que un pirata, un delincuente o, como en el caso de Twitter, un adolescente aburrido pueden hacer aprovechando las vulnerabilidades XSS. Por ejemplo, robarnos las cookies de sesión en un sitio para luego hacerse pasar por nosotros. O enviarnos por mail un link que lleva a un sitio que ejecuta un guión Javascript que le permite al atacante ejecutar comandos en nuestra PC. O robar datos sensibles, como nombre de usuario y contraseña, lo mismo que otros, todavía más críticos, y, por supuesto, explotar agujeros de seguridad en el navegador Web que estamos usando. Sabemos, dicho sea de paso, que el Internet Explorer y el Firefox , los dos browsers más usados, están repletos de vulnerabilidades.
Absurdo como suena, este problema no sólo es un viejo conocido que lleva más de 15 años dando vueltas por Internet, sino que parece haberse instalado como una suerte de mala hierba implacable. Wordpress y Joomla!, dos de los más populares software para crear sitios Web, han sufrido una cantidad de vulnerabilidades XSS; Wordpress o algunos de sus plugins expusieron doce en 2008. Y, desde luego, los servidores Web más utilizados, el Apache y el Internet Information Server , de Microsoft, han revelado fallas de XSS. Cada una fue corregida oportunamente, pero eso no significa que no haya otras ni mucho menos que todas las capas de software que hoy constituyen una página Web hayan sido parchadas adecuadamente. Hasta Google sufrió esta vulnerabilidad en septiembre de 2007, que parchó a los pocos días. De hecho, el 68% de los sitios Web son vulnerables a que un pirata informático inyecte código malicioso y ataque así a los visitantes.
El panorama puede parecer algo ominoso, así descripto, pero no hay que desesperar. Hay formas de protegerse que prácticamente anulan todo intento de atacarnos por medio de XSS. Si es así, usted me dirá, ¿por qué estamos ocupándonos de esto?
Simple: cada día para venir al trabajo tomo la misma autopista y la misma avenida. Voy a exactamente a 55 kilómetros por hora, cosa de que ninguna cámara me capture in fraganti yendo a 65 km/h y me saque puntos a causa de un malentendido entre máquinas (la cámara y el velocímetro de mi auto). Además, sé que la mejor receta para evitar accidentes es no ir rápido; lo sé por experiencia y porque así lo dicta la física elemental que nos enseñan en la secundaria. Pues bien, todos los días cientos de autos me pasan como si estuviera parado.
Si suena el celular y estoy manejando, no atiendo, punto. Si suena cuatro veces seguidas, OK, estaciono y veo qué puede ser tan urgente. Nunca es tan urgente. Sin embargo, todos los días veo no dos ni tres, sino docenas de conductores hablando alegremente por teléfono. El otro día, en la esquina del diario presencié una escena que me heló la sangre.
Un costoso auto importado último modelo venía por el carril central de la avenida Madero. Por el carril adyacente a la vereda, un enorme camión de dos acoplados. Al llegar a la esquina del diario, justo donde me encontraba parado, el auto traspasó el camión y dobló a toda velocidad por Tucumán casi en ángulo recto, pasando por delante del enorme transporte, a 15 centímetros. Digamos veinte. Y el sujeto hizo esto con una sola mano mientras con la otra sostenía el celular. Si en ese momento una persona hubiera cruzado Tucumán con el semáforo a favor, ese demente habría causado una tragedia. Tal vez el conductor hizo esto por una cuestión de necesidad y urgencia . No sé. Quizás iba a desactivar una bomba en una estación de subte o algo así. Pero lo dudo. En el conjunto, fue simplemente una maniobra más antisocial que las que veo a diario: tranquilas calles de barrio por las que se circula a 60 u 80 kilómetros por hora, motos que zigzaguean entre autos y ómnibus en un culebreo suicida, bicicletas en las autopistas, camiones de tonelaje transatlántico disparados como misiles en zonas superpobladas. Al parecer, todos tienen necesidad y urgencia.
Así que una cosa es que existan medidas sencillas para evitar accidentes y otra es que las pongamos en práctica. Aunque no puedo hacer nada desde esta columna para reducir el esperpéntico tránsito porteño, aquí van las medidas para evitar los accidentes XSS.
Téngame paciencia
Una de las principales medidas es la de no seguir links alocadamente. Si un sitio apunta a lo que se nos dice que es un video de YouTube (como ocurrió esa vez en Facebook y terminó siendo un virus), lo más razonable es ir a YouTube y buscar el video directamente allí, en lugar de hacer clic en el link original. En un sitio donde los vínculos son provistos por los usuarios, como en redes sociales y foros, nada impide que un pirata coloque un URL malicioso.
Dado que la vulnerabilidad está del lado del servidor Web, es decir, la computadora a la que nos conectamos para visitar un sitio, no hay ningún parche que podamos instalar en nuestra PC, como en el caso de las brechas de seguridad en Windows o el navegador. Aquí es menester andarse con cuidado. Desde luego, sería mucho mejor que los sitios no contuvieran esta vulnerabilidad, pero dadas las condiciones, eso no va a ocurrir durante bastante tiempo todavía. La trama Web es tan apretada y densa que aunque Apache, Microsoft, Wordpress, Joomla! y otros fabricantes hacen un esfuerzo constante para corregir las fallas, muchas quedan sin parchar y otras nuevas van apareciendo.
Desactivar Javascript en el browser es una medida de prevención sólida, aunque los ataques pueden ejecutarse también por medio de Flash y Java . El problema es que muchas funciones válidas de los sitios están en Javascript , por lo que esta defensa no resulta sustentable. Con todo, si quiere probarla, basta con subir el nivel de seguridad del Internet Explorer 6 o 7 a Alto .
Mi mejor consejo es, en cambio, descargar e instalar el Internet Explorer 8 ( www.microsoft.com ), que viene con un filtro contra guiones XSS maliciosos. Está activado de forma predeterminada y así hay que dejarlo. En términos de seguridad, el IE8 contiene, por lo que vengo viendo, avances notables.
La verdad es que el Internet Explorer viene ofreciendo la posibilidad de deshabilitar por completo el scripting para luego activarlo en los sitios que sabemos que son seguros desde la versión 4. Se trata de sus famosas pero poco usadas Zonas de Contenido ( Herramientas> Opciones> Seguridad ). En Opera ( www.opera.com ) se puede hacer algo semejante con las preferencias específicas de cada sitio ( Herramientas>Opciones inmediatas ).
Aunque Firefox ( www.mozilla.org ) no ofrece estas opciones, existe una extensión llamada NoScript ( noscript.net ) que termina resultando, si tenemos un poco de paciencia, más útil que las Zonas de Contenido del IE o las opciones del Opera .
¿Por qué paciencia?
Al principio, luego de instalarlo por primera vez, el NoScript se parece a -¿cómo decirlo con elegancia?- un fuerte dolor de espalda. Nada anda, a los sitios les faltan fragmentos, animaciones, videos, fotos. Un desastre. ¿Qué está pasando? De forma predeterminada se han bloqueado por completo Javascript, Java y Flash. Cuando entramos a un sitio aparece una banda amarilla al pie de la página con un botón de opciones. Y ahí está la magia del NoScript . Al darle clic al botón se despliega un menú donde están todos los dominios cuyos guiones y otros contenidos han sido bloqueados.
La flexibilidad de esta extensión es simplemente extraordinaria. Es posible permitir los guiones del sitio que estamos visitando, pero no los que pudieran ser de sitios externos (una de las formas típicas de ataques XSS), además de darle paso a objetos de la página uno por uno, manualmente. El sitio de NoScript , aunque en inglés, ofrece una completa explicación de sus características y funciones.
No obstante, aun sin leer nada de esto, y al igual que un firewall , NoScript es un estorbo durante una media hora, porque hoy y desde hace mucho las páginas están sembradas de objetos dinámicos, guiones, marcos, videos embebidos, aplicaciones Java y una docena de cosas más. No hay que desanimarse. Como la mayoría de nosotros se circunscribe a un número más o menos pequeños de sitios, basta navegar un rato para que NoScript aprenda qué páginas, guiones y objetos hemos permitido, y sólo advertirá cuando aparezca algo raro. Ante la duda, bloquee lo que se sale de lo común. Luego, si descubre que ese objeto o guión que no había visto antes se requieren para que la página funcione (videos embebidos, buscadores y una cantidad de cosas más), con otro par de clic podrá permitir su ejecución.
lanacionar