Um grupo de pesquisadores de universidades canadenses e americanas desenvolveu uma técnica de ataque chamada Port Shadow, que permite, através da manipulação das tabelas de tradução de endereços no lado do servidor VPN, direcionar a resposta a um pedido para outro usuário conectado ao mesmo servidor VPN. Esse método pode ser utilizado para interceptar ou redirecionar tráfego criptografado, realizar varreduras de portas e desanonimizar usuários de VPN. Um exemplo ilustra como o método pode ser usado para redirecionar as consultas DNS do usuário, que está operando através de um servidor VPN, para um host atacante, ao qual o atacante pode se conectar como cliente.
Para realizar o ataque, o invasor deve ter a capacidade de se conectar a um VPN-servidor com a vítima, o que é possível, por exemplo, ao usar operadores VPN comuns e serviços VPN públicos que oferecem acesso a todos. A vulnerabilidade afeta servidores VPN que usam tradução de endereços (NAT) para organizar o acesso dos clientes a recursos externos, dado que para a recepção do tráfego dos clientes e o envio de solicitações a sites externos, um servidor mesmo IP deve ser utilizado.
O ataque baseia-se na ideia de que, através do envio de solicitações especialmente formatadas, um invasor conectado ao mesmo servidor VPN e utilizando o mesmo NAT pode causar uma distorção no conteúdo das tabelas de tradução de endereços, o que resultará em pacotes endereçados a um usuário sendo enviados para outro usuário. Nas tabelas de tradução de endereços, a informação sobre qual endereço IP interno está associado à solicitação enviada é determinada com base no número da porta de rede de origem utilizada ao enviar a solicitação. O invasor, ao enviar pacotes SYN e ACK específicos e realizar manipulações simultâneas do lado da conexão do cliente ao servidor VPN e do lado do servidor externo controlado, pode provocar uma colisão na tabela NAT e adicionar uma entrada com o mesmo número da porta de origem, mas associada ao seu endereço local, o que resultará nas respostas a uma solicitação de outra pessoa sendo devolvidas ao endereço do invasor.

No decorrer da pesquisa, foram testados sistemas de tradução de endereços Linux e FreeBSD em combinação com VPNs OpenVPN, OpenConnect e WireGuard. A plataforma FreeBSD demonstrou resistência a métodos de ataque de redirecionamento de solicitações realizados por outros usuários conectados à mesma VPN. A substituição em tabelas NAT só pôde ser realizada durante o ataque ATIP (Adjacent-to-In-Path), onde o atacante consegue se infiltrar no tráfego entre o usuário e o servidor VPN (por exemplo, quando o usuário se conecta a uma rede Wi-Fi controlada pelo atacante) ou entre o servidor VPN e o site alvo. Além disso, o NAT FreeBSD também foi afetado por um ataque que permite determinar a conexão do usuário a um site específico (Connection Inference).
Quanto ao Linux, a subsistema Netfilter foi vulnerável a ataques de substituição de entradas na tabela de tradução de endereços, permitindo redirecionar pacotes de entrada para outro usuário, forçar o envio de pacotes fora do canal VPN criptografado (Decapsulation) ou determinar portas de rede abertas do lado do cliente.

Como medidas para bloquear o ataque, recomenda-se que provedores de VPN utilizem métodos adequados de randomização dos números de portas de origem no NAT, limitando o número de conexões simultâneas permitidas ao servidor VPN de um único usuário, bem como bloqueando a possibilidade de o cliente escolher a porta de rede que aceita solicitações do lado do servidor VPN.
Segundo um representante da empresa Proton AG, o ataque não afeta os serviços VPN que utilizam IPs separados para solicitações de entrada e saída. Além disso, há dúvidas sobre a possibilidade de aplicar o ataque a serviços VPN reais, uma vez que um ataque bem-sucedido foi demonstrado apenas em testes de laboratório e requer o cumprimento de certas condições do lado do servidor VPN e do cliente atacado. Além disso, o ataque pode ser útil apenas para manipular solicitações não criptografadas, como consultas DNS, enquanto o uso de TLS e HTTPS em nível de aplicação torna o redirecionamento de tráfego inútil.
As tabelas de tradução de endereços podem ser manipuladas não apenas em VPNs, mas também em redes sem fio, onde o NAT é utilizado para conectar usuários a recursos externos em um ponto de acesso. No mês passado, foram publicados os resultados de uma pesquisa que analisou a possibilidade de realizar um ataque semelhante para interceptar conexões TCP de outros usuários em uma rede sem fio. O método de ataque foi aplicável a 24 das 33 pontos de acesso sem fio testados.

O ataque proposto para Wi-Fi mostrou-se significativamente mais simples do que o método mencionado para VPN, pois, devido a otimizações, muitos pontos de acesso não verificam a correção dos números de sequência nos pacotes TCP. Como resultado, para realizar o ataque, bastou enviar um pacote RST falso para limpar a entrada na tabela de tradução de endereços e, em seguida, direcionar a resposta para o host do atacante a fim de determinar os números de sequência (SEQ) e de acknowledgment (ACK) necessários para interceptar a conexão TCP.


Fonte: opennet.ru
