Os NATs reescrevem ipAddress na carga útil dos pacotes ICMP?

1

Hoje, quando testo a execução de um comando tracert (windows + Wireshark), vejo um pacote ICMP_ECHO_REQUEST de saída que tem sourceIP como "192.168.1.55" - meu IPAddress local.

Ele é seguido por um pacote ICMP_TTL_EXCEEDED enviado de um host da internet como resposta para mim que meu pacote EchoRequest morreu no meio do caminho. O pacote de resposta "cita" o primeiro byte de 28 "do meu" pacote original "na seção de carga onde eu posso ver o sourceIP permanecendo" 192.168.1.55 "- meu ipAddress local .

Uma pergunta imediatamente sai da minha cabeça: "O NAT não reescreveu o sourceIP" local "no IP-Header ou o reescreveu em payload"?

AFAIK no caso de pacotes TCP ou UDP, o NAT substituirá o "ip: port" local pelo "IP: PORT" externo no cabeçalho IP do pacote. Então estou me perguntando:

1 - Se os NATs estão substituindo-os na seção de carga dos pacotes? (Ou apenas fazer isso com o pacote ICMP do tipo TTL_Exceeded apenas?)

2 - Se 1 não for verdade, isso é um tipo de ameaça à segurança?

    
por vantrung -cuncon 29.03.2016 / 11:29

2 respostas

3

A resposta é que isso depende.

Recebi mensagens ICMP de sistemas com um dispositivo NAT que permitem que os endereços IP internos vazem por meio de mensagens ICMP.

No entanto, para que o receptor de uma mensagem ICMP possa associá-lo de maneira confiável a um pacote enviado anteriormente, a mensagem ICMP precisa conter o pacote de acionamento essencialmente como ele se parecia originalmente. Isso significa que, se um pacote disparar uma mensagem ICMP após ser modificado por um NAT, o NAT deverá reverter as modificações dentro da carga útil do ICMP. E alguns NATs acertam isso.

Existem aspectos mais sutis para perceber. Quando um NAT modifica endereços IP, ele também precisa modificar somas de verificação dentro do pacote. No entanto, a carga útil do ICMP é geralmente um pacote IP truncado, portanto, as somas de verificação da camada de transporte não podem ser verificadas. Por essa razão, eles raramente são usados, e deixar as somas de verificação dentro das cargas úteis do ICMP não modificadas não causará quebras. No entanto, isso faz com que as somas de verificação sejam modificadas em uma direção e não na outra. Dessa forma, um pouco de informação sobre endereços IP internos pode vazar.

Esses vazamentos podem ser considerados vulnerabilidades de segurança. Este é apenas um tipo de vazamentos que um NAT pode causar. Vazamentos mais graves também são possíveis, incluindo a possibilidade de envio de fragmentos de pacotes para outro host que não o destinatário pretendido. Essas são algumas das razões pelas quais os NATs não são uma ótima idéia. Substituir o NAT por um firewall sem NAT fornecerá uma segurança geral melhor. Mas isso, é claro, requer mais endereços IP.

    
por 29.03.2016 / 12:15
0

O NAT não toca na carga útil dos pacotes. Ele toca apenas nos cabeçalhos IP e TCP / UDP. Os endereços IP estão incluídos no cabeçalho IP (origem e destino). O cabeçalho TCP inclui portas de origem e de destino, de forma semelhante para o cabeçalho UDP.

Para o caso do ICMP, você pode consultar esta página . Ele afirma que, no caso de uma mensagem de erro (como TTL Excedido), o pacote inclui o cabeçalho IP (20 bytes) + 8 bytes da carga útil = 28 bytes que você viu.

    
por 29.03.2016 / 11:36

Tags