Pular para o conteúdo principal
Recentemente, me deparei com um site que tinha vários módulos, cada um deles encaminhando pacotes. No pior dos casos, a taxa era de 1 a cada 2 segundos, mais ou menos. Você pode achar que não é muito rápido, mas, como há 86.400 segundos em um dia, em um dia esse módulo poderia estar encaminhando 63 megabytes (86.400 / 2 * 1472) de dadospara fora da sua rede a partir de um servidor “seguro” ou transferindo 63 megabytes de ferramentas de hacking para dentro da sua rede segura.

 

No entanto, na maioria dos casos, o encaminhamento de pacotes é um indício de um problema de configuração, e não de uma falha de segurança. Por exemplo, suponha que um módulo tenha duas interfaces IP
enet1 10.1.1.1 255.255.0.0
enet2 192.168.1.1 255.255.255.0
Vamos supor também que o roteador padrão seja 192.168.1.254

 

Todos os hosts da primeira rede devem ter um endereço IP no formato 10.1.X.Y com uma máscara de sub-rede de 255.255.0.0, mas e se o servidor_17, com endereço IP 10.1.1.17, estiver configurado para usar uma máscara de sub-rede com mais bits, digamos 255.255.255.0? Ele ainda pode se comunicar com qualquer host com um endereço IP no formato 10.1.1.X, portanto, pode não perceber o problema. MAS, quando ele envia um pacote de broadcast IP, ele endereça esse pacote IP para 10.1.1.255 em vez de 10.1.255.255. O quadro Ethernet que encapsula esse pacote tem o endereço de broadcast Ethernet como destino; assim, o driver Ethernet do módulo lê o quadro e passa o pacote para o driver IP. O driver IP examina o endereço IP e determina que ele não está endereçado a enet1 ou enet2 e não é 10.1.255.255, o endereço de broadcast. Se o encaminhamento estiver ativado, o driver IP tentará encaminhar o pacote para o host com o endereço IP 10.1.1.255. Se o módulo não tiver uma entrada para 10.1.1.255 em seu cache ARP, ele transmitirá uma solicitação ARP. Se receber uma resposta (ou já tiver uma entrada), ele encaminhará o pacote para 10.1.1.255. Se não receber uma resposta, ele descartará o quadro. O módulo também pode enviar uma mensagem de redirecionamento de roteamento ICMP indicando que o “roteador” é o endereço IP do host.

 

O que acontece se o servidor_17 usar uma máscara de sub-rede com menos bits, digamos 255.0.0.0? Nesse caso, o endereço de difusão IP que ele usa é 10.255.255.255. O driver IP decide que esse não é um endereço de uma rede à qual ele está conectado e encaminha o pacote para o roteador padrão 192.168.1.254. Não só os recursos do módulo são desperdiçados, mas também os do roteador. O mesmo cenário se repete se você tiver duas sub-redes no mesmo domínio de difusão.

 

Por fim, vamos revisitar a questão da segurança. Suponhamos que o servidor seguro `server_S` tenha o endereço IP 10.1.1.100 e a máscara de sub-rede correta 255.255.0.0. Não há roteadores na rede 10.1.0.0; então, como a espiã industrial Eve pode enviar dados do servidor_S para seu empregador na Internet, no endereço 5.6.7.8? Simples: basta configurar uma rota de host no servidor_S para que todos os pacotes endereçados a 5.6.7.8 sejam enviados para 10.1.1.1. É tudo o que é preciso. O módulo encaminhará os pacotes para o roteador padrão e, supondo que a filtragem de endereços IP não seja feita pelo roteador padrão, ele encaminhará os pacotes para o próximo roteador, e assim por diante, até que cheguem a 5.6.7.8. Não há como 5.6.7.8 responder de volta para 10.1.1.100, mas isso não é problema para Eve, pois ela tem outras maneiras de confirmar que os dados estão chegando ao seu empregador.

 

Como saber se o seu módulo está encaminhando pacotes ou, pelo menos, se está configurado para encaminhá-los? A saída do comando “netstat -statistics” vai mostrar tudo o que você precisa.

 

netstat -statistics
. . .
ip:
. . .
1   ipforwarding (ON)
. . .
3117   ipForwDatagrams
. . .

 

Se o módulo estiver configurado para encaminhar pacotes, o ipforwarding a variável será 1 e o rótulo receberá o sufixo (ON). Se o módulo estiver realmente encaminhando pacotes, o ipForwDatagrams O contador será incrementado. Observe que o contador é incrementado mesmo que o pacote não seja realmente transmitido, pois não há nenhuma entrada no cache ARP.

 

Para desativar o encaminhamento de IP, execute o comando “>system>stcp>command_library>IP_forwarding off“, sim, o IP está em maiúsculas.
Neste momento, o comando `netstat -statistics` mostrará o ipforwarding a variável terá o valor 2 e o rótulo receberá o sufixo (DESLIGADO). Observe que o ipForwDatagrams A variável não é reinicializada; ela continuará exibindo um valor positivo. Infelizmente, não há como apagar o valor.

 

netstat -statistics
. . .
ip:
. . .
2   ipforwarding (OFF)
. . .
3117   ipForwDatagrams
. . .

 

Uma última advertência: se o encaminhamento estiver ativado e você desativá-lo, e alguém (que não seja o Eve) estiver realmente usando o módulo como roteador, você interromperá o que essa pessoa estiver fazendo. Na minha opinião, isso não é algo ruim, já que o STCP não foi projetado para funcionar como roteador, mas esteja preparado para receber algumas reclamações.

 

————-
Notas
1 1472 é o número máximo de bytes que podem ser incluídos em um pacote de eco ICMP transmitido por Ethernet

© 2024 Stratus Technologies.