09 - Source Address
video: https://youtu.be/... no frontmatter da nota.O campo Source Address (Endereço de Origem) é um campo de 32 bits (4 bytes) localizado no cabeçalho IPv4, cuja função é identificar inequivocamente a interface de rede do host que originou o datagrama IP. É o endereço lógico do remetente dentro da arquitetura TCP/IP.
Este campo é um dos pilares da comunicação em rede, pois, em um protocolo "sem conexão" como o IP, onde cada pacote é uma entidade independente, o Source Address é a âncora que permite que o receptor saiba para onde enviar qualquer resposta, estabelecendo a capacidade de comunicação bidirecional em um meio tecnicamente unidirecional.
1. Estrutura Binária e Formatação
O campo de 32 bits é dividido em 4 octetos (4 grupos de 8 bits), representados convencionalmente em notação decimal pontuada (dotted-decimal notation) para facilitar a leitura humana (ex: 192.168.10.5).
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Network Byte Order (Big-Endian): Seguindo o padrão do cabeçalho IP, o endereço de origem é transmitido com o byte mais significativo (MSB) primeiro. O primeiro octeto transmitido corresponde ao primeiro número na notação decimal.
- Hierarquia: O endereço não é um número aleatório; é composto por duas partes lógicas (Net ID e Host ID), embora essas partes não sejam visíveis explicitamente no valor binário perto sem a máscara de sub-rede. Roteadores examinam apenas a parte de rede para tomar decisões de encaminhamento.
- Posição no Cabeçalho: Ocupa os bytes 12 a 15 (palavras de 32 bits #4) do cabeçalho IPv4 mínimo.
2. Função: Identificação e Suporte à Resposta
Como o protocolo IP é inerentemente fire-and-forget (dispare e esqueça), sem estabelecimento prévio de conexão, o Source Address é o único mecanismo que permite a "conversação".
- Endereço de Retorno: Quando o host de destino recebe o datagrama, se ele precisar responder (seja para confirmar o recebimento via TCP/ACK, enviar um erro via ICMP, ou responder a uma requisição de aplicação), ele inverterá os papéis: o endereço que estava no campo Source Address se tornará o Destination Address no novo datagrama de resposta.
- Log e Auditoria: Este campo é fundamental para segurança e gestão. Firewalls, roteadores e sistemas de detecção de intrusão (IDS) usam o endereço de origem para aplicar políticas de controle de acesso (ACLs), como "permitir tráfego da rede interna, bloquear tráfego externo".
- Identificação de Sessão: Em conjunto com Destination Address, Protocol, Source Port e Destination Port (em L4), o Source Address compõe a quintupla (5-tuple) que identifica unicamente uma sessão TCP/UDP.
3. Restrições e Endereços Inválidos como Origem
Devido à sua função de remetente, o protocolo IPv4 impõe regras estritas sobre quais valores podem ser colocados no campo Source Address de um pacote que está saindo para a rede pública.
- Endereços Unicast: Geralmente, o endereço de origem deve ser um endereço Unicast atribuído a uma interface válida.
- Exclusão de Multicast e Broadcast: Um pacote válido na internet não pode ter um endereço de Multicast (Classe D, 224.0.0.0/4) ou Broadcast (255.255.255.255) como origem, pois um pacote não pode ser "enviado por um grupo", apenas por um dispositivo específico.
- Endereços Reservados:
- Loopback (127.0.0.0/8): Um pacote com origem
127.0.0.1nunca deve aparecer em uma rede externa; ele é estritamente para uso interno no host (localhost). Roteadores tipicamente descartam pacotes com origem no range de loopback. - Endereço Não Especificado (0.0.0.0): Este é um endereço especial usado quando um host ainda não possui um endereço IP atribuído (ex: durante a fase de descoberta do protocolo DHCP). O host envia um pedido com origem
0.0.0.0para pedir um IP. Uma vez que o host tenha um endereço, ele deve usá-lo. Pacotes com origem0.0.0.0não são roteáveis na internet. - Link-Local (169.254.0.0/16): Endereços autoconfigurados (APIPA), não roteáveis.
- Private Ranges (RFC 1918): 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. Não devem aparecer como origem de tráfego entrante na borda de provedores (BCP 38).
- Loopback (127.0.0.0/8): Um pacote com origem
4. O Fenômeno do NAT (Network Address Translation)
Um ponto crítico para a compreensão moderna do Source Address é o conceito de NAT. Embora a especificação original do IP assuma que o endereço de origem identifique o host final na rede privada, na prática, a maioria das redes domésticas e corporativas usa NAT.
- Mudança em Trânsito: Quando um pacote passa por um roteador NAT (o roteador Wi-Fi de casa, por exemplo), o roteador substitui o Source Address original (o IP privado do computador, ex:
192.168.1.50) pelo seu próprio endereço IP público fornecido pelo provedor (ex:200.100.50.20). - Quebra do Modelo Fim-a-Fim: Isso significa que, para a internet externa, o Source Address não é o host real, mas o intermediário. O roteador mantém uma tabela interna para lembrar qual host interno fez a requisição e poder encaminhar a resposta de volta.
- Tipos de NAT: SNAT (Source NAT) altera origem; DNAT (Destination NAT) altera destino; PAT/Overload (NAPT) mapeia múltiplas origens internas em um único IP público via portas.
- Implicações para Auditoria: Análises de logs emprovedoras que dependem do Source Address podem não identificar o host exato em ambiente com NAT, exigindo correlação com logs do roteador NAT.
5. IP Spoofing e Mitigação (uRPF)
Como o remetente pode colocar qualquer valor no campo Source Address, atacantes podem falsificar a origem dos pacotes (Spoofing) para ocultar sua identidade ou lançar ataques de reflexão.
Ataques que utilizam Spoofing
- Smurf Attack: Echo Requests ICMP com origem spoofada para o endereço da vítima, dirigidos a broadcasts de redes amplificadoras.
- SYN Flood Amplificado: Inundação de SYN TCP com origem forjada.
- DNS Amplification Attack: Consultas DNS via UDP com origem spoofed, gerando respostas amplificadas para a vítima.
- Reflection Attacks em geral: Qualquer protocolo UDP stateless é vulnerável.
Mitigação: uRPF (Unicast Reverse Path Forwarding)
O uRPF (RFC 3704) verifica se o endereço de origem de um pacote entrante é consistente com a tabela de roteamento do roteador:
- Strict uRPF (modo estrito): Verifica se o pacote chegou pela mesma interface que o roteador usaria para enviar respostas ao Source Address. Usado em bordas simétricas.
- Loose uRPF (modo flexível): Verifica apenas se existe alguma rota para o Source Address via qualquer interface. Usado em bordas assimétricas.
- uRPF com Failsafe: Permite exceções via ACL.
Outras técnicas anti-spoofing incluem:
- BCP 38 / RFC 2827 (Ingress/Egress Filtering): Provedores filtram pacotes com origem inconsistente com o bloco do cliente.
- TCP SYN Cookies: Mitigam SYN floods mesmo com spoofing.
6. Comparação com o Endereço de Enlace (MAC)
É vital distinguir o Source Address (IP) do Source MAC Address (Camada de Enlace):
| Característica | Source IP (L3) | Source MAC (L2) |
|---|---|---|
| Escopo | Global (fim-a-fim) | Local (hop-to-hop) |
| Persistência | Constante (exceto NAT) | Muda a cada salto |
| Hierarquia | Sim (Rede.Host) | Não (flat) |
| Endereçamento | Lógico | Físico (queimado em hardware) |
| Tamanho | 32 bits (IPv4) | 48 bits |
| Atribuição | Dinâmica (DHCP) ou estática | Atribuído pelo fabricante (OUI + NIC) |
- Escopo: O Endereço IP (Origem) tem escopo global (fim-a-fim) e permanece constante (a menos que haja NAT) através de toda a jornada do pacote pela internet. O Endereço MAC (Origem) muda a cada salto (hop), pois é sempre o endereço do dispositivo que colocou o quadro no meio físico imediato (o roteador anterior).
- Persistência: O IP identifica a sessão lógica, enquanto o MAC identifica o salto físico atual.
7. Source Address em IPv6
No IPv6, o campo equivalente ocupa 128 bits (16 bytes), permitindo um espaço de endereçamento extraordinariamente maior. As regras de validação são semelhantes:
- Endereços link-local (fe80::/10) não devem aparecer como origem de tráfego roteado.
- Endereços multicast não podem ser origem.
- Endereços unspecified (::) apenas em DHCPv6 Solicit.
- Privacy Extensions (RFC 4941) geram endereços temporários para mitigar rastreamento de hosts.
- SLAAC (Stateless Address Autoconfiguration) deriva o host ID do MAC via EUI-64.
Em suma, o campo Source Address é a assinatura de remetente do datagrama IP. Sua correta configuração, validação e proteção (contra spoofing) são fundamentais para o funcionamento seguro e confiável da Internet.