Experiência CacheBrowser: contornando o firewall chinês sem um proxy usando cache de conteúdo

Experiência CacheBrowser: contornando o firewall chinês sem um proxy usando cache de conteúdo

Cenário: Unsplash

Hoje, uma parcela significativa de todo o conteúdo da Internet é distribuída por meio de redes CDN. Ao mesmo tempo, investiga-se como vários censores estendem a sua influência sobre essas redes. Cientistas da Universidade de Massachusetts analisado possíveis métodos de bloqueio de conteúdo CDN usando o exemplo das práticas das autoridades chinesas, e também desenvolveu uma ferramenta para contornar esse bloqueio.

Preparamos um material de revisão com as principais conclusões e resultados deste experimento.

Introdução

A censura é uma ameaça global à liberdade de expressão na Internet e ao livre acesso à informação. Isto é em grande parte possível devido ao facto de a Internet ter emprestado o modelo de “comunicação ponta a ponta” das redes telefónicas dos anos 70 do século passado. Isso permite bloquear o acesso ao conteúdo ou às comunicações do usuário sem esforço ou custo significativo, simplesmente com base no endereço IP. Existem vários métodos aqui, desde bloquear o próprio endereço com conteúdo proibido até bloquear a capacidade dos usuários de reconhecê-lo usando a manipulação de DNS.

No entanto, o desenvolvimento da Internet também levou ao surgimento de novas formas de divulgação de informação. Uma delas é a utilização de conteúdo em cache para melhorar o desempenho e acelerar as comunicações. Hoje, os provedores de CDN processam uma quantidade significativa de todo o tráfego do mundo – a Akamai, líder neste segmento, responde sozinha por até 30% do tráfego global estático da web.

Uma rede CDN é um sistema distribuído para entrega de conteúdo da Internet em velocidade máxima. Uma rede CDN típica consiste em servidores em diferentes localizações geográficas que armazenam conteúdo em cache para servi-lo aos usuários mais próximos desse servidor. Isso permite aumentar significativamente a velocidade da comunicação online.

Além de melhorar a experiência dos usuários finais, a hospedagem CDN ajuda os criadores de conteúdo a dimensionar seus projetos, reduzindo a carga em sua infraestrutura.

Censura de conteúdo CDN

Apesar de o tráfego CDN já representar uma parcela significativa de toda a informação transmitida pela Internet, ainda quase não há pesquisas sobre como os censores no mundo real abordam o seu controle.

Os autores do estudo começaram explorando técnicas de censura que podem ser aplicadas às CDNs. Depois estudaram os mecanismos reais utilizados pelas autoridades chinesas.

Primeiramente, vamos falar sobre possíveis métodos de censura e a possibilidade de utilizá-los para controlar o CDN.

Filtragem de IP

Esta é a técnica mais simples e barata para censurar a Internet. Usando essa abordagem, o censor identifica e coloca na lista negra os endereços IP de recursos que hospedam conteúdo proibido. Então, os provedores de Internet controlados param de entregar os pacotes enviados para esses endereços.

O bloqueio baseado em IP é um dos métodos mais comuns de censura na Internet. A maioria dos dispositivos de rede comerciais estão equipados com funções para implementar tal bloqueio sem esforço computacional significativo.

No entanto, este método não é muito adequado para bloquear o tráfego CDN devido a algumas propriedades da própria tecnologia:

  • Cache Distribuído – para garantir a melhor disponibilidade de conteúdo e otimizar o desempenho, as redes CDN armazenam em cache o conteúdo do usuário em um grande número de servidores de borda localizados em locais distribuídos geograficamente. Para filtrar esse conteúdo com base no IP, o censor precisaria descobrir os endereços de todos os servidores de borda e colocá-los na lista negra. Isso prejudicará as principais propriedades do método, pois sua principal vantagem é que no esquema usual, o bloqueio de um servidor permite “cortar” o acesso a conteúdos proibidos para um grande número de pessoas ao mesmo tempo.
  • IPs compartilhados – os provedores comerciais de CDN compartilham sua infraestrutura (ou seja, servidores de borda, sistema de mapeamento, etc.) entre muitos clientes. Como resultado, o conteúdo proibido da CDN é carregado a partir dos mesmos endereços IP que o conteúdo não banido. Como resultado, qualquer tentativa de filtragem de IP resultará no bloqueio de um grande número de sites e conteúdos que não são de interesse dos censores.
  • Atribuição de IP altamente dinâmica – para otimizar o balanceamento de carga e melhorar a qualidade do serviço, o mapeamento dos servidores de borda e dos usuários finais é realizado de forma muito rápida e dinâmica. Por exemplo, as atualizações da Akamai retornavam endereços IP a cada minuto. Isto tornará quase impossível que endereços sejam associados a conteúdos proibidos.

Interferência de DNS

Além da filtragem de IP, outro método de censura popular é a interferência de DNS. Essa abordagem envolve ações de censores destinadas a impedir que os usuários reconheçam os endereços IP de recursos com conteúdo proibido. Ou seja, a intervenção ocorre ao nível da resolução de nomes de domínio. Existem várias maneiras de fazer isso, incluindo o sequestro de conexões DNS, o uso de técnicas de envenenamento de DNS e o bloqueio de solicitações de DNS para sites proibidos.

Este é um método de bloqueio muito eficaz, mas pode ser contornado se você usar métodos de resolução de DNS não padrão, por exemplo, canais fora de banda. Portanto, os censores geralmente combinam o bloqueio de DNS com a filtragem de IP. Mas, como afirmado acima, a filtragem de IP não é eficaz na censura do conteúdo da CDN.

Filtrar por URL/palavras-chave usando DPI

Equipamentos modernos de monitoramento de atividade de rede podem ser usados ​​para analisar URLs e palavras-chave específicas em pacotes de dados transmitidos. Essa tecnologia é chamada de DPI (inspeção profunda de pacotes). Esses sistemas encontram menções a palavras e recursos proibidos, após o que interferem na comunicação online. Como resultado, os pacotes são simplesmente descartados.

Este método é eficaz, mas mais complexo e consome muitos recursos porque requer a desfragmentação de todos os pacotes de dados enviados em determinados fluxos.

O conteúdo CDN pode ser protegido dessa filtragem da mesma forma que o conteúdo “normal” – em ambos os casos, o uso de criptografia (ou seja, HTTPS) ajuda.

Além de usar DPI para encontrar palavras-chave ou URLs de recursos banidos, essas ferramentas podem ser usadas para análises mais avançadas. Esses métodos incluem análise estatística de tráfego online/offline e análise de protocolos de identificação. Estes métodos são extremamente intensivos em recursos e, neste momento, simplesmente não há provas da sua utilização pelos censores de forma suficientemente grave.

Autocensura de provedores de CDN

Se o censor for o estado, então ele terá todas as oportunidades para proibir os provedores de CDN de operar no país que não obedecem às leis locais que regem o acesso ao conteúdo. A autocensura não pode ser resistida de forma alguma – portanto, se uma empresa fornecedora de CDN estiver interessada em operar em determinado país, será forçada a cumprir as leis locais, mesmo que restrinjam a liberdade de expressão.

Como a China censura o conteúdo da CDN

O Grande Firewall da China é legitimamente considerado o sistema mais eficaz e avançado para garantir a censura na Internet.

Metodologia de Pesquisa

Os cientistas realizaram experimentos usando um nó Linux localizado na China. Eles também tiveram acesso a vários computadores fora do país. Primeiramente, os pesquisadores verificaram se o nó estava sujeito a censura semelhante à aplicada a outros usuários chineses – para isso, tentaram abrir diversos sites proibidos desta máquina. Assim foi confirmada a presença do mesmo nível de censura.

A lista de sites bloqueados na China que usam CDNs foi retirada do GreatFire.org. O método de bloqueio em cada caso foi então analisado.

De acordo com dados públicos, o único grande player no mercado de CDN com infraestrutura própria na China é a Akamai. Outros provedores participantes do estudo: CloudFlare, Amazon CloudFront, EdgeCast, Fastly e SoftLayer.

Durante os experimentos, os pesquisadores descobriram os endereços dos servidores de borda da Akamai no país e, em seguida, tentaram obter conteúdo permitido em cache por meio deles. Não foi possível acessar conteúdo proibido (foi retornado o erro HTTP 403 Forbidden) – aparentemente a empresa está se autocensurando para manter a capacidade de operar no país. Ao mesmo tempo, o acesso a estes recursos permaneceu aberto fora do país.

Os ISPs sem infraestrutura na China não autocensuram os usuários locais.

No caso de outros provedores, o método de bloqueio mais utilizado foi a filtragem de DNS - as solicitações para sites bloqueados são resolvidas para endereços IP incorretos. Ao mesmo tempo, o firewall não bloqueia os próprios servidores de borda CDN, pois eles armazenam informações proibidas e permitidas.

E se, no caso de tráfego não criptografado, as autoridades tiverem a capacidade de bloquear páginas individuais de sites usando DPI, então, ao usar HTTPS, elas só poderão negar o acesso a todo o domínio como um todo. Isso também leva ao bloqueio de conteúdo permitido.

Além disso, a China tem os seus próprios fornecedores de CDN, incluindo redes como ChinaCache, ChinaNetCenter e CDNetworks. Todas essas empresas cumprem integralmente as leis do país e bloqueiam conteúdos proibidos.

CacheBrowser: ferramenta de desvio de CDN

Como a análise mostrou, é bastante difícil para os censores bloquearem o conteúdo da CDN. Portanto, os pesquisadores decidiram ir além e desenvolver uma ferramenta online para contornar bloqueios que não utiliza tecnologia proxy.

A ideia básica da ferramenta é que os censores precisam interferir no DNS para bloquear CDNs, mas na verdade não é necessário usar a resolução de nomes de domínio para carregar o conteúdo do CDN. Assim, o usuário pode obter o conteúdo que necessita entrando em contato diretamente com o servidor de borda, onde já está armazenado em cache.

O diagrama abaixo mostra o design do sistema.

Experiência CacheBrowser: contornando o firewall chinês sem um proxy usando cache de conteúdo

O software cliente é instalado no computador do usuário e um navegador comum é usado para acessar o conteúdo.

Quando uma URL ou conteúdo já foi solicitado, o navegador faz uma solicitação ao sistema DNS local (LocalDNS) para obter o endereço IP de hospedagem. O DNS normal é consultado apenas para domínios que ainda não estão no banco de dados LocalDNS. O módulo Scraper percorre continuamente os URLs solicitados e pesquisa na lista nomes de domínio potencialmente bloqueados. O Scraper então chama o módulo Resolver para resolver os domínios bloqueados recém-descobertos, este módulo executa a tarefa e adiciona uma entrada ao LocalDNS. O cache DNS do navegador é então limpo para remover os registros DNS existentes do domínio bloqueado.

Se o módulo Resolver não conseguir descobrir a qual provedor CDN o domínio pertence, ele pedirá ajuda ao módulo Bootstrapper.

Como funciona na prática

O software cliente do produto foi implementado para Linux, mas pode ser facilmente portado também para Windows. Mozilla normal é usado como navegador
Raposa de fogo. Os módulos Scraper e Resolver são escritos em Python, e os bancos de dados Customer-to-CDN e CDN-toIP são armazenados em arquivos .txt. O banco de dados LocalDNS é o arquivo /etc/hosts regular no Linux.

Como resultado, para um URL bloqueado como bloqueado.com O script obterá o endereço IP do servidor de borda do arquivo /etc/hosts e enviará uma solicitação HTTP GET para acessar BlockedURL.html com os campos do cabeçalho HTTP do Host:

blocked.com/ and User-Agent: Mozilla/5.0 (Windows
NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1

O módulo Bootstrapper é implementado usando a ferramenta gratuita digwebinterface.com. Este resolvedor DNS não pode ser bloqueado e responde a consultas DNS em nome de vários servidores DNS distribuídos geograficamente em diferentes regiões da rede.

Usando esta ferramenta, os investigadores conseguiram obter acesso ao Facebook a partir do seu nó chinês, embora a rede social esteja bloqueada há muito tempo na China.

Experiência CacheBrowser: contornando o firewall chinês sem um proxy usando cache de conteúdo

Conclusão

O experimento mostrou que aproveitar os problemas que os censores enfrentam ao tentar bloquear o conteúdo da CDN pode ser usado para criar um sistema para contornar os bloqueios. Esta ferramenta permite contornar bloqueios até mesmo na China, que possui um dos mais poderosos sistemas de censura online.

Outros artigos sobre o tema de uso procuradores residentes para negócios:

Fonte: habr.com

Adicionar um comentário