Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

17 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
domingo, 7 de enero de 2007
Hoy voy a comentaros un truco que utilizaban los spammers hace varios años, y que, por suerte, ya está algo desfasado gracias a las medidas de seguridad impuestas por las aplicaciones de correo, si bien todavía puede tener su utilidad gracias a los Webmails o herramientas cliente basadas en Web.

La técnica en cuestión consistía en el envío de mensajes HTML en los que eran incluidas referencias a imágenes externas. Si conocéis algo este lenguaje de marcas, sabréis que para hacer referencia a una imagen en un contenido hipertexto basta con utilizar el tag IMG como se muestra a continuación:

<img src="DirecciónDeLaImagen" alt="Contenido textual alternativo" >

El texto "DirecciónDeLaImagen" es la URL del recurso gráfico en cuestión, por ejemplo, http://www.google.com/images/logo_sm.gif. De esta forma, cuando un browser encuentra una marca de este tipo, acude a la dirección especificada, descarga el archivo (imagen, en este caso) y lo muestra al usuario integrado en el contenido de la página.

El caso es que una URL puede contener algo más que la dirección de un recurso, puede ir acompañada de parámetros. Por ejemplo, es perfectamente válido, y lo habréis visto más de una vez el uso de cadenas más complejas, de tipo http://www.loquesea.com/imagen?usuario=jmaguilar. Esto provoca que, cuando el navegador va a la dirección indicada a obtener el archivo, transmite al servidor el parámetro indicado (en el ejemplo, le transmitiría un parámetro llamado 'usuario' con un valor igual a 'jmaguilar'). El servidor en el que se aloja, a la vista de ese parámetro, puede actuar como considere oportuno.

Aplicado al siniestro mundo del spammer, esto ofrece unas posibilidades realmente interesantes. Pongamos que envío un mensaje a una víctima, incluyendo una imagen en cuyo origen (src) añado un parámetro que permite al servidor determinar el usuario que está solicitando la misma. Cada vez que este incauto individuo abra este mensaje, recibiré en mi servidor una petición de la imagen que, gracias al parámetro, sé de quién proviene, permitiéndome por ejemplo:
  • primero y principal: asegurar que la dirección de email a la que envié el mensaje es correcta, y pasarla a mi carpeta de "destinatarios seguros". Puedo seguir enviando, pues, mensajes a esta persona con la seguridad de que lo va a recibir. De hecho, supongo que este es el motivo de que los que usamos la misma cuenta desde hace años, recibamos tal cantidad de spam. Seguro que en su día hemos confirmado, sin saberlo, nuestra existencia, y estamos en las "listas selectas".
  • contar el número de veces que la persona abre el mensaje. ¿Podría esto servirme para determinar que realmente mi víctima está algo más interesado de lo normal en mi producto?
  • modificar la imagen al vuelo, variando detalles del mensaje. Por ejemplo, si es la primera vez que el usuario accede, utilizar un mensaje publicitario; si accede de nuevo, ofrecerle una oferta más jugosa; si vuelve a acceder, emplear técnicas más agresivas de venta.

Afortunadamente, desde hace tiempo los clientes de correo basados en aplicaciones de escritorio no permiten, sin consentimiento del usuario, la descarga de imágenes externas, lo que evita la petición del fichero al servidor. Hay otros tipos de cliente, como los webmails que, en cambio, siguen descargando del origen cualquier recurso externo.

En cualquier caso, la técnica es interesante y demuestra, una vez más, la habilidad de los expertos del lado oscuro para aprovechar las posibilidades (o agujeros) existentes en cada momento en beneficio propio.

martes, 19 de diciembre de 2006
La proliferación de herramientas de procesado e interpretación de textos en los mensajes de correo hizo pensar a los spammers que quizás no estaban usando el medio adecuado. Ciertamente, ¿para qué utilizar palabras cuando pueden utilizar imágenes, que ya sabemos que valen mil veces más, a la vez que evitamos (al menos temporalmente) los sistemas de detección de spam basados en análisis de contenidos textuales?

Esto, unido a la posibilidad de incluir mensajes publicitarios mucho más espectaculares que llamaran la atención a potenciales clientes de los servicios o productos ofertados, hizo que pronto comenzaran a proliferar los mensajes con imágenes, que enviaban o bien incrustadas en el contenido del mensaje (cortesía del estándar MIME) o bien a través de un mensaje HTML en el que se introducía una imagen externa (con el tag IMG).

En cualquier caso, hace tiempo que las imágenes forman parte del fenómeno spam. Próximos posts irán dedicados a analizar distintas técnicas aplicadas para hacer más efectivos y menos detectables por herramientas automáticas los mensajes no deseados.
domingo, 3 de diciembre de 2006

Vía Coding Horror he encontrado un interesante ejemplo de lo que ocurre cuando "se permite a los desarrolladores diseñar el interfaz de usuario de una aplicación".

Cuadro de diálogo

Obviamente, el ejemplo está tomado de un extremo; de la misma forma, hay desarrolladores que son capaces de crear auténticas maravillas funcionales sobre interfaces exquisitos.

En fin, el que esté libre de pecado que tire la primera piedra. ;-)

sábado, 2 de diciembre de 2006
La siguiente técnica para 'colar' spam a las herramientas de filtrado tiene su gracia. Consiste en dibujar, utilizando para ello caracteres estándar, lo que se desea transmitir. El dibujo puede, por supuesto, contener mensajes de texto, imágenes o lo que sea; fundamentalmente dependerá de la habilidad de los creadores (o de la aplicación utilizada para generarlos, todo sea dicho).

Un ejemplo:


           .ed$$$$$eec.
.e$$$$$$$$$$$$$$$$$$eeeee$$$$$c
d$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$c
.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$b.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $b
d$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$F
.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$**$ ^$$$$
4 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*" 4$$F
4 '$$$$$$$$$$$$$$$$$$$$$$$$$$$" 4$$
4 $$$$$$$$$$$$$$$$$$$$$$$$$$$ .$$%
d $$$$$ $$$$$*$$$$$$c ..e$$"
- 4$$$$ ^$$$$ *$$$$$F ^"""
4$$$$ 4$$$$ z$$$$$"
4$$$$ 4$$$$ ^$$$P
^$$$$b '$$$$e "F


El inocente elefantito podría ser el logotipo del producto que nos itentan vender, y un mensaje con este contenido pasaría absolutamente desapercibido para los sistemas automáticos de detección de spam.

Ahí va otro, este de creación propia, con un mensaje más directo:


## ## ## ###### ###### ##### ######
## ## ## # # # # # # #
## ## ## ###### # ## ##### ######
### ## # # ###### # # # #


Este último ejemplo se aproxima bastante a la realidad de este tipo de mensajes; lo habitual es que se envíen textos cortos, mensajes directos con publicidad explícita, dibujados a base de incluir cientos de caracteres. Se puede ver un ejemplo en la siguiente captura de pantalla.

¿Y cómo se combate esto? Probablemente, el mejor Captura de pantalla con varios mensajes spam ASCII artmétodo sea, de nuevo, el análisis estadístico de la información contenida en el mensaje, teniendo en cuenta tanto los caracteres que aparecen como los espacios. Sin embargo, no parece muy sencillo determinar unas reglas que indiquen, sin riesgo a equivocación, que se trata de un mensaje de correo basura, por lo que sería un buen candidato a ser detectado por sistemas de aprendizaje automático y reconocimiento de patrones.

Quizás la suerte que tengamos los sufridos usuarios sea que los mensajes a transmitir por esta vía deben ser bastante cortos ("Viagra $2,5" o similares) por limitaciones lógicas de espacio, lo cual, sin duda, repercutirá en una utilización muy baja por parte de los spammers, que seguro prefieren la espectacularidad de otros medios.


viernes, 24 de noviembre de 2006
Pues eso, ya estoy aquí. Después de una estancia en territorio Marroquí de cinco días, he tenido la ocasión de saborear la enorme alegría de volver a casa. Y es que todos estos viajes acaban resumiéndose en una palabra: "Paliza".

Desde el punto de vista profesional, un éxito. Se han cerrado aspectos de vital importancia para el proyecto, y se han creado nuevos vínculos con el personal "de allí", fundamental para poder continuar trabajando juntos y de forma coordinada.

Durante estos cinco días hemos estado en Casablanca, Kenitra, y Tánger. Las jornadas de reuniones eran amplias, lo cual no ha permitido dedicar mucho tiempo a hacer turismo, sólo una tarde-noche, que nos hemos acercado a un mercado (zoco) en Rabat, la capital del reino, donde hemos podido disfrutar el ambiente mercantil de estos lugares y comprar algunos detallitos.

La opinión del país con la que me he ido es diferente a la que tenía antes de visitarlo, formada únicamente por tópicos y comentarios puntuales de conocidos que habían pasado allí algunos días de vacaciones. Aunque sí, es cierto que las diarreas han tenido su protagonismo en la visita, que hay mucha pobreza y se persigue bastante al forastero con objeto de sacarte algunas perrillas, y que la conducción es en general muy temeraria, pero no es menos cierto es que los marroquíes resultan muy acogedores, con una gran simpatía y educación, y se esfuerzan enormemente en agradar al visitante, que la comida es muy buena, y que las ciudades (al menos las grandes) son muy parecidas a las occidentales.

En fin, ahora toca dormir como un oso, que el fin de semana es corto.
Nos vemos.
domingo, 19 de noviembre de 2006
Otra de las técnicas favoritas de los spammers es intentar despistar a las herramientas de detección de mensajes no deseados. Conociendo el funcionamiento de éstas, basado principalmente en realizar análisis estadísticos del contenido, es fácil crear mensajes con 'ruido' añadido que inutilicen estas técnicas.

Un ejemplo simplista: en un mensaje con el texto "Vendo Viagra Barato, Paisa", el 25% del contenido hace referencia al conocido medicamento, un 50% contiene palabras relacionadas con la venta, y un 25% restante no está claramente clasificado. Con estas proporciones, podemos asegurar que se trata de un mensaje intentando comercializar este producto.

Sin embargo, si al mensaje anterior le anexamos un capítulo del Quijote, los porcentajes anteriormente obtenidos caerían hasta ser prácticamente nulos, de forma que no podría determinarse con claridad el sentido del mensaje, justo al contrario que antes.

Esto está bien, pero, siguiendo con el ejemplo, ¿cómo colocan un capítulo del Quijote en un mensaje? He observado varias técnicas:

  • la primera, anexándolo sin más. Es decir, después del contenido que pretenden enviar al usuario, algunos retornos de carro, y seguidamente, el capítulo del libro de Cervantes.
  • otra, utilizando texto con el mismo color que el fondo del mensaje. Por ejemplo, texto blanco sobre fondo blanco, De esta forma, el usuario no es consciente ni siquiera de la existencia del mensaje.
  • más, cambiando el tamaño de letra a tamaños de pixel. Así, el usuario puede, a lo sumo, divisar unas leves líneas al final del mensaje publicitario.
  • una combinación de las dos anteriores. Esto no hay quien lo vea.

Ea, seguimos en el próximo post, que ya será después del viaje.