IP spoofing é o ato de criar pacotes de Internet Protocol (IP) com um endereço IP de origem forjado, fazendo com que os pacotes pareçam ter vindo de uma máquina ou usuário diferente do real.
A operação fundamental do IP spoofing consiste em modificar o campo de endereço IP de origem dentro do cabeçalho IP de um pacote. Essa manipulação faz o sistema receptor acreditar que o pacote veio do endereço IP de origem especificado — muitas vezes legítimo, porém incorreto. A técnica explora a natureza sem estado do próprio IP, em que os pacotes são roteados com base nos endereços de destino, sem verificação inerente da origem.
Como funciona o IP spoofing
Um pacote IP contém um cabeçalho com campos como endereço IP de origem, endereço IP de destino, tipo de protocolo e checksum. Quando um sistema envia um pacote, ele preenche o campo de endereço IP de origem com o próprio IP. Em um ataque de IP spoofing, o atacante constrói os pacotes manualmente e insere um endereço IP arbitrário no campo de origem.
Exemplo de construção de pacote (Python com Scapy)
Atacantes podem usar ferramentas ou scripts próprios para forjar esses pacotes. Por exemplo, usando scapy em Python:
from scapy.all import IP, TCP, send
# Define o IP de origem falsificado e o IP de destino alvo
spoofed_ip = "192.168.1.100" # Exemplo: um host da rede interna
target_ip = "10.0.0.50" # Exemplo: um servidor sendo atacado
# Monta um pacote IP com a origem falsificada
ip_layer = IP(src=spoofed_ip, dst=target_ip)
# Adiciona uma camada TCP (ex.: pacote SYN para tentativa de conexão)
tcp_layer = TCP(dport=80, flags="S") # Porta alvo 80, flag SYN
# Combina as camadas
spoofed_packet = ip_layer / tcp_layer
# Envia o pacote (requer privilégios de root/admin)
send(spoofed_packet)
print(f"Sent spoofed packet from {spoofed_ip} to {target_ip}")
Este exemplo demonstra o envio de um pacote TCP SYN em que o endereço IP de origem é definido como 192.168.1.100 em vez do IP real do remetente. O sistema alvo 10.0.0.50 receberia esse pacote e o processaria como se tivesse vindo de 192.168.1.100.
O problema do tráfego de retorno
Um desafio significativo para atacantes que usam IP spoofing é lidar com o tráfego de retorno. Quando o sistema alvo responde a um pacote falsificado, ele envia a resposta para o endereço IP de origem forjado, e não para o IP real do atacante.
- Spoofing cego (blind spoofing): nesse cenário, o atacante não recebe as respostas do alvo. Isso é eficaz para ataques que não exigem conexão bidirecional ou estabelecimento de sessão, como:
- Ataques de negação de serviço (DoS): inundar um alvo com pacotes falsificados (ex.: SYN floods, UDP floods), em que as respostas não são críticas para o sucesso do ataque.
- Ataques de amplificação DDoS: usar um servidor refletor (ex.: DNS, NTP) para enviar uma resposta grande a um endereço IP de vítima falsificado. O atacante falsifica o IP da vítima como origem, enviando uma pequena requisição ao refletor, que então envia uma resposta grande à vítima.
- Spoofing não cego (non-blind spoofing): é mais complexo e exige que o atacante consiga interceptar o tráfego de retorno. Normalmente isso só é possível dentro de um segmento de rede local, em que o atacante pode espionar o tráfego destinado ao IP falsificado, ou se o atacante controlar os caminhos de roteamento. Exemplos incluem:
- ARP spoofing (camada 2): relacionado, mas distinto: endereços MAC são falsificados para interceptar tráfego local.
- Sequestro de sessão (session hijacking): se o atacante conseguir prever números de sequência e injetar pacotes em uma sessão existente, potencialmente mesmo sem receber todo o tráfego de retorno.
Motivações para o IP spoofing
Atacantes empregam IP spoofing por vários motivos:
- Anonimato: ocultar sua identidade e origem reais, dificultando o rastreamento.
- Burlar controles de segurança: alguns sistemas de segurança usam o endereço IP para autenticação ou listas de controle de acesso (ACLs). O spoofing permite que um atacante se passe por um host confiável.
- Ataques de negação de serviço (DoS) e negação de serviço distribuída (DDoS): como mencionado, o spoofing é uma técnica comum nesses ataques para esconder a origem do atacante e amplificar o volume do ataque.
- Evadir sistemas de detecção de intrusão (IDS): ao alterar os IPs de origem, atacantes podem tentar escapar da detecção ou distribuir a pegada do ataque.
Proteção contra IP spoofing
A proteção eficaz contra IP spoofing exige uma abordagem em várias camadas, envolvendo a infraestrutura de rede, a segurança no host e controles em nível de aplicação.
1. Filtragem de ingresso (BCP 38)
A filtragem de ingresso, definida pela RFC 2827 (hoje BCP 38), é uma defesa crucial implementada por provedores de internet (ISPs) e operadores de rede. Ela consiste em checar os pacotes que entram (ingresso) nas fronteiras da rede para garantir que seu endereço IP de origem pertença ao bloco de rede do qual estão vindo.
- Mecanismo: roteadores examinam o endereço IP de origem dos pacotes que entram na sua rede. Se um pacote alega vir de um endereço IP que não está alocado a clientes daquela interface de ingresso específica, o roteador descarta o pacote.
- Impacto: isso impede que atacantes externos lancem pacotes falsificados alegando origem dentro do próprio espaço de endereçamento do ISP ou de outros espaços externos. Reduz significativamente a eficácia de ataques de spoofing cego atravessando fronteiras de rede.
2. Filtragem de egresso
A filtragem de egresso é implementada dentro da rede interna de uma organização, na fronteira com a rede externa.
- Mecanismo: firewalls ou roteadores checam os pacotes de saída (egresso) para garantir que seu endereço IP de origem pertença à rede interna da organização.
- Impacto: isso impede que sistemas internos comprometidos ou insiders maliciosos lancem pacotes falsificados alegando origem em endereços IP externos. Também ajuda a evitar que a rede da organização seja usada como origem de ataques de amplificação DDoS.
| Recurso | Filtragem de ingresso | Filtragem de egresso |
|---|---|---|
| Localização | Fronteira do ISP/rede upstream | Fronteira da rede da organização (saída) |
| Direção | Tráfego de entrada vindo das redes de clientes | Tráfego de saída vindo da rede interna |
| Objetivo | Impedir que IPs falsificados entrem na rede | Impedir que IPs falsificados saiam da rede |
| Benefício principal | Protege a internet de ataques originados em IPs falsificados | Protege outras redes de ataques originados na sua rede interna |
3. Números de sequência TCP
Em protocolos orientados a conexão como o TCP, os números de sequência são usados para garantir que os pacotes sejam recebidos na ordem correta e para evitar ataques de repetição.
- Mecanismo: durante o handshake TCP (SYN, SYN-ACK, ACK), os números de sequência iniciais (ISNs) são trocados. Os pacotes seguintes incrementam esses números.
- Impacto: se um atacante tentar injetar um pacote falsificado em uma sessão TCP existente sem saber o número de sequência correto, o sistema receptor normalmente descarta o pacote, pois ele não cabe na janela de sequência esperada. Isso torna o spoofing não cego de sessões TCP ativas muito difícil, a menos que o atacante consiga prever ou observar os números de sequência com precisão.
4. IPsec
IPsec (Internet Protocol Security) é um conjunto de protocolos que fornece serviços de segurança na camada IP.
- Mecanismo: o IPsec pode autenticar a origem dos pacotes IP usando métodos criptográficos (ex.: AH — Authentication Header) e criptografar os dados (ESP — Encapsulating Security Payload).
- Impacto: quando o IPsec é implementado corretamente, ele garante que os pacotes realmente vêm da origem declarada e não foram adulterados em trânsito. Isso mitiga efetivamente o IP spoofing para o tráfego protegido por IPsec.
5. Serviços de proxy
Os serviços de proxy têm um papel duplo no contexto de endereços IP: por natureza, mudam o IP de origem aparente das conexões de saída e podem oferecer proteção contra spoofing malicioso.
- Anonimato/mascaramento do IP de origem: quando um cliente se conecta por um proxy, o servidor de destino vê o endereço IP do proxy como origem, não o IP original do cliente. Essa é uma forma legítima de alteração de endereço IP, que garante anonimato ou permite controle de acesso baseado no IP do proxy. É diferente do IP spoofing malicioso, pois o proxy atua legitimamente como intermediário.
- Filtragem e validação: um serviço de proxy robusto pode implementar suas próprias regras de filtragem. Ele valida as requisições recebidas dos clientes antes de encaminhá-las. Se um cliente tentar enviar tráfego com IP de origem falsificado (ex.: em um cabeçalho customizado ou em protocolo de camada de aplicação), o proxy pode detectar e bloquear isso.
- Autenticação: proxies podem impor mecanismos fortes de autenticação (ex.: usuário/senha, certificados de cliente) para que clientes acessem os serviços. Isso garante que, mesmo se um atacante conseguir falsificar um endereço IP, ele não consiga burlar a autenticação exigida pelo proxy.
- Rate limiting: proxies podem aplicar limitação de taxa por cliente ou por destino, mitigando o impacto de ataques DoS mesmo se parte do tráfego falsificado chegar ao proxy.
- Segurança em camada de aplicação: proxies operam em camadas mais altas (ex.: proxies HTTP/HTTPS). Eles podem inspecionar e validar cabeçalhos e conteúdo da camada de aplicação, oferecendo uma defesa além da filtragem em nível de IP. Por exemplo, um proxy pode verificar cabeçalhos HTTP
X-Forwarded-Forpara garantir que estejam consistentes ou para remover os potencialmente maliciosos.
6. Outros mecanismos de autenticação
Depender apenas de endereços IP para autenticação (ACLs baseadas em IP) é inerentemente inseguro, dado o risco de spoofing.
- Mecanismo: implemente métodos de autenticação mais fortes, como:
- Usuários e senhas: autenticação padrão.
- Autenticação multifator (MFA): adiciona uma camada extra de segurança.
- Certificados digitais: certificados no lado do cliente para autenticação TLS mútua.
- Chaves/tokens de API: para acesso programático.
- Impacto: mesmo que um atacante falsifique um endereço IP, ele não consegue acesso não autorizado sem credenciais ou certificados válidos.
7. Firewalls e sistemas de detecção/prevenção de intrusão (IDS/IPS)
- Mecanismo: firewalls podem ser configurados para descartar pacotes com IPs de origem inválidos (ex.: endereços IP privados em interfaces externas, endereços de loopback). Sistemas IDS/IPS conseguem detectar padrões de tráfego anômalos ou assinaturas que indicam tentativas de spoofing, como um súbito fluxo de pacotes vindos de IPs de origem inexistentes ou inesperados.
- Impacto: esses sistemas fornecem monitoramento e bloqueio em tempo real, adicionando mais uma camada de defesa contra várias formas de IP spoofing.
