
Este artigo descreve um exemplo da aplicação prática do ataque "distorção de cache através do redirecionamento 301", que pode ser usado pelo nó de saída da rede Tor com código malicioso para identificar os endereços IP reais dos usuários selecionados.
Cenário de ataque
O cenário de ataque é o seguinte:
- Cliente: Chrome Canary (76.0.3796.0)
- IP do cliente real: 5.60.164.177
- Parâmetro de rastreamento do cliente: 6b48c94a-cf58-452c-bc50-96bace981b27
- Endereço IP do nó de saída da rede Tor: 51.38.150.126
- Proxy Reverso Transparente: tor.modlishka.io (Modlishka - código atualizado a ser lançado.)
Nota: Nesse cenário, o navegador Chrome foi configurado através do protocolo de rede SOCKS5 para usar a rede Tor. O canal Tor foi sintonizado para um nó de saída de teste específico: '51 .38.150.126 '. É também uma validação do conceito e muitas configurações podem ser otimizadas no futuro ...
No caso de um nó de saída malicioso da rede Tor, todo o tráfego é redirecionado através do servidor proxy Modlishka:
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j DNAT --to-destination ip_address:80 iptables -A FORWARD -j ACCEPT
Descrição do cenário de ataque
Pressupostos:
- Um aplicativo de navegador (neste caso, um navegador padrão) que usará a conexão de rede “Tor” e, finalmente, a conexão passará por um nó de saída malicioso.
- O nó de saída malicioso da rede Tor, que intercepta e distorce o cache de todo o tráfego HTTP (código de resposta "HTTP 301"), que não possui um protocolo criptográfico de segurança da camada de transporte ("TLS").

Vejamos as seguintes etapas de um cenário de ataque:
- O usuário se conecta à Internet através da rede Tor configurando o navegador para usar o protocolo de rede SOCKS5 do sistema Tor ou configurando para que todo o tráfego do sistema operacional seja redirecionado através da rede Tor.
- O usuário inicia sua sessão normal de acesso à Internet usando seu navegador favorito, onde geralmente muito tráfego HTTP sem o protocolo de segurança TLS é enviado através do túnel da rede Tor.
- O nó de saída malicioso da rede Tor intercepta solicitações e responde encaminhando cada uma delas usando o código de resposta HTTP 301. Esses redirecionamentos serão constantemente armazenados em cache pelo navegador e serão enviados para o URL de rastreamento com o identificador de cliente Tor atribuído. O URL de rastreamento pode ser criado da seguinte maneira: user-identifier.evil.tld , em que 'evil.tld' coletará todas as informações sobre o endereço IP de origem e redirecionará os usuários para os hosts solicitados originalmente ... ou, alternativamente, para o reverso transparente um servidor proxy que tentará interceptar todo o fluxo subsequente do tráfego do cliente HTTP. Além disso, como é possível distorcer automaticamente o cache da maioria dos domínios mais populares (como descrito em um artigo anterior), por exemplo, 100 melhores sites de acordo com as estatísticas da empresa «Alexa», o invasor maximiza suas chances de identificar endereços IP reais.
- Depois de sair da sessão de rede Tor, o usuário passará para a rede normal.
- Assim que o usuário digita o endereço de um dos domínios distorcidos anteriores na barra de endereços (por exemplo, "google.com"), o navegador usa o cache para redirecionamento interno para a URL de rastreamento com o identificador de contexto do nó de saída.
- O host de saída poderá corresponder a solicitação HTTP interceptada anteriormente com o endereço IP real do usuário usando as informações recebidas de um host externo que usou a URL de rastreamento com o ID do usuário. O host evil.tld terá informações sobre todos os endereços IP que foram usados para acessar o URL de rastreamento.
Obviamente, esse método permite combinar com eficiência solicitações HTTP selecionadas com endereços IP do cliente usando o nó de saída da rede Tor. Isso acontece porque a URL de rastreamento gerada anteriormente será solicitada pelo cliente através do túnel de rede “Tor” e, novamente, assim que a conexão for feita através da conexão padrão do provedor de Internet. É tudo por causa do código ilegível no cache.
Outra abordagem pode ser baseada na introdução de código JavaScript modificado com URLs incorporados para rastreamento nas respostas correspondentes que não possuem o protocolo de segurança TLS e alteração dos cabeçalhos de cache de controle necessários (por exemplo, 'Cache-Control: max-age = 31536000') . No entanto, essa abordagem não é muito eficaz.
Também é possível rastrear usuários através dos cookies padrão de vários aplicativos da Web, mas é muito difícil forçar o cliente a visitar o domínio que está sob o controle do invasor duas vezes: primeiro, ao conectar-se através do nó de saída da rede Tor e depois novamente após alternar para a conexão de Internet padrão fornecedor.
Conclusões
O fato é que um invasor tem a capacidade de obter certas alterações no cache do navegador injetando código malformado através de nós de saída maliciosos e detectando os endereços IP reais dos usuários do Tor que enviam tráfego HTTP sem o protocolo de segurança TLS.
Além disso, a distorção de um número significativo de nomes de domínio populares aumentará a probabilidade de receber uma resposta inversa de uma solicitação HTTP (com um ID de usuário atribuído), que determinará o endereço IP real do usuário. Você pode tentar interceptar o domínio de alguns clientes do navegador e esperar que um erro de digitação no nome do domínio não seja notado pelo usuário ou não seja exibido (por exemplo, o aplicativo móvel WebViews).
Maneiras de reduzir o risco:
- Ao conectar-se à Internet pela rede Tor, verifique se todo o tráfego que não usa o protocolo de segurança TLS está desabilitado. Um exemplo de plugins de navegador que podem ser usados: para navegadores Firefox ”e“ Chrome ”.
- Além disso, sempre use o modo de navegador “privado” ao conectar-se à Internet através da rede Tor.
- Não redirecione o tráfego para todo o sistema operacional através da rede Tor até ter certeza de que todo o tráfego de saída usa o protocolo de segurança TLS ...
- Sempre que possível, use a versão mais recente do navegador Tor para navegar na web.
As configurações mais recentes de dois processadores de servidores dedicados com os processadores Intel Scalable 2019 estão disponíveis no
DEDIC.SH :
- 2x Xeon Silver 4214 - um total de 24 núcleos
- 2x Xeon Gold 5218 - um total de 32 núcleos
- 2x Xeon Gold 6240 - configuração com 36 núcleos.
O custo de um servidor com dois Xeon Silver 4214 - a
partir de 15210 rublos / mêsTambém estamos prontos para coletar
qualquer configuração para você -
escreva-nos !
Se não são necessárias grandes potências de um servidor dedicado - é necessário o
VDS de 150 rublos / mês !