Filtros de contenido web - Tecnología explicada


Antes que nada, por más que el título sea del tipo “te enseñamos a cuackear al FBI en 3 pasos!” lo que realmente quiero explicar aquí es cómo funcionan los protocolos que usamos para la navegación web, para que entendamos cómo funcionan los filtros que se usan para restringir la navegación y entender entonces cómo los podemos saltar sin usar nada “ilegal”.

Cuando introducimos alguna dirección en nuestro navegador, damos clic a algún enlace o incluso refrescamos una página, le estamos dando la orden de que se conecte a un sitio determinado. En ese sitio están uno o varios servidores que se encargan de respondernos, básicamente. Ésta es la travesía que se da cada vez que eso ocurre:

  • Le damos a nuestro navegador una URL (una dirección web) y le encomendamos la misión de conectarnos a ella.
  • El navegador averigua que dirección IP corresponde a ese dominio, y entonces establece la conexión. Ésto es una consulta DNS, prácticamente el pilar más importante de Internet.
  • Lo siguiente, es tráfico web (HTTP), accedemos a los archivos del sitio web y nuestro navegador lo renderiza y despliega mágicamente.

Éste es el esquema de una conexión a internet, comparando los esquemas de una conexión libre y otra con un CFS (Content Filtering Service – Servicio de Filtrado de Contenidos) o similar:

Entonces, cada vez que intentamos acceder a una página web en lugar de directamente conectarnos, nuestra puerta de enlace a internet revisará si lo que nosotros estamos solicitando* cumple con alguna regla*, y en base a ésto nos lo permitirá o no.

Formas de bloqueo (o Reglas):

A- Por dominios: la forma más fácil para bloquear un sitio, se da interceptando el paso 1 cuando decimos a nuestro filtrador de contenido (que puede ser un proxy, un software de filtrado de contenidos o un simple firewall) que no permita la conexión a tal sitio, ingresando manualmente las direcciones. Si él detecta que alguien ingresa esa dirección a su navegador, corta la conexión.

*B- Por Categorías: *ésta es una forma avanzada, presente en software especializado para filtrado de contenidos. Se basa en que, humanos visiten cada sitio web del mundo (cíclicamente) para clasificar la Internet. Entonces, cuando alguien revise facebook.com se sabrá que está en la categoría de Red Social, de abc.com.py dirá que es un Portal de noticias, etc. Es un procedimiento simple de aplicar pero complejo de mantener, que permite bloquear una multitud de sitios web con tán solo seleccionar la categoría a la que pertenece y de paso bloquear sitios similares. Cuando se intenta el acceso a un sitio prohibido generalmente se corta la conexión, y/o se muestra en lugar de la página un mensaje advirtiendo del bloqueo.

*C- Por palabras clave: *se dispone de una lista negra de palabras clave  (como por ejemplo youtube, videos, mp3, descarga) que el sistema detecta en una cadena de búsqueda. Si uno busca éstas palabras en algún motor de búsqueda o forman parte de algún sitio web, el resultado de la será bloqueado impidéndonos acceder a miles de sitios o alternativas a sitios que probablemente ya están bloqueados. Generalmente son complemento de otros filtros, ya que de por sí sólos protegen poco.

D- Filtrado a nivel de aplicación: éste filtro, más que usarse para bloquear páginas web es para manejar aplicaciones concretas. Su funcionamiento es bastante parecido al de un antivirus, se analiza y documenta el comportamiento y el tráfico generado por  aplicaciones conocidas, luego se categoriza y organiza en un índice. Así, uno puede controlar completamente el funcionamiento de varias aplicaciones (como programas de descarga P2P, mensajería instantánea, control remoto, Streaming, etc.) con tan solo usar esas categorías o firmas para identificarlas.

E- Por puertos: es el más básico, generalmente en lugares donde no se debe tener ningún tipo de navegación web. El bloquear el puerto 80, nos priva de toda navegación HTTP. El bloquear el puerto 53 nos priva de consultas DNS, y así para bloquear manualmente distintos tipos de conexiones.

D- Por DNS: Muchos servicios de DNS, como OpenDNS permiten que el Administrador de Red use sus servicios y los personalice. Entonces, cuando un usuario quiera conectarse a algún sitio, como el servidor DNS que utilice será el que el Administrador le haya configurado, sufrirá los bloqueos que éste haya configurado.

Tip: una consulta DNS directa, es la que resuelve cualquierdominio.com a una IP del tipo 123.123.123.123 para saber adonde conectarse. Una consulta DNS reversa, es la que resuelve ésta IP 123.123.123.123 a cualquierdominio.com para saber adonde se está conectando. Algunos filtros, pueden tener la opción de hacer ésta consulta reversa, y entonces saber que cuando nos conectamos a 123.123.123.123 estamos conectándonos a cualquierdominio.com, y bloquear la conexión en caso de estar prohibida.

Procedimientos generales para conocer a nuestra conexión a Internet:

Ésto es bastante ambiguo, pero podemos hacer algunas pruebas para tener una idea de qué tan libre es nuestra conexión.

Ver nuestra configuración de red mediante el comando ipconfig/ifconfig:

En Windows, ejecutamos el cmd, y dentro de él el comando "ipconfig". En Linux, el comando "ifconfig"

Si en Puerta de enlace / Default Gateway no tenemos nada, no podremos conectarnos a ninguna red externa a la local, por ende no a Internet.

Comprobar la conexión con los servidores DNS

Más a modo de tip, para comprobar la conexión al servidor DNS que tengamos configurado, en Windows y Linux ejecutamos* nslookup [dominio a resolver]*

Hay muchas otras opciones para éste comando, pero ésta es la más sencilla.

Incluso, podemos comprobar otros servidores, por ejemplo nslookup funnix.net 8.8.8.8 nos resolvería el dominio de este humilde blog en el servidor DNS de Google.

Comprobar que tenemos habilitados los puertos necesarios

Si no podemos conectarnos a ningún sitio web por un error del tipo “No se puede conectar al servidor”, es casi seguro que tengamos bloqueado el puerto 80. Podemos comprobarlo ejecutando* telnet [el sitio que queremos probar] [puerto a conectar]*. Por ejemplo, comprobar que podemos conectarnos a Funnix, ejecutando el comando que vemos abajo:

En caso de que la conexión se realice correctamente, la pantalla se pondrá en negro y a la espera de algún comando

Obs.: El cliente Telnet no viene por defecto en Windows Vista/7! En caso de necesitarlo (siempre es útil) pueden ver cómo activarlo.

Hasta aquí no he explicado nada, pero en la próxima entrega explicaré las vulnerabilidades de cada uno de los tipos de bloqueo aquí citados. Esperen atentos hasta entonces! 😉