{"id":11,"date":"2013-09-06T18:18:47","date_gmt":"2013-09-06T18:18:47","guid":{"rendered":"http:\/\/esferas.org\/msqlu\/2013\/09\/06\/reflexionando-sobre-el-spam\/"},"modified":"2013-09-06T18:18:47","modified_gmt":"2013-09-06T18:18:47","slug":"reflexionando-sobre-el-spam","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2013\/09\/06\/reflexionando-sobre-el-spam\/","title":{"rendered":"Reflexionando sobre el spam &#8230;"},"content":{"rendered":"<p><a href=\"https:\/\/esferas.org\/mt\/msqlu\/cliparts\/Spam_Mail.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"Spam_Mail.png\" src=\"https:\/\/esferas.org\/mt\/msqlu\/assets_c\/2013\/09\/Spam_Mail-miniatura-300xauto-17.png\" class=\"mt-image-left\" style=\"float: left; margin: 0 20px 20px 0;\" width=\"137\" height=\"137\" \/><\/a>&#8230; llego a la conclusi\u00f3n de que tiene\u00a0 poco remedio o si lo tiene es un asco.<\/p>\n<p>Porque veamos, o lo dejas en manos de un programa o tienes que hacerlo t\u00fa pr\u00e1cticamente con tus manitas. Lo primero conlleva un alto riesgo de perder correo leg\u00edtimo. Lo segundo es directamente desesperante.<\/p>\n<\/p>\n<p><!--more--><\/p>\n<p>Voy a dar un paso atr\u00e1s y a comenzar desde el principio. Dispongo de un servidor de correo funcionando bajo <a href=\"http:\/\/www.exim.org\">Exim4<\/a> en una distribuci\u00f3n <a href=\"http:\/\/www.debian.org\">Debian<\/a>. Hay un grupo reducido de usuarios en el sistema que deben identificarse correctamente para enviar a trav\u00e9s suyo y la redistribuci\u00f3n salvaje (<em>mail relay<\/em>) est\u00e1 contenida.<\/p>\n<p>La recepci\u00f3n de correo es entonces el \u00fanico punto en el que puedo hacer algo con respecto al <em>spam<\/em>. Anteriormente lo intent\u00e9 con servicios tipo <a href=\"http:\/\/spamassassin.apache.org\/\">spamassassin<\/a> y <a href=\"http:\/\/dspam.nuclearelephant.com\/index.shtml\">dspam<\/a> y tuve problemas de estabilidad debido a la gran cantidad de recursos que consum\u00edan para realizar su trabajo. Tambi\u00e9n prob\u00e9 el sistema de listas grises con <a href=\"http:\/\/greylistd.sourceforge.net\/\">greylistd<\/a> y funcion\u00f3 estupendamente hasta que me top\u00e9 con el inconveniente de los retrasos en la recepci\u00f3n de correos de confirmaci\u00f3n de\u00a0 compras y subscripciones a servicios. O pod\u00eda ajustarlo f\u00e1cilmente o no pod\u00eda emplearlo.<\/p>\n<p>La situaci\u00f3n se agravaba si no exist\u00eda en el sistema un panel de control v\u00eda web en el que los usuarios tuviesen la capacidad de ajustar la configuraci\u00f3n. Y hablo de algo simple y centralizado. Y no, no ten\u00eda ni tengo nada parecido.<\/p>\n<h3>Listas grises<\/h3>\n<p>Las listas grises son todo un invento basado en el principio de que los emisores de <em>spam<\/em> van a salto de mata y si no consiguen enviar el mensaje en el momento pasan a la siguiente v\u00edctima sin dudarlo. Si el servidor que recibe el correo no puede aceptarlo en ese momento, por exceso de carga u otro tipo de problemas t\u00e9cnicos, lo anuncia con un c\u00f3digo concreto para que el emisor sepa que debe esperar un tiempo para volver a intentarlo.<\/p>\n<p>T\u00e9cnicamente no veo la dificultad de que un emisor de <em>spam<\/em> se comporte siguiendo estas reglas pero por lo visto no suele ser as\u00ed, y es lo que sirve de rasgo distintivo entre un servidor <em>leg\u00edtimo<\/em> y otro que no lo es, y representa toda la base de funcionamiento de un servidor de listas grises. Llegas a enviar tu correo y el servidor apunta de d\u00f3nde vienes, qu\u00e9 traes y para qui\u00e9n (un triplete). Si no te tiene en los registros te dice que vuelas m\u00e1s tarde y te apunta. Si est\u00e1s ya inscrito y lo has intentado cierto n\u00famero de veces te deja pasar y te sit\u00faa en la lista blanca. Y eso es todo.<\/p>\n<p>La \u00fanica problem\u00e1tica grave -mientras los <em>spammers<\/em> no cambien su funcionamiento y anulen todo el sistema- es que en el mundo real nos encontramos con situaciones que requieren la recepci\u00f3n inmediata del correo. Como ejemplo he citado antes los comprobantes de compras; compra algo en un sitio nuevo y ya puedes esperar sentado tres o cuatro horas hasta que recibas sus avisos con la compra. Eso en los d\u00edas afortunados, porque ya me he encontrado con servidores de correo que te lo enviaban una vez, recib\u00edan la notificaci\u00f3n de vuelva usted en un ratito y nunca m\u00e1s. Y ah\u00ed te busques la vida, peque\u00f1o ser tembloroso.<\/p>\n<p>As\u00ed que lo de las listas grises es efectivo contra los ordenadores zombificados que se emplean como emisores de <em>spam<\/em> (la mayor\u00eda realmente) pero con el resto &#8230; A menos, claro est\u00e1, que sepamos de antemano cu\u00e1les son sus\u00a0 direcciones IP. \u00bf Y podemos ? Pues s\u00ed, podemos una vez que hemos recibido el correo basura. Y eso nos lleva al siguiente punto.<\/p>\n<h3>Clasificaci\u00f3n manual del Spam<\/h3>\n<p>Este proceso se lleva a cabo con bastante facilidad hoy en d\u00eda y consiste en utilizar el buz\u00f3n de entrada como base para desde all\u00ed mover mensajes basura a una carpeta concreta cuando los reconocemos como tales. Ahora ya tenemos un emisor, un contenido y un origen marcados como\u00a0<em>spam<\/em>.<\/p>\n<p>En el caso contrario, si un mensaje v\u00e1lido es marcado de alguna manera como basura y situado en dicha carpeta maldita, trasladarlo al buz\u00f3n de entrada significa justo lo contrario. Nos hemos equivocado (o algo as\u00ed) y el emisor, su origen o su contenido son buenos.<\/p>\n<p>Los lectores de correo avanzados como <a href=\"http:\/\/www.mozilla.org\/es\/thunderbird\/\">Thunderbird<\/a> incluyen mecanismos para realizar esta operaci\u00f3n con una \u00fanica pulsaci\u00f3n de teclado. Y eso lo facilita mucho, tanto que encontrar excusas para no hacerlo es dif\u00edcil.<\/p>\n<p>As\u00ed que ya tenemos realizada la clasificaci\u00f3n de correo como malo y bueno; dicha clasificaci\u00f3n es manual y subjetiva, pero parte de ella puede ser aprovechada ya que las direcciones IP pueden apuntarse autom\u00e1ticamente a un sistema de listas grises con lo que habremos construido la primera l\u00ednea de defensa. Es m\u00e1s, si nos equivocamos lo habremos hecho nosotros y no un programa, mucho m\u00e1s dif\u00edcil de corregir, y menos tendente a la negociaci\u00f3n.<\/p>\n<h3>Entre bambalinas<\/h3>\n<p>Si en el lado del servidor instalo un filtro de listas grises alimentado \u00fanicamente desde dentro ahorrar\u00e9 recursos en analizar contenido v\u00eda program\u00e1tica y eso ya representa quitarme de encima a un buen n\u00famero de emisores zombi.<\/p>\n<p>\u00bf C\u00f3mo hago para que obtenga informaci\u00f3n sin m\u00e1s intervenci\u00f3n del usuario que la de mover mensajes entre carpetas ? Lo primero que se me ocurre es crear un programa que monitorice dichas carpetas. No es imposible porque el n\u00famero de usuarios son finitos y existen mecanismos de sobra para realizarlo. Ya he escrito un par de servicios as\u00ed para mi empresa en los que monitorizo la salida de impresoras virtuales y de programas para transformar y enviar archivos a otros sitios.<\/p>\n<p>Una vez que un mensaje alcanza una de esas carpetas podemos analizarlo y extraer de \u00e9l cierta informaci\u00f3n como su IP de origen (que ir\u00eda directamente al filtro de listas grises) y el identificador del mensaje para el proceso contrario. Si incluimos tambi\u00e9n en la vigilancia el buz\u00f3n de entrada podremos determinar si el mensaje ha vuelto a \u00e9l y descartarlo como uno de los malos.<\/p>\n<p>Puestos as\u00ed, \u00bf qu\u00e9 tal si situamos tambi\u00e9n la carpeta de enviados en el sistema para obtener informaci\u00f3n de listas blancas ? Y me refiero a emisores principalmente. Con ellos podr\u00edamos indicar al filtro que, aunque la IP sea sospechosa, si el emisor se encuentra en ella se debe pasar el mensaje siempre.<\/p>\n<p>Y bueno, todo esto podr\u00eda mejorarse mucho a\u00f1adiendo a esta sencilla base de datos meta informaci\u00f3n sobre frecuencia de recepci\u00f3n y de env\u00edo. Con ella podr\u00edamos incluso condenar algunas direcciones IP al ostracismo m\u00e1s negro o, al contrario, ponerle una alfombra roja para que entre hasta la cocina.<\/p>\n<p>Jo, y es que \u00a1 a\u00fan hay m\u00e1s ! \u00bf Qu\u00e9 tal ir recopilando direcciones de correo para ir conformando una agenda para el usuario ? Malos, buenos y regulares &#8230; La leche de posibilidades.<\/p>\n<p>Voy a seguir reflexionando sobre ello.<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; llego a la conclusi\u00f3n de que tiene\u00a0 poco remedio o si lo tiene es un asco. Porque veamos, o lo dejas en manos de un programa o tienes que hacerlo t\u00fa pr\u00e1cticamente con tus manitas. Lo primero conlleva un alto riesgo de perder correo leg\u00edtimo. Lo segundo es directamente desesperante.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"1","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[2],"tags":[18,25,26],"class_list":["post-11","post","type-post","status-publish","format-standard","hentry","category-software","tag-administracion-de-sistemas","tag-email","tag-spam"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/11","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=11"}],"version-history":[{"count":0,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/11\/revisions"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=11"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=11"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}