Pular para o conteúdo principal
Recentemente encontrei um site com vários módulos, cada um dos quais estava encaminhando pacotes. O pior caso foi a uma taxa de 1 a cada 2 segundos mais ou menos. Não muito rápido você diz, mas, há 86.400 segundos em um dia, então em 1 dia esse módulo poderia estar encaminhando 63 megabytes (86.400 / 2 * 1472)1 de dados para fora de sua rede a partir de um servidor "seguro" ou transferindo 63 megabytes de ferramentas de hacking para sua rede segura.

 

Entretanto, na maioria dos casos, o envio de pacotes é uma indicação de um problema de configuração, não uma quebra de segurança. Por exemplo, suponha que um módulo tenha 2 interfaces IP
enet1 10.1.1.1 255.255.0.0
enet2 192.168.1.1 255.255.255.255.0
vamos assumir também que o roteador padrão é 192.168.1.254

 

Todos os hosts na primeira rede devem ter um endereço IP do formulário 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 do formulário 10.1.1.X para que ele não note nenhum problema. MAS quando envia um pacote de transmissão IP, ele envia esse pacote IP para 10.1.1.255 em vez de 10.1.255.255. O quadro Ethernet que encapsula aquele pacote tem o endereço de broadcast Ethernet como seu destino, então o driver Ethernet do módulo lê o quadro e passa o pacote para o driver IP. O driver IP olha para o endereço IP e determina que ele não é endereçado para enet1 ou enet2 e não é 10.1.255.255, o endereço de broadcast. Se o encaminhamento for 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 ele receber uma resposta (ou se já tiver uma entrada) ele encaminhará o pacote para 10.1.1.255. Se não obtiver uma resposta, ele deixará cair 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 server_17 usa uma máscara de sub-rede com menos bits, digamos 255.0.0.0? Neste caso o endereço de transmissão IP que ele usa é 10.255.255.255.255. O driver IP decide que este não é um endereço em uma rede à qual está conectado e encaminha o pacote para o roteador padrão 192.168.1.254. Não apenas os recursos do módulo são desperdiçados, mas também os do roteador. O mesmo cenário ocorre se você tiver duas sub-redes no mesmo domínio de transmissão.

 

Finalmente, vamos revisitar a questão da segurança. Suponha que servidor_S seguro, tem um endereço IP de 10.1.1.100 e a máscara de sub-rede correta de 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 server_S para seu empregador na Internet em 5.6.7.8? Simples, ela apenas configura uma rota de host no server_S para que quaisquer pacotes endereçados ao 5.6.7.8 sejam enviados para o 10.1.1.1. Isso é tudo o que é preciso. O módulo encaminhará os pacotes para o roteador padrão e assumindo que a filtragem do endereço IP não é feita pelo roteador padrão, ele encaminhará os pacotes para o próximo roteador, etc., até que eles cheguem a 5.6.7.8. Não há como o 5.6.7.8 responder de volta ao 10.1.1.100, mas com Eve, ela tem outras formas de confirmar que os dados estão chegando a seu empregador.

 

Como você pode saber se seu módulo está encaminhando pacotes, ou pelo menos configurado para encaminhar pacotes? A saída de "netstat -statistics" lhe mostrará tudo o que você precisa.

 

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

 

Se o módulo for configurado para encaminhar os pacotes o ipforwarding variável será 1 e a etiqueta será sufixada com (ON). Se o módulo estiver realmente encaminhando os pacotes, a ipForwDatagrams contador será incrementado. Note que o contador é incrementado mesmo que o pacote não seja realmente transmitido porque não há entrada de cache ARP.

 

Para desligar o encaminhamento de IP execute o comando ">system>stcp>command_library>IP_forwarding off", sim, o IP está em maiúsculas.
Neste ponto a netstat -statistics mostrará o ipforwarding variável para ter um valor de 2 e a etiqueta será sufixada com (OFF). Note que a ipForwDatagrams não é reinicializada; ela ainda apresentará um valor positivo. Infelizmente, não há maneira de limpar o valor.

 

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

 

Uma última palavra de precaução; se o encaminhamento estiver ligado e você o desligar e alguém (que não seja Eve) estiver realmente usando o módulo como roteador, você irá quebrar o que quer que esteja fazendo. Na minha opinião, isto não é uma coisa ruim, STCP não foi projetado para ser um roteador, mas esteja preparado para algumas reclamações.

 

————-
Notas
1 1472 é o número máximo de bytes que você poderia colocar em um pacote de eco ICMP transmitido através de Ethernet

© 2024 Stratus Technologies.