Thursday, March 30, 2017

tcp-sequence-number-attacks

Cada ponto final de uma conexão TCP estabelece um número de seqüência inicial para pacotes enviados e envia esse número no pacote SYN que está como parte do estabelecimento de conexão.

Não existe qualquer requisito para que qualquer uma das extremidades siga um procedimento particular na escolha do número de sequência de partida. O sistema operacional é livre para usar qualquer mecanismo que ele gosta, mas geralmente é melhor se ele escolhe um número aleatório.

A partir desse ponto de partida, cada pacote enviado por qualquer extremidade contém dois números de seqüência - um para especificar onde no fluxo o pacote está, e um número de seqüência ACK que significa o número de bytes recebidos. Ambos os números são deslocados pelo número de sequência inicial.

Um ataque de predição de seqüência TCP é uma tentativa de prever o número de seqüência usado para identificar os pacotes em uma conexão TCP e  pode ser usado para falsificar pacotes. 

O atacante espera adivinhar corretamente o número de seqüência a ser usado pelo host que enviou. Se eles puderem fazer isso, eles serão capazes de enviar pacotes falsificados para o host receptor que parecerá originar do host de envio, mesmo que os pacotes falsificados possam, de fato, originar de algum terceiro host controlado pelo atacante. 

Ao monitorar o tráfego antes que um ataque seja montado, o host mal-intencionado pode descobrir o número de seqüência correto. Depois que o endereço IP e o número de seqüência correto são conhecidos, é basicamente uma corrida entre o invasor e o host confiável para obter o pacote correto enviado. Uma maneira comum para o atacante enviá-lo primeiro é lançar outro ataque no host confiável, como um ataque de DoS. Uma vez que o atacante tem controle sobre a conexão, ele é capaz de enviar pacotes falsificados sem obter uma resposta.

Teoricamente, outras informações, como diferenças de tempo ou informações de camadas de protocolo mais baixas, poderiam permitir que o host receptor distingisse pacotes TCP autênticos do host de envio e pacotes de contrafacção TCP com o número de seqüência correto enviado pelo invasor. Se essas outras informações estiverem disponíveis para o host receptor, se o invasor não puder também falsificar aquelas outras informações e se o host receptor recolher e usar as informações corretamente, então o host receptor pode ser bastante imune aos ataques de predição de seqüência TCP. Normalmente, este não é o caso, então o número de seqüência TCP é o principal meio de proteção do tráfego TCP contra esses tipos de ataque.

Outra solução para este tipo de ataque é configurar qualquer roteador ou firewall para não permitir que os pacotes entrem de uma fonte externa, mas com um endereço IP interno. Embora isso não corrija o ataque, ele evitará que os ataques potenciais cheguem aos seus alvos.

APIs - REST API