Como um firewall contribui para mitigar ataques de falsificação de IP?

3

Eu entendo que você pode implementar um firewall para permitir apenas o acesso a um servidor a partir de endereços IP específicos, mas as pessoas não podem falsificar o endereço IP de origem em um pacote TCP? Como isso realmente impede que pessoas inescrupulosas acessem seu servidor?

    
por gloo 26.10.2014 / 16:57

4 respostas

4

O que o Cara disse é a resposta que você procura.

Eu acho que você está pensando:

SERVER.......................CLIENT
............[FIREWALL].........|
..|............................|
..|_>___[CHECK FOR AUTHORITY]_<_|

Este diagrama pressupõe que tanto o servidor quanto o cliente tenham firewalls (normalmente eles possuem).

Se a Autoridade falhar, a chamada para o Servidor / Cliente será ignorada.

Portanto, se o ip do servidor for xxx.xxx.xxx.1 e o cliente for xxx.xxx.xxx.2 e o cliente tenta acessar o servidor enviando um comando sem autorização. Seu log do servidor seria assim xxx.xxx.xxx.2 [Falha na autorização - IGNORE]

Se xxx.xxx.xxx.2 Cloaked seu ip como xxx.xxx.xxx.3 que está autorizado a acessar o servidor, então isso aconteceria .. xxx.xxx.xxx.3 - > Envie o pacote de comandos para xxx.xxx.xxx.1 xxx.xxx.xxx.1 - > Responda ao comando e envie o pacote para xxx.xxx.xxx.3

Portanto, xxx.xxx.xxx.1 nunca receberia o comando recuperado.

Agora, o que você provavelmente está pensando é COMO ESTÁ SEGURO?

Bem, a maioria dos servidores realmente funciona assim.

SERVER..............................CLIENT
..|______________[CONNECT]___________<_|
............|
...[TEST AUTHORIZATION]
...........|
......[PASSED]
..........|
...........[SEND CONNECTED RESPONSE]...|

Portanto, se o cliente estiver autorizado e fizer uma chamada para o servidor, o servidor responderá com uma resposta conectada para enviar de volta ao cliente, se o cliente obtiver essa resposta, o servidor sabe que esse é o cliente correto.

    
por 26.10.2014 / 17:55
5

Certamente alguém pode falsificar seu endereço IP para ENVIAR os pacotes TCP / IP, mas ele nunca receberá qualquer RESPOSTA porque ele irá para o endereço IP falso que ele usou! Então, esse caminho é inútil para alguém que quer estabelecer uma comunicação de mão dupla!

    
por 26.10.2014 / 17:07
1

Foi observado que fingir o remetente não é suficiente, você também vai querer obter a resposta de volta para fazer muito / qualquer coisa útil. Então você precisaria fazer um homem cheio no meio então.

No entanto, os firewalls geralmente não "permitem" muito simplesmente com base no IP de origem.

Os firewalls são usados principalmente para bloqueio , mas não para autorização .

Ou seja. um IP não confiável nem saberá que há uma VPN, nem será capaz de se conectar ao serviço VPN. Ou atacá-lo facilmente, para esse assunto. Mas o principal recurso de segurança é a própria VPN.

Como a filtragem baseada em IP é barata, ela faz uma ótima primeira linha de defesa . Rejeitar qualquer pacote no firewall significa que os serviços por trás terão que lidar com muito menos "ataques" (e outros ruídos). Executar um DDoS contra um firewall é mais difícil do que executar um DDoS contra um serviço real, porque você precisa preencher a conexão com a Internet, não a CPU do servidor que atende as solicitações.

    
por 26.10.2014 / 22:57
1

É realmente possível causar danos a conexões unidirecionais (por exemplo, com protocolos sem estado como o UDP), mas isso se resume a evitar a autenticação baseada em IP (insegura).

TCP

O TCP geralmente não é afetado, já que o estabelecimento de conexões requer o envio de um pacote de volta ao host de origem. Aqui está como vai:

Alice está na lista de hosts autorizados.

  • Alice envia um pacote SYN para Bob.
  • Bob devolve SYN-ACK para Alice para sinalizar que ela pode prosseguir
  • Alice continua com um pacote ACK e continua com a carga útil pretendida.

Charlie tenta se conectar ao serviço.

  • Charlie envia um pacote SYN para Bob.
  • O firewall bloqueia o pacote, Bob não recebe nada (ou um aviso nos registros que Charlie tentou se conectar a ele.
  • Charlie pode ou não saber que sua solicitação foi rejeitada (dependendo da configuração do firewall, a solicitação expira ou Bob envia explicitamente um pacote rejeitado / inacessível de ICMP)

Charlie de alguma forma sabe que Alice pode acessar o serviço.

  • Charlie envia um pacote SYN para Bob, dizendo que ele é Alice.
  • O pacote passa pelo Firewall, Bob retorna o SYN-ACK para Alice.
  • Alice responde RST-ACK (reconfiguração de confirmação) ou ICMP Inacessível, pois ela não esperava algo de Bob.
  • Charlie nunca saberá se o pedido foi enviado.

Agora, e se a conexão já estiver estabelecida? É para isso que os números de sequência são: eles não podem (não devem) ser previstos por outros, e ambas as partes esperam que as sequências sempre aumentem em um.

  • Quando a conexão é estabelecida, ambas as partes selecionam um número de seqüência de preferência aleatório.
  • Em cada pacote que eles enviam, o número de seqüência deve ser incrementado em um. Isso permite que o terminal de recebimento rejeite pacotes com números de seqüência errados e reordene aqueles que estão dentro da janela aceita.

Agora Charlie não tem como "injetar" pacotes em uma conexão existente entre Alice e Bob, já que ele não pode prever o número de sequência, e seus pacotes serão rejeitados por Bob, junto com talvez um aviso ou aviso nos registros.

UDP

Se o protocolo for UDP, ele é altamente suscetível a falsificação, pois os pares podem injetar pacotes falsificados na Internet, portanto, você precisa adicionar um mecanismo de autenticação ou criptografia na camada do aplicativo, em vez de no transporte.

Mitigação

Os ISPs adicionarão medidas para evitar a falsificação de endereços IP. Pode ser tão simples quanto rejeitar todos os pacotes que não correspondem aos seus próprios netblocks de sair do roteador, e os pacotes que correspondem a seus netblocks não vão para a rede.

Em uma rede local, muitas vezes é muito fácil fazer spoofing, pois não há muitos mecanismos para impedir que alguém o faça.

    
por 26.10.2014 / 23:01

Tags