Web Scrappers (Evitar robo de contenido)

9 comentarios · 1.675 lecturas · blogs

Los Web Scrappers o ladrones de contenido son un tipo de robot o crawler que indexa contenido recopilando información y artículos de otras webs para -generalmente- duplicarlo, añadiendo bloques de publicidad y lucrarse con el esfuerzo de otros (cosa que vulnera licencias, todo sea dicho).

web scrapper scrappers

Este tipo de técnicas habitualmente generan mucha controversia, ya que a algunas personas les parece totalmente lícito, mientras que a otras les parece una estrategia abyecta.

Entrando un poco más en este tema encontramos los llamados planetas, que no son más que (en ámbitos web) un sitio web que recopila a través de feeds RSS los artículos de diferentes blogs o webs (normalmente siguiendo una misma temática o criterio).

Es una idea genial. Hay multitud de planetas muy interesantes que personalmente sigo (aunque siempre suelo leerlos desde la página original). Sin embargo, hay varios puntos que considero importantes como no permitir comentarios en el planeta, dirigir al lector a la web original, no incorporar publicidad, citar la fuente de los artículos u otros detalles que estarían restando mérito al autor del escrito.

¿Cómo puedo localizar web scrappers?


Es un tema bastante complicado, pero vamos a intentar simplificarlo. Para «robar» contenido, un scrapper o robot spammer (emails, comentarios, trackbacks, ...) tienen que acceder al feed RSS (usualmente llamado index.xml), así que vamos a aprovechar esa acción para encontrarlos. Necesitaremos acceso a nuestro fichero de logs, generalmente access.log o access_log. Si tenemos acceso SSH a nuestro servidor, mejor que mejor:

egrep "/index.xml" access_log | cut -d" " -f1,12- | sort | uniq -c | sort -n | tail -25

Con este comando conseguiremos separar los accesos al feed RSS, obteniendo la IP y el User Agent, ordenándolo por número de accesos. Finalmente, obtendremos un listado de los 25 accesos más frecuentes.

Hay que hacer notar que del listado resultante, varios accesos serán de usuarios desde navegadores o agregadores como Bloglines o Google reader. Añadiendo el siguiente pipe al comando anterior podríamos filtrar la mayoría de agregadores, quedando:

egrep "/index.xml" access.log | egrep -v "subscribers|Gecko|Liferea|Google Desktop|Akregator|Vienna|Tumblr|Feedshow|Gregarius|Googlebot|Feedreader" | cut -d" " -f1,12- | sort | uniq -c | sort -n | tail -25

Después de esto, obtendríamos -ahora si- un listado más aproximado de usuarios «sin identificar» y posibles scrappers. Hay que ser muy cuidadoso e ir investigando cada entrada. Una serie de consejos:

  • Verifica las últimas entradas primero: La primera cifra que aparece es el número de accesos, o lo que es lo mismo, el usuario que más frecuente accede a tu feed RSS. Interesa descubrir quienes son estos individuos.
  • No bloquees agentes como Googlebot o MSNbot: Los buscadores también acceden a tu feed RSS. Asegurate de excluirlos de tu lista.
  • Comprueba las IPs o hosts sospechosos: En Whois DomainTools puedes comprobar las ips para saber si son spammers conocidos.
  • Investiga el User-Agent: Busca por google, en nuestro diccionario de robots, crawlers y spiders o en sus comentarios.
  • Ojo con los User-Agents «Java/x.x.x»: En la mayoría de los casos, son bots maliciosos.

Si no estás seguro de que el usuario que miras sea un robot, siempre podrías investigar más en tus logs a ver en que otras páginas ha estado, a parte del feed RSS:

grep "IP" access_log | cut -d" " -f7

Finalmente, echa un ojo al artículo bloquear con .htaccess para saber como bloquear a los posibles scrappers que hayas encontrado.


Robar contraseñas o claves de MSN Messenger

174 comentarios · 287.671 lecturas · seguridad

¡OJO! Este artículo NO trata de cómo "robar" contraseñas o claves, cosa que es imposible. En la mayoría de los casos, las claves son robadas por descuídos de la víctima, aquí tratamos como evitarlos.

En realidad, tras este presuntuoso título de artículo, lo que quiero es concienciar a todos aquellos que utilizan contraseñas o claves (no sólo para MSN Messenger o hotmail, aunque es el caso más común) sino de cualquier otro servicio, sobretodo los basados en internet, donde la seguridad cobra más fuerza e importancia.

Muy a menudo recibo correos o comentarios en algunos artículos de usuarios que piden ayuda o preguntan como les han robado la cuenta de hotmail (u otras), algunos incluso preguntan como saber la contraseña de otros MSN Messenger...


Mis recomendaciones son las siguientes:

  1. Crea cuentas en lugares seguros:
    Si necesitas crearte una cuenta de correo (u otra), hazlo en tu casa con tu ordenador. En lugares externos como cybers o PCs ajenos nunca se sabe si la clave se almacenará en el PC o si existen una especie de virus/troyanos llamados keyloggers que registran todo lo tecleado.
  2. Utiliza el teclado en pantalla en lugares públicos
    Para teclear contraseñas y evitar el posible uso de keyloggers que las registren, puedes usar el Teclado en pantalla que se encuentra en Programas / Accesorios (o en Inicio / Ejecutar... / osk). La mayoría de las páginas de cuentas bancarias ya traen alguno parecido incorporado, que incluso cambia el orden de las teclas para mayor seguridad.
  3. No marques la casilla «Recordar contraseña»:
    Si te conectas al MSN Messenger (u otro servicio) desde un ordenador que puedan utilizar otras personas, acuérdate de desactivar la opción Recordar contraseña. Si no lo haces, cualquier otra persona puede conectarse sin conocer la contraseña y cambiarla.
  4. Establece una pregunta secreta muy complicada:
    Esta es bastante importante. La mayoría de robos de cuentas que existen por ahí no son de malvados hackers que te tienen manía, sino de Lamers que se aprovechan de usuarios despistados o sin experiencia. Normalmente la víctima establece una respuesta secreta tan fácil que cualquiera que conozca a la víctima o hable un poco con ella se la puede sacar fácilmente (nombre de su mascota, apellidos del padre, lugar de residencia, etc...). Evitar cosas tan sencillas.
  5. Ten un antivirus actualizado siempre activo:
    Algo que no puede faltar hoy en día es tener un Antivirus monitorizando cualquier paso que se da. ¡OJO!: Un antivirus que no se actualiza es casi como no tener antivirus. Si no tienes ninguno, puedes descargarte algún antivirus gratuito o libre. Si sospechas que tienes algún virus y necesitas comprobarlo YA, pégale un repaso a tu sistema con este Antivirus de Panda Online (Usa ActiveX y necesita Internet Explorer). No está de más tener también un firewall, aunque su correcta configuración pasa a ser algo más compleja.
  6. Asegúrate de no introducir claves en páginas falsas:
    Otro de los trucos para extraer contraseñas de víctimas, es realizar una réplica casi idéntica de la página donde nos pide la contraseña. Para evitar esto es imprescindible andar con pies de plomo y comprobar antes de escribir cualquier contraseña la dirección donde la estamos enviando. ¡Cuidado sobre todo en las páginas de tarjetas virtuales! Se utiliza mucho en ellas.
  7. Cuidado con los sitios que te piden tu fecha de cumpleaños:
    Una técnica que se usa mucho últimamente es la de enviar a la víctima (por correo electrónico generalmente) invitaciones para escribir su fecha de nacimiento (u otros datos) que generalmente son los que se escriben en la pregunta/respuesta secreta.
  8. Uso de ingeniería social para robar claves:
    No existe ninguna forma «genial» para robar claves de otras cuentas de correo. Si esto fuera así, todo sería un auténtico caos, y nadie tendría a salvo su correo y sus datos. Existen muchos espabilados que utilizan trampas para robar cuentas, anunciando un método revolucionario para obtener contraseñas de correo. Por ejemplo:

    ¡OJO! Esto no es un método para robar cuentas de correo, es un engaño muy frecuente que suelen utilizar los "ladrones".

    Como hackear una cuenta Hotmail:

    • Abres tu cuenta y le mandas un mail a la dirección userpass@hotmail.com (este correo varía, puesto que es el que se crea la persona que recibirá las contraseñas: director@, hotmail-bot@, dictores-hotmail@...) que es un bot autómata de envío de passwords.
    • En el asunto debes poner el correo (hotmail) de tu victima.
    • Ahora en el campo del mensaje escribir esto:

      Forgot password_auto_bot
      form_pwd; login= CUENTA DE LA VICTIMA
      form.login.focus( ); form.passwd.gets=?;
      sendto=ESCRIBE AQUÍ TU LOGIN;
      form.passwd=ESCRIBE AQUÍ TU PASSWORD
      form_pwd; value= “adm”;


    Parece una tontería, pero con esta técnica se consiguen robar multitud de correos, en el que la víctima envía su clave para (supuestamente) robar la clave de otra persona. Otro sistema bastante extendido es aquel en el que se le envía un correo desde un supuesto email de directores de hotmail, pidiendo el nombre de la cuenta y la clave para ampliar el espacio o no borrarlo de la base de datos de Hotmail. ¡No respondas a estas trampas!
  9. Genera claves inteligentes:
    Lo ideal para una contraseña sería crear claves que no formen palabras o que no existan. Existe un tipo de ataque para "reventar" contraseñas que se basa en las palabras de un diccionario. Si la clave no contiene palabras de diccionario, más probabilidades tiene de no poder ser descubierta. Una curiosidad es que muchos sistemas no son capaces de reventar contraseñas que incluyen la letra «ñ», así que si es posible, utilízala.
  10. Longitud o tamaño de la clave:
    La última, pero la más importante. Una clave de tamaño pequeña es muy fácil de descubrir por un método llamado fuerza bruta. Vía MundoGeek (excelente blog, por cierto) me encuentro con una tabla donde podemos observar lo que se puede tardar - en el peor de los casos, y siempre teniendo en cuenta las características del sistema (tipo de autenticación, número de intentos, velocidad de respuesta, etc...) en "reventar" una contraseña según su tamaño:

    Longitud Todos los caracteres Sólo minúsculas
    3 caracteres 0.86 segundos 0.02 segundos
    4 caracteres 1.36 minutos 0.46 segundos
    5 caracteres 2.15 horas 11.9 segundos
    6 caracteres 8.51 días 5.15 minutos
    7 caracteres 2.21 años 2.23 horas
    8 caracteres 2.10 centurias 2.42 días
    9 caracteres 20 milenios 2.07 meses
    10 caracteres 1,899 milenios 4.48 años
    11 caracteres 180,365 milenios 1.16 centurias
    12 caracteres 17,184,705 milenios 3.03 milenios
    13 caracteres 1,627,797,068 milenios 78.7 milenios
    14 caracteres 154,640,721,434 milenios 2,046 milenios

    Video (Objeto multimedia)
    Para que una contraseña sea realmente segura, debe tener como mínimo 7 caracteres (si utiliza minúsculas, mayúsculas y números) o 9 caracteres (si sólo utilizas minúsculas, mayúsculas o números).

Y tú, ¿cuántos caracteres tienen tus contraseñas normalmente? ¿Cuántos puntos conocías acerca de este tema? ¿Alguno que se me haya pasado por alto?


Sistema antispam para blogs

32 comentarios · 18.459 lecturas · manuales

¡OJO! Este artículo está indicado para programadores interesados en evitar spam en su blog.

Varios lectores de Emezeta y algunos amigos me han preguntado en muchas ocasiones como consigo evitar los terribles ataques de spam que afectan a casi todos los blogs.

¿Quién no ha recibido una horda de comentarios en perfecto inglés felicitandonos por nuestro sitio e invitando a ingresar a un casino online, alargar ciertas partes de nuestro cuerpo o tomar pastillitas azules cuál protagonista de Matrix o de otras películas menos conocidas?

Hace tiempo, hablé de SpamPoison, un sistema para «envenenar» listas de correo de spammers. Ahora voy a hablar de una técnica que he ideado (desconozco si ya existía, yo al menos la comencé a utilizar a base de pruebas) para evitar el spam en blogs, al más puro estilo de una trampa para ratones.

trampa ratones

Ventajas del sistema antispam: Hasta el día de hoy no he tenido ningún problema. El sistema atrapa todos los comentarios de spammers, dejando pasar sólo a los usuarios legítimos.

Desventajas: Puede generar confusión a usuarios que utilicen navegadores de tipo texto, pero además de poco frecuente es muy improbable, puesto que estos usuarios son bastante experimentados. Es posible, también, que si este sistema se comienza a implementar, los spammers busquen formas de «reventarlo».

antispam emezeta

Para implementar el sistema antispam utilizaremos PHP (o cualquier lenguaje del lado del servidor que dominemos) y CSS. ¡Si! ¡Has leído bien! ¡¡CSS!!.

¿Y cómo es posible? ¡CSS es un lenguaje para visualización y no para programación! Fácil, en realidad lo que hacemos con nuestro sistema es obligar a ir por un camino a los spammers y por otra a los usuarios legítimos.

Vamos a centrarnos en el formulario de envio de comentarios. Por norma general, tiene varios campos (input o textarea) para enviar la información. Cómo mínimo nombre y comentario, frecuentemente también el correo, página web y/u otros.

La gracia del asunto está en un campo input de texto ubicado al principio del formulario.

antispam emezeta

Dicho campo de texto (que le pondremos de nombre name) tiene un valor por defecto (por ejemplo, el texto: duquesadealba.). Además de esto, le aplicaremos un estilo CSS: display: none. Con esto ocultaremos el campo de forma que NO es visible para los usuarios, pero sí lo es para los robots o spammers.

¿Fácil, no? Pero aún no hemos terminado. El formulario, cómo todo form de su género que se precie, nos llevará a un script (PHP, ASP, etc...) que tratará el comentario para añadirlo a la base de datos, etc...

El truco del sistema antispam reside en que los spammers, por naturaleza, cambian todos los campos llamados comment, comentario, name o nombre por la publicidad que quieren hacer. ¡Perfecto! Ellos mismos han caído.

antispam emezeta

Un usuario legítimo no verá el campo oculto con CSS y por lo tanto enviará el comentario con la palabra que hemos elegido para identificar usuarios legítimos: «duquesadealba». En cambio, un spammer llegará al formulario y reemplazará el campo llamado name pensando que se trata del nombre y mostrando así el plumero.

Sólo resta añadir una comprobación en el script que recibe los comentarios, para que si el campo «name» no contiene la palabra escogida, no lo añada a la base de datos.

Se puede mejorar el sistema, añadiendo una lista de palabras clave personalizadas, en lugar de una sola palabra.

Y, como ya dije antes, los usuarios con navegadores de tipo texto (que no interpretan CSS) si que verán ese campo «oculto», pero podría bastar con poner un texto «no modificar» o algo similar.


Evitando spammers y trolls

6 comentarios · 3.859 lecturas · blogs

Ya he hablado con anterioridad sobre sistemas de protección antispam para evitar bots que dejen publicidad en comentarios o referers, pero antes de continuar, hagamos una aclaración para los despistados:

Spam:
Mensajes basura, publicidad no deseada.

Existen muchos métodos ideados para combatir estas plagas de spam. La idea es bloquear el acceso a aquellos usuarios (o robots) que acceden a nuestro sitio expresamente para dejar publicidad. Un método bastante usado es el conocido CAPTCHA, una pregunta al usuario en cuestión en la que se muestra un gráfico con letras y/o números no-interpretables por una máquina para verificar si se trata realmente de una persona o un robot.

captcha

Este sistema -que comenzó a usarse sobre el año 2000- ha funcionado bastante bien, aunque acarrea cierta desgana a los usuarios. M. Almeida modificó ligeramente este sistema para hacerlo más agradable a los visitantes y que siguiera evitando sólo a las máquinas (bueno... y a algún usuario despistado) pidiendo introducir el apellido de Manuel.

Existen más sistemas para evitar el spam cómo por ejemplo Spam Poison, que se encarga de envenenar a los robots que recogen correos e-mail por la red. Además, manipulando el htaccess como nos hace referencia Inma, podemos deshacernos de muchos spammers.

El problema llega cuando de lo que nos queremos deshacer no es sólo de spammers, sino de trolls. Otra definición para despistados:

Trolls:
Persona que provoca y escribe mensajes incendiarios para incitar al caos en una discusión.

Debemos tener en cuenta nuevos conceptos para evitar a los trolls. La norma por excelencia es moderar los comentarios, bien no dejando pasar ninguno hasta que se revisen (como creo que hace minid, corrijanme si me equivoco) o suprimiendo la opción de comentar, como recientemente hicieron los Microsiervos (en mi opinión una lástima, pero poniendome en su pellejo, comprendo que fue necesario porque no sabemos discutir).

Sin embargo, el sistema que quizás mejor esta funcionando (en mi humilde opinión claro) es el de establecer un Karma, como han hecho los chicos de Barrapunto o meneame:

Karma:
El Karma es un sistema de moderación en la que cada usuario nuevo empieza con un Karma 0, y siempre que éste no sea negativo será candidato a moderar. Asi cada usuario tendrá privilegios o desventajas según sus actos.

Me parece un tema de debate realmente bueno. ¿Conoces algún sistema antispam o antitrolls más? ¿Cuál crees que es el mejor? ¿Conoces o tienes alguna idea sobre otro?


Páginas: 1 ... ... 1


Artículo de http://www.emezeta.com/

6 consultas efectuadas / Página generada en 0.04 segundos

Programado íntegramente por José Román (Manz) en XHTML y CSS estándar.

Sindicado bajo Feed RSS. Contenido bajo licencia Creative Commons

Estadísticas de visitas · Términos y condiciones · Contacto · Publicidad · Preguntas frecuentes (FAQ)