web scraping

Qué es el web scraping y cómo protegerse

Qué es el web scraping y cómo protegerse

El web scraping, o spidering, consiste en explorar recursivamente un sitio web para bajarlo a un disco duro y analizarlo (no confundir con web crawling).

La abogada especialista en Derecho Informático y Nuevas Tecnologías, Natalia Ospina Díaz, lo define así:

Se trata de la captura automatizada de información que se encuentra disponible en la web para ser vista, leída, analizada y si se quiere, utilizada por los internautas.

Fuente: https://www.ambitojuridico.com/noticias/tic/automatizacion-de-las-actividades-humanas

Y tiene razón, si yo publico contenido de índole tecnológica, pues es para que nos beneficiemos todos. Todos podemos escarbar y descargar estos artículos en nuestros discos duros. Además hace parte de las estrategias de marketing digital. Incluso, una versión menos agresiva, el crawling, lo usan Yahoo y Google para indexar nuestras páginas en sus resultados de búsqueda. Eso si, siguiendo ciertas reglas y con moderación.

Pero! cuando los internautas, empresas o gente mal intencionada usan estos procesos automatizados de forma abusiva con bots o web scrapers, para recolectar toda la información posible de un website, o detectar vulnerabilidades, entonces la cosa se pone color de hormiga.

web scraping

Modelo de acción de estos rastreos abusivos

Esos procedimientos automatizados rastrean tu sitio web a razón de 5, 10, 15 páginas/s, o más (lo que sus recursos de máquina y banda ancha les permita). Esto hace que la carga de la CPU de tu hosting se eleve casi al 100%, y tu sitio se ponga lentísimo. Entonces, también podemos considerar dicho procedimiento como un ataque.

web scraping

Las flechas indican la sobrecarga del hosting a causa del rastreo abusivo

Medidas de prevención al web scraping


Una forma de mitigar este abuso es bloqueando la dirección IP de su origen, y con algo de comandos de Linux. Entonces, para los que tienen su sitio web en un hosting, el procedimiento es revisar el archivo log correspondiente a su dominio, dentro de la carpeta access-logg. Luego, con el comando tail lo monitoreamos en tiempo real, así:

_$ tail -f access-logs/eldominio.com-ssl_log

La salida del comando es como se ve en la imagen:

web scraping

Detección de bots rastreando abusivamente nuestro sitio web

Fíjese que la salida del comando muestra un excesivo tráfico generado por un par direcciones IP (subrayas en rojo). Esa es precisamente la procedencia del ataque. Entonces, vamos al módulo de bloqueo de direcciones IP para restringirlas

web scraping

Módulo de bloqueo de direcciones IP, IPBlocker

web scraping

Ingreso de las direcciones IP atacantes dentro de IP Blocker

Ya con eso seguramente al atacante le saldrá un error en su sistema así (línea roja):

web scraping

Ataque generado con el bot OWASP Zed Attack Proxy (ZAP). Cuando bloqueamos su IP, recibirá un código de restricción 403

La verdad es que una forma bastante radical para detener este ataque, aunque poco eficiente, porque el atacante puede cambiarse de rango de direccionamiento IP. De todas formas este procedimiento de monitoreo nos sirve como resolución de otras anomalías relacionadas con las conexiones IP en nuestro hosting.

Puede conocer más sobre Seguridad Informática, aquí

Plugin Blackhole for Bad Bots


Para WordPress existe una forma más eficiente de mitigar este asunto. Se trata de utilizar el plugin Blackhole for Bad Bots que funciona de maravilla para detener estos abusos:

web scraping

Blackhole for Bad Bots

Este plugin es bien ingenioso. Le coloca una trampa al web scraper en el archivo robots.txt, y cuando caiga, el plugin de inmediato restringe su dirección IP y su rastreo se detendrá.

La trampa consiste en una línea de código que se coloca en el archivo robots.txt, la cual le informa a los bots legales que no la lean. De este modo, los bots de buena reputación tales como los de Yahoo, Google y Bing, harán caso y no pasa nada. Pero los bots abusivos generalmente desobedecen y caerán en la trampa.

Por ejemplo, en la siguiente imagen observamos un intento de rastreo generado por el bot HTTrack (www.httrack.com). El plugin Blackhole for Bad Bots entra en acción y lo bloquea, produciendole un código de restricción 403.

web scraping

Intento fallido de rastreo abusivo

Diferencia entre Web Crawling y Web Scraping


La diferencia entre estos dos conceptos parecidos, es que el primero rastrea páginas web siguiendo sus los enlaces internos y externos, y a veces con un presupuesto de tiempo. El segundo es un rastreo más recursivo, y por ende, agresivo que produce efectos indeseados.

 

Comparte esto en
Publicado en Seguridad Informática.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *