¿Quieres colaborar con tu sitio en la lucha contra spam y los botnets?

En TodoWordPress ya hay varias entradas dedicadas a diferentes formas de mejorar la seguridad de tu bitácora. Sin embargo, aún no se ha ofrecido una descripción de un método bastante que – a la vez – ayuda a proteger tu sitio WordPress cuando lo tienes funcionando bajo un plan de hospedaje propio, y que participa en un proyecto colaborativo mediante el cual de hecho ayudas a proteger a otros sitios, incluso aquellos que funcionan bajo otro sistema y encima participa en la caza continua de los muchos y malvados rastreadores que nos bombardean con mensajes spam, bien sea por correo electrónico o con los dichosos comentarios fantasma y sus enlaces spam en tu bitácosa.

Antes que nada, una necesaria aclaración: no hay método que acierte al 100%. Dicho de otra forma: seguridad no es cuestión de tomar determinadas medidas, de incorporar algunos elementos, si no que es una disciplina necesariamente continua que ha de aplicarse con un rigor y un ahínco igual o superior a los malos que intentan las 24 horas al día fastidiarte tu sitio. Es bien sabido que los métodos de los maleantes cambian de forma continua, adaptándose a las medidas que se vayan desarrollando y adoptando en su contra. Al mismo tiempo, y según vaya avanzando WordPress, los posibles objetivos (léase: posibles vulnerabilidades) también cambian. Compárese con la seguridad de tu equipo PC: no vale acomodarse, ni pensar que con tal de emplear un determinado programa tengas asegurada la seguridad de tu equipo (sea de la marca que sea, y funcione con el sistema operativo que sea). Éste, pues, es un artículo que no pretende más que indicar una vía – entre otras posibles alternativas y/o medidas complementarias – para aclarar que no sólo es deseable, sino que muy posible y bastante fácil tomar cartas en el asunto.

Si estás hasta el gorro de spam, los botnets y los rastreadores que te van robando ancho de banda a la medida que intentan allanar la morada de tu sitio: esta entrada va por tí.

Participa en Project Honey Pot

Proyect Honey Pot es la iniciativa cooperativa que permite que tu colaboración tenga un gran efecto sinergético, ya que se suma los esfuerzos de todos los participantes en el proyecto; a lo largo de los años, somos muchos miles (incluyendo un servidor, desde hace varios años) quienes cooperamos en la caza de los maleantes. La inscripción es gratuita. Sólo hacen falta dos cosas:

  • Primero, que te registres como usuario (sigue para ello, desde la página principal, el botón verde ‘Sign Up For Free’ o bien, desde el menú, la opción ‘Create New Account’);
  • Segundo, que en tu sitio coloques o bien un enlace personalizado (el ‘QuickLink’) o bien un archivo PHP personalizado (una vez más: ninguna de las dos opciones afecta en absoluto el funcionamiento de tu bitácora WordPress).

Una vez que hayas te hayas registrado en Proyect Honey Pot como usuario (tendrás que validar la dirección de correo que usas, mediante clic en un enlace de confirmación que se te enviará tras registrarte) podrás elegir cualquier de los dos métodos: o bien solicitar un QuickLink personalizado, o bien un archivo PHP, también personalizado. Sinceramente, no hay una diferencia sustancial entre los dos métodos en cuanto a la consiguiente seguridad de tu sitio; simplemente, el método del archivo PHP hace que el ‘enlace secreto’ conduzca al mismo dominio en el que tienes tu bitácora, en lugar a otro sitio externo (por supuesto, de otro colaborador en Proyect Honey Pot). El método del ‘QuickLink’ es igual de eficaz, y más que nada: resultará bastante más sencillo aplicarlo, ya que no hace falta más que copiar y pegar un solo enlace. Una vez que te hayas registrado, puedes dar el segundo paso: aplicar tu enlace ‘QuickLink’ (o archivo PHP) de forma simple y totalmente automática en tu bitácora WordPress. Qué menos que emplear un plugin especial para ello: WP-HoneyPot.

El plugin WP-HoneyPot

Este plugin permite ‘sembrar’ un enlace imperceptible para el visitante (lógicamente, salvo que se visualice el código fuente de la página), en determinados lugares que se van cambiando automáticamente, sin afectar en absoluto ni la apariencia ni el funcionamiento de tu sitio. Esos enlaces sirven de trampa tipo ‘tarro de miel’ o honeypot en el argot, para los rastreadores que no respetan las reglas de juego. Conducen a una página ‘secreta’ (aunque sí puede visitarse y verse por seres humanos, no forma parte de tu bitácora) y que contiene una direcciones de correo especiales, usados para detectar, identificar y – ahí viene lo bueno – perseguir quienes perpetran envíos de spam. Aunque la información del plugin indica una compatibilidad ‘hasta’ la versión 2.6.3 de WordPress, puedo asegurar que funciona a la perfección con WP2.7.x así como la última versión de WordPress, en estos momentos WP2.8. El plugin se instala como cualquier otro, pero – una vez más – hay que estar inscrito y dado de alta primero, como participante activo en Proyect Honey Pot. Una vez instalado y activado el plugin en WordPress, su pantalla de opciones es bien simple como muestra este pantallazo:

Opciones del plugin WP-HoneyPot

Sólo hace falta marcar su actividad, y pegar la dirección completa del QuickLink o del archivo PHP, y ¡ya estás cooperando en la caza de rastreadores de spam! Cada vez que un rastreador visite uno de esos enlaces, quedará registrado, y si además tiene la temeridad de fusilarse la dirección de correo secreta escondida en la página tras aquel enlace y de enviar spam, ¡zas! no sólo se sabrá desde dónde se envió, sino también de dónde sacó la dirección. Y huelga la redundancia, en el caso de transgresores mayores, será perseguido hasta lograr sacarle de la red.

Sin embargo, y de por sí, el incorporar un tarro de miel no hace mucho para la seguridad de tu sitio. Afortunadamente, el mismo esfuerzo cooperativo también se puede aprovechar como escudo protector para tu bitácora. Aquí, tienes dos opciones que se detallan a continuación, y que funcionan apoyándose sobre Project Honey Pot:

Opción 1: el plugin http:BL

La alternativa más sencilla, aunque con un grado menor de protección, es emplear el plugin http:BL. A diferencia del plugin WP-HoneyPot, que en cierto modo puede decirse que ofrece una funcionalidad pasiva ya que sólo registrará aquellos visitantes que se pasen por alto las reglas de uso y con ello tienen probabilidad de ser de origen sospechoso, el plugin http:BL va más allá y hace una comprobación de cada visitante a tu bitácora. No temas: lo que hace el plugin es, simplemente, tomar la dirección IP del visitante e inmediatamente consultar la base de datos de Proyect Honey Pot para ver si esa misma dirección ha tenido recientemente ‘actividad sospechosa’ (o peor aún: que haya sido confirmado como presunto maleante). Dado que las consultas se realizan mediante el método de petición de DNS, tanto la operación de consulta como el procesamiento posterior son operaciones casi instantáneas; tiene pues un impacto prácticamente nulo sobre el tiempo de respuesta de tu bitácora. Dicho de otra forma: los visitantes no podrán notar que se les hace una comprobación instantánea. Como todo buen plugin para WP, http:BL se descarga e instala como siempre; una vez activado, estará disponible la pantalla de opciones que muestro a continuación – en dos secciones, por ser bastante larga:

Parte 1 de las opciones de http:BL

¡OJO! Los ajustes mostrados arriba no son las que se debe introducir. Para empezar, la clave http:BL ha de ser única, y sólo debe usarse la que Project Honey Pot te ha asignado de forma exclusiva a tí. Además, ten en cuenta que después de instalar y activar el plugin que mencioné antes – WP-HoneyPothay que esperar hasta que tu bitácora haya sido comprobada y dado de alta como ‘en estado activo’. Sólo entonces tendrás disponible la esencial clave del API http:BL (‘http:BL API key’) que deberás introducir en el campo mostrado arriba. Paciencia: a partir del momento de registrarse y de activar el plugin WP-HoneyPot puede transcurrir un cierto tiempo de espera hasta que se te haya comprobado la bitácora, y se te ofrece acceso a tu clave personalizada del API de http:BL.

Después de la esencial clave de http:BL se ofrecen las siguientes opciones:

  • Umbral de última actividad sospechosa registrada: aquí, aunque se muestre 14 días, conviene por lo general poner un plazo un poco mayor, por ejemplo 30 días. Si viene un visitante desde una dirección IP cuya última actividad sospechosa se registró en un plazo menor que lo indicado aquí, se le vetará el acceso (o será remitido automáticamente a la ‘página secreta’, según la opción correspondiente, como se explica más abajo).
  • El nivel de actividad sospechosa que se tolerará: a todos los ‘visitantes sospechosos o malos’ se les asigna una clasificación numérica; cuanto más elevado el número, peor el transgresor. Aquí, por lo general, conviene poner 25 como el nivel a partir del cual se le considera un visitante indeseado (y que por ello será o bien bloqueado o redireccionado, ver abajo).
  • Además, conviene marcar las tres casillas de ‘categorías de visitantes sospechosos’ – es decir: toda dirección IP sospechosa, así como todo rastreador confirmado como ‘malo’, y todo visitante desde una dirección IP confirmada como remitente de comentarios spam.
  • En el campo ‘Honey Pot’ se introduce la dirección (URL) o bien del ‘Quick Link’ o bien del archivo PHP. Al introducir esta dirección, cada visitante designado como ‘indeseado’ será reenviado automáticamente a esa dirección. De no introducir una URL ahí, el visitante será simplemente bloqueado.

El resto de las opciones del plugin son más bien a efectos de estadísticas, por si eres una persona curiosa ¿y quién no lo es? Veamos:

Más opciones del plugin http:BL

Con la primera opción, se activa el registro. ¡Ojo! Esto crea una nueva tabla, y si tienes mucho tráfico, se te inflará la base de datos rápidamente.

Con la segunda opción, sólo se registrarán los tipos malos; no se anotarán los que han sido admitidos a tu bitácora como ‘visitantes normales’ (mejor dicho: los que aún no se les asignó un índice de peligrosidad que supere los umbrales indicados arriba).

Si quieres, y tienes una o más direcciones IP que quieres excluir de la evaluación por http:BL, los puedes introducir separado por espacios en el tercer campo. Ojo, que por allí se te pueden colar; sobre todo si accedes a tu bitácora desde una dirección IP dinámica…

Las últimas opciones mostradas tienen que ver con estadísticas de http:BL que, si así lo deseas,  se presentarán en tu bitácora, de forma visible para tus visitantes (los que sean admitidos, claro). Puedes (des)activar las estadísticas, indicar el tipo de información mostrada (p.ej. “Se bloquearon X de un total de Y visitantes” o algo así), y si lo deseas, un enlace a o bien Project Honey Pot o al plugin http:BL.

En definitiva, el plugin http:BL es una buena, sencilla y bastante eficaz solución para cribar por lo menos los peores transgresores de entre tus visitantes, de forma ciertamente pasiva; es decir, aquellos desde cuya dirección IP se detectó con anterioridad un cúmulo de actividades sospechosas.

Opción 2: el plugin Bad Behavior

Si te pasa lo que a mí, es decir: te llegan con frecuencia rastreadores, botnets y maleantes de llamado perfil bajo – los malos en internet saben que se les rastrea, y por ello usan en muchas ocasiones o bien una gran red difusa de equipos controlados para sus fechorías, o encubren de otra forma su actividad para así dar un perfil lo más bajo posible, no te resultará suficiente una protección basada en http:BL. Lo que entonces necesitas es algo más agresivo; algo que actúa de forma más activa. Ahí encaja uno de mis plugins favoritos: Bad Behavior. Para que quede claro: Bad Behavior va mucho más lejos al detectar maleantes; sin embargo, también puede apoyarse – como una capa adicional, cosa que recomiendo de todo corazón – en la misma base de datos de Project Honey Pot que también utiliza http:BL.

Curiosamente, la pantalla de configuración de Bad Behavior es mucho más simple que aquella del plugin http:BL, como muestra claramente este pantallazo parcial:

Opciones del plugin Bad Behavior

Suponiendo que no interesa poner estadísticas de forma visible para el visitante en tu bitácora (cosa que se controla con la primera casilla), puedes tranquilamente copiar y usar los ajustes mostrados arriba, y que de hecho son los recomendados. Si elijes ‘Normal HTTP request logging’ se anotará en la base de datos toda visita; tanto de los visitantes admitidos como los bloqueados. Sin embargo, se anotará sólo información esencial, lo que reduce el lastre sobre tu gestor de base de datos al mínimo posible. No hagas un registro exhaustivo, al menos que p.ej. el autor del plugin te lo pida (en caso de tener algún problema) ya que en tal caso la actividad de la base de datos ¡aumentará de forma muy sustancial!

Hay una casilla que permite conmutar entre ‘comprobación normal’ y ‘comprobación estricta’. La diferencia es que con la comprobación estricta se denegará de cuajo el acceso a todo visitante que venga por medio de un servidor anónimo (proxy). En mi caso, no tengo ningún resquicio al bloquear tales visitantes; si les interesa leer lo que escribo, pues que vengan derechito desde su lugar de acceso a internet. De lo contrario, no me fío de entrada, y por ende no los quiero ni pintado. Créanme: más vale ser precavido y mal pensado que tolerante, en materia de seguridad. Excepto para los poquísimos visitantes desde, digamos, ‘ciertas agencias de ocupación reservada’ y, claro está, los visitantes ultra sensibles a la privacidad y quienes emplean servicios de acceso a internet (más o menos) anónimo, no creo que simpatice con quien acceda desde algún servidor proxy. De hecho, de los múltiples intentos diarios de inyectarme porquerías en mi bitácora, prácticamente todos lo procuran escondidos detrás de un servidor anónimo. Puerta en las narices, digo yo.

Las restantes opciones están para introducir la imprescindible clave de API de http:BL (el servicio de Project Honey Pot, no el plugin que se sirve del mismo nombre), el nivel máximo de clasificación como ‘sospechoso’ que se tolere, y el umbral en días dentro del cual debe haber tenido antecedentes el visitante en cuestión.

Una vez más: Bad Behavior es bastante tajante y muy poco tolerante. Por lo tanto, si tienes un relativo número elevado de visitas de (típicamente) chavales que se instalan todo tipo de gracietas en su navegador (ya saben: barras de búsqueda, iconos graciosos, etc.) el uso de Bad Behavior en modo ‘estricto’ les convertirá en candidatos más probables de ser negados el acceso; Bad Behavior se conoce al dedillo el comportamiento de PCs que han sido comprometidos (infectados con algún gusano, troyano, virus etc.) por lo cual no dejará un margen amplio de confianza.

Comentarios finales

Además de emplear lo mencionado anteriormente (WP-HoneyPot, con http:BL o bien Bad Behavior) conviene, a todas luces, añadir el viejo pero muy fiable filtro de Akismet. Aunque hay cierta duplicación en funciones con, por ejemplo, Bad Behavior, lo cierto es que se sirve de métodos muy distintos para hacer al fin y al cabo algo parecido: comprobar los visitantes, su historial, y su actitud / comportamiento en tu bitácora. De hecho, en las muy contadas ocasiones en las que se coló un maleante a Bad Behavior (casi sin excepción, al tratarse de un ser humano que manualmente intenta inyectar porquerías), Akismet ha sido capaz de reconocer – en su actuación como filtro de segunda línea – el contenido del ‘comentario’ que intenta dejar el energúmeno de turno. Créanme: tiene mucho sentido usar Bad Behavior en tandem con Akismet; considérese una protección de varias capas.

Hay otras medidas que pueden (y que conviene) adoptarse, además de usar filtros al estilo de Bad Behavior, Akismet y Project Honey Pot. Entre ellas pueden estar, por ejemplo en el caso de detectarse una oleada de ataques, el vetar el acceso a un proveedor de acceso a internet concreto mediante unas instrucciones en el archivo .htaccess. Debe reservarse ello para casos extremos, claro está; un paso más allá sería el bloqueo a todo un país (no se rían, que hay uno o dos que me dieron un quebradero de cabeza continuo – hasta que eliminé el problema de esa manera de raíz) pero, insisto, eso sólo debe aplicarse en casos extremos.

El caso es que hay una clarísima correlación entre ser ‘popular’ entre redes maleantes y tráfico innecesario que sufre el servidor de tu bitácora: cuanto más vetes el acceso a ellos, más disfrutará el auténtico visitante de un tiempo de respuesta rápida de tu servidor. En este caso, lo caro (por el lastre sobre el servidor) viene al final bastante barato (por aligerar el tráfico resultante hasta ‘auténticos’ interesados).

En fin: ha sido ésta una entrada de longitud enorme… Antes de despedirme quisiera, sin embargo, reiterar aquello con lo cual comencé: mantener la seguridad de tu bitácora no es cuestión de adoptar medidas concretas, sino de tener una determinada actitud y perseverancia. Lo que hoy en día son buenas medidas, puede que dentro de meses estará obsoleto. Dicho ello: el conjunto de medidas sugeridas en esta entrada lo tengo funcionando desde hace al menos dos años, en distintas configuraciones, y en múltiples sitios (bitácoras) bajo WordPress. Son medidas que, si no pueden garantizar seguridad, al menos sí lo pone muy difícil para los ataques ‘de rutina’ que se van lanzando las 24 horas del día. Y sobre todo: si tu sitio está debidamente protegido, has ayudado a crear una red internet más limpia – además de apoyar el esfuerzo de otros muchos que reducen el espacio a los maleantes que nos amargan la vida con sus mensajes de spam y sus ataques automáticos. Usando los consejos y los plugins mencionados participas en un esfuerzo común mucho más eficaz.

En definitiva: puedes ahorrarte muchos sofocones, muchos nervios, y mucho tráfico robado por cretinos que ni son humanos ni tienen interés alguno por leer los frutos de tus esfuerzos al mantener tu bitácora. Ya sabes: seguridad, eso sobre todo… Y si con ello además ayudas a cerrarles el paso a los tipos malos en internet ¿qué mayor satisfacción puede haber que aquel por ser partícipe de un gran esfuerzo colectivo para limpiar internet, sin inversión mayor que un poco de tu tiempo?

¡Buena suerte!

Comentarios
  1. Hola.
    Muy interesante el artículo…
    Mi sitio está bajo el incansable “cuidado” de Askimet (mas de 15000 spams bloqueados), pero me llamó mucho la atención el Project Honey Pot.
    Lo voy a estudiar un poco, a ver que tal anda, como complemento.
    Saludos,
    Gabriel

    Escrito el05/07/2009
  2. ¡Espero que resulte todo bien! Por si acaso: no era ni es mi intención sugerir “alternativas” a Akismet, como si no funcionase bien; de hecho, yo mismo también tengo Akismet como plugin fundamental además de otros que mencioné en el artículo. La cosa es encontrar un conjunto de plugins y otras medidas que primero, y por supuesto, ofrecen la protección adecuada y, en segundo lugar, no crean problemas por su uso combinado (y las combinaciones que menciono funcionan bien – aunque por supuesto hay otras combinaciones con plugins posibles).

    Se trata en definitiva de aplicar lo que mejor sirva tus necesidades. ¡Gracias por el comentario!

    Escrito el06/07/2009
  3. Me ha gustado el Proyecto Honey. En cuanto pueda me apunto.

    Escrito el09/07/2009
  4. esta es otra alternativa anti spam:
    http://wordpress.org/extend/plugins/trymath/

    espero les interese.
    salU

    Escrito el11/07/2009

DEJA TU COMENTARIO