Seu computador tem dois endereços na Internet: um endereço físico permanente ou endereço de Controle de Acesso à Mídia (MAC) e um endereço lógico ou endereço de Protocolo de Internet (IP) Mas, com muitos computadores mudando os endereços IP o tempo todo, como as redes podem associar vários IPs a um único endereço MAC?

Entre em cena o ARP, formalmente conhecido como Protocolo de Resolução de Endereço.

O trabalho do ARP é traduzir entre o endereço MAC de um computador e o(s) endereço(s) IP – uma função bastante útil para qualquer rede. Apesar de sua utilidade, entretanto, o ARP também pode apresentar vários riscos de segurança, incluindo aqueles que podem interceptar dados potencialmente sensíveis.

Mas como tudo isso funciona?

Neste artigo, vamos explicar o que é ARP, compará-lo a outros protocolos de rede, abordar seus diferentes tipos e usos, e discutir os riscos associados ao seu uso. Saiba mais sobre este protocolo de rede tão comum, mas que pode ser arriscado.

Veja o nosso guia em vídeo sobre ARP:

O que é ARP?

O Protocolo de Resolução de Endereços ou ARP é uma forma comum de redes traduzirem entre (ou resolverem) o endereço IP de um computador para o seu endereço físico de máquina.

Como estes dois endereços diferem em comprimento e formato, o ARP é essencial para permitir que computadores e outros dispositivos se comuniquem através de uma rede. Para realmente entender por que isso é importante, no entanto, vamos revisar rapidamente esses dois tipos de endereços e como eles se relacionam com nossos modelos de rede diários.

ARP vincula os endereços MAC e IP de um computador.
ARP vincula os endereços MAC e IP de um computador.

Endereços IP vs MAC

Seu computador, smartphone e outros dispositivos conectados têm dois endereços na Internet: um endereço IP e um endereço MAC.

Mas por que ter dois endereços separados para um dispositivo?

Imagine por um momento que seu computador é uma casa móvel. Quando a casa móvel sai da linha de produção, ela pode ter um número de série (ou algum outro identificador único) que a distingue de todas as outras casas móveis. Em outras palavras, a casa móvel pode ser identificada pelo seu número de série.

As casas móveis têm números de série únicos.
As casas móveis têm números de série únicos.

Agora vamos dizer que você estaciona a casa móvel no seu bairro. Dependendo de qual lote você estacionou, a casa móvel receberá um endereço de rua – digamos “27 Kinsta Lane” Se a sua casa móvel estiver estacionada nesse mesmo lote, o endereço da rua permanecerá 27 Kinsta Lane. No entanto, você poderia facilmente movê-la pela rua para dar-lhe um novo endereço, como “93 Kinsta Lane”

Note que estacionar sua casa móvel lhe dá duas formas de identificação: seu número de série e endereço da rua. Aqui, o endereço da rua indica a todos onde a casa móvel está localizada em relação ao resto do mundo, enquanto o número de série distingue a casa móvel de outras que possam estar no mesmo lote.

Os endereços IP e MAC do seu computador servem exatamente aos mesmos propósitos, só que o bairro do nosso exemplo agora é uma rede local.

Neste contexto, o endereço MAC do seu computador é seu identificador físico único em uma rede — muito como o número de série da sua casa móvel era seu identificador físico único. Com isso em mente, o endereço MAC é frequentemente conhecido como endereço físico ou endereço de hardware. Assim como um número de série, você não pode alterar o endereço MAC do seu computador.

Um endereço MAC impresso diretamente no hardware
Um endereço MAC impresso diretamente no hardware (Fonte: LearnTomato)

Enquanto isso, o endereço IP do seu computador é o seu “endereço de rua” na rede. Quando um computador se conecta a uma rede, é atribuído um endereço IP assim como uma casa móvel é atribuído um endereço de rua, uma vez estacionado em um lote.

Entretanto, se o computador se desconecta da rede, ele perde o endereço IP, assim como a remoção de uma casa móvel de um lote irá desassociá-lo do seu endereço de rua. Reconectar-se à rede também é o mesmo que estacionar a casa móvel em outro lugar, onde o computador receberá um novo endereço IP, assim como a casa móvel receberá um novo endereço de rua.

Naturalmente, os endereços IP e MAC ainda são muito diferentes dos endereços de rua e números de série.

Assim como um carteiro consegue entregar correspondência a uma casa móvel sem precisar conhecer o número de série dela, na Internet a situação é diferente. O Protocolo de Internet ou IP necessita de ambos os endereços para entregar correspondência ou pacotes ao computador correto.

Principais diferenças entre MAC e endereços IP
Principais diferenças entre MAC e endereços IP (Fonte: TechTarget)

Em resumo, endereços MAC e endereços IP identificam dispositivos em uma rede de diferentes maneiras. Aqui estão algumas das principais diferenças entre os dois:

  • Endereçam camadas diferentes. MAC e IP operam em diferentes camadas do Modelo de Interconexão de Sistemas Abertos (OSI), que descreve as várias etapas pelas quais os dados passam quando são enviados entre computadores. Sem nos aprofundarmos muito, os endereços MAC funcionam na camada de Enlace de Dados (ou camada 2), que traduz diretamente os sinais elétricos enviados por um cabo e os dados lógicos. Já os endereços IP funcionam uma camada acima, na camada de Rede (ou camada 3), que lida com endereçamento e roteamento em toda a rede — quase como escrever um endereço em um envelope.
  • Escopo local vs global. Os endereços MAC são usados para identificar diferentes dispositivos em uma escala “local”, como diferentes computadores compartilhando uma rede em um prédio de escritórios. Os endereços IP funcionam de forma mais global, controlando como dispositivos em toda a Internet se localizam e se comunicam.
  • Diferentes formatos de endereços. Como os endereços MAC e IP funcionam em diferentes camadas e fazem coisas diferentes, eles também têm formatos diferentes. Um endereço MAC tem um formato de número serial de 12 dígitos agrupados em pares e separados por hifens ou dois pontos (00:00:00:00:00:00), enquanto um endereço IPv4 é um endereço de 32 bits (bit que significa dígito binário) agrupado em quatro números decimais (000.000.000.0000). Embora você não precise saber as especificações por enquanto, note que associar estes dois formatos de endereço é a principal função do ARP.
  • Os endereços MAC são permanentes. Os endereços MAC são atribuídos para um dispositivo pelo fabricante assim que ele é construído. Este endereço é essencialmente “integrado” no hardware de rede do dispositivo, tornando permanente e imutável – assim como o número de série da nossa casa móvel de antigamente. Os endereços IP são temporários e são atribuídos sempre que o dispositivo se conecta a uma rede. Como resultado, os dispositivos podem assumir qualquer número de diferentes endereços IP ao longo da sua vida útil.
  • Físico vs lógico. Por extensão do acima, um endereço MAC também é conhecido como endereço físico ou endereço de hardware, enquanto endereços IP são às vezes (mas não tão comumente) conhecidos como endereços lógicos.
  • Atribuídos em momentos diferentes. Como mencionado anteriormente, os endereços MAC são atribuídos uma vez no momento da fabricação. Endereços IP podem ser atribuídos várias vezes depois disso, sempre que o dispositivo se conecta a uma rede.

Então, onde entra o ARP?

Como todo computador possui ambos os endereços, deve haver uma maneira de associar um ao outro para os pacotes serem entregues no lugar certo. Isso nos leva à função principal do ARP: vincular o endereço MAC de um dispositivo ao seu endereço IP em constante mudança e vice-versa.

Vamos examinar mais de perto como exatamente isso funciona.

Como o ARP funciona?

Agora que respondemos, “O que é ARP?” vamos entender como ele funciona. O ARP mantém uma lista atualizada de endereços MAC e seus endereços IP associados. Esta lista é normalmente mantida por um gateway ou roteador – essencialmente, qualquer switch de rede responsável por gerenciar o fluxo de dados entre redes e dispositivos.

Para entender isso, vamos dar uma olhada no diagrama abaixo.

ARP em uma rede Ethernet
ARP em uma rede Ethernet (Fonte: Fortinet)

Aqui, o computador “HOST” da esquerda está tentando enviar algo para o computador da direita com o endereço IP 34.40.21.20. Para enviar dados com sucesso para este computador, o computador “HOST” precisa de seu endereço IP e endereço MAC.

Felizmente, o computador HOST já tem o endereço IP do computador. Tudo o que ele precisa agora é o endereço MAC do computador, que é onde o ARP entra.

Dispositivos conectados à rede e switches (neste caso, um roteador) mantêm uma lista de traduções conhecidas de IP para MAC em seus sistemas operacionais. Essa lista é conhecida como cache ARP ou tabela ARP, que requer atualizações constantes para acompanhar os endereços IP em constante mudança.

Quando um computador quer enviar algo para um endereço IP específico, ele primeiro verifica seu cache ARP para ver se ele tem um endereço MAC correspondente. Ele envia pacotes de requisição para o endereço MAC se não tiver.

Vamos ilustrar este processo usando os dois computadores do diagrama:

  1. O computador HOST verifica seu cache ARP para ver se ele já sabe o endereço MAC de 34.40.21.20. Se souber, ele tem tudo o que precisa e envia a mensagem.
  2. O computador HOST envia uma solicitação para o endereço MAC do 34.40.21.20.
  3. O roteador recebe a solicitação de endereços de rede do computador HOST e usa o ARP para tentar localizar o endereço MAC.
  4. O ARP tentará referenciar o cache ARP existente do roteador, e se o endereço MAC não puder ser encontrado, ele envia uma solicitação para o endereço 34.40.21.20.
  5. 34.40.21.20 envia o endereço MAC deles (A5:22:98:5C:24:93) de volta para o roteador.
  6. O roteador atualiza seu cache ARP e envia o endereço MAC do 34.40.21.20 de volta para o computador HOST, completando a solicitação.
  7. O computador HOST envia algo para o 34.40.21.20.

Embora este seja apenas um exemplo básico, ele deve lhe dar alguma ideia da função central do ARP.

Outra função principal do ARP é manter (e limpar) as traduções de IP para MAC no cache do ARP. Manter o cache do ARP relativamente limpo não é apenas necessário para obter as informações mais recentes; isso também ajuda a eliminar endereços inexatos ou não utilizados. Como veremos mais tarde, limpar as traduções também é necessário para evitar que os endereços IP caiam em mãos erradas.

As entradas em um cache de ARP também podem ser dinâmicas ou estáticas. Entradas dinâmicas são aquelas preenchidas automaticamente da maneira que já descrevemos. No entanto, os usuários também podem especificar manualmente entradas estáticas que desejam manter permanentemente. Isso é útil para dispositivos de rede persistentes com endereços IP definidos (ou seja, estáticos).

ARP vs DHCP vs DNS: Qual é a diferença?

Se você está até um pouco familiarizado com rede, você provavelmente já ouviu falar do Dynamic Host Configuration Protocol (DHCP) e/ou do Domain Name System (DNS). Se assim for, você também pode se perguntar como o ARP em rede difere desses protocolos similares.

  • DHCP vs ARP: O ARP existe em grande parte porque os endereços IP estão sempre sendo alterados e reatribuídos em uma rede. O DHCP é responsável por essa mudança constante, sendo o protocolo que configura um endereço IP dinâmico para os hosts – daí o nome protocolo de configuração dinâmica de host. O DHCP também ajuda a evitar conflitos, como vários computadores recebendo o mesmo endereço IP.
  • DNS vs ARP: Onde o ARP associa endereços IP e MAC, o DNS associa endereços IP e nomes de domínio (tais como “kinsta.com”). Todos os sites dependem de hospedagem de sites para hospedar suas páginas web, imagens e qualquer outra coisa que os compreenda. Como qualquer outro dispositivo de rede, os servidores de hospedagem de sites têm um endereço IP. Graças ao DNS, entretanto, você não precisa digitar o endereço IP de um provedor de hospedagem de sites para acessar um site. Ao invés disso, você simplesmente digita uma URL como “www.example.com” e o servidor DNS busca o endereço IP correspondente para que seu navegador possa solicitar e servir as páginas web do servidor web.
DNS links a domain name to an IP address
O DNS vincula um nome de domínio a um endereço IP (Fonte: GeeksforGeeks)

Usos e tipos de ARP

Embora o ARP possa parecer um processo grande e monolítico, ele pode ser implementado de muitas maneiras diferentes.

Os quatro principais tipos de ARP
Os quatro principais tipos de ARP (Fonte: IPXO)

Ao explicar o que é ARP, existem quatro tipos especiais: ARP proxy, ARP gratuito, ARP reversa (RARP) e ARP inversa (IARP). Cada tipo apresenta casos de uso diferentes e, em alguns casos, vantagens e desvantagens distintas.

O que é ARP de Proxy?

Um proxy ARP é onde um switch configurado com ARP (como um roteador) lida com solicitações ARP (ou seja, solicitações de endereços MAC) de dispositivos/hosts fora de sua rede imediata. O switch envia seu próprio endereço MAC em resposta, atuando efetivamente como um “representante” de cada host em sua rede.

Roteador como ARP proxy para solicitações através de redes
Roteador como ARP proxy para solicitações através de redes (Fonte: Practical Networking)

Para esclarecer, vamos dar uma olhada mais de perto no diagrama acima. Aqui, o roteador verde no meio serve a duas redes locais separadas: 10.0.0.0/24 e 10.0.4.0/24.

Digamos que o Host B quer enviar uma mensagem para o Host D. Embora isso não seria problema se o Host D estivesse na mesma rede local (como o Host A), infelizmente ele está em uma rede diferente. Como resultado, o Host B se encontra em uma situação complicada: como ele pode obter o endereço MAC do Host D?

Felizmente, o roteador vem para o resgate. Quando o Host B envia uma mensagem de solicitação ARP para o roteador, o roteador intervém e fornece seu próprio endereço MAC em resposta. Com o endereço MAC do roteador em mãos, o Host B envia sua mensagem ao roteador, que agora está literalmente atuando como um “proxy” para o Host B. O roteador então envia a mensagem do Host B para o Host D, o destinatário pretendido.

Como você pode imaginar, o proxy ARP é extremamente comum em redes de computadores, com usos típicos, incluindo conexões VPN e firewalls.

No entanto, há algumas desvantagens de proxy do ARP, a maioria das quais decorre de configurações impróprias. Uma dessas desvantagens é o aumento do risco de enviar mensagens para lugares errados, já que dispositivos fora da rede podem não estar cientes de configurações impróprias ao lidar apenas com um ARP proxy. Os ARPs proxy também podem servir como vetores para ataques de negação de serviço (DoS), que iremos explorar um pouco mais tarde.

O que é ARP gratuito?

Um ARP gratuito é uma resposta ARP que não foi previamente solicitada. Em outras palavras, o ARP gratuito é gratuito com o envio de respostas ARP, transmitindo efetivamente sua tradução de IP para MAC para todos os hosts/dispositivos na rede. É quase como alguém enviando um “e-mail em massa” para informar a todos que atualizou suas informações de contato.

Um host notificando uma rede de um endereço MAC atualizado com um ARP gratuito
Um host notificando uma rede de um endereço MAC atualizado com um ARP gratuito (Fonte: IPCisco.com)

O ARP gratuito tem vários aplicativos úteis. Por exemplo, é essencial para atualizar caches ARP e mapeamento, especialmente quando um novo dispositivo ou node se junta à rede. No caso de um novo dispositivo, o ARP gratuito evita enviar e responder a solicitações ARP individuais para cada outro dispositivo na rede local.

Garantir redundância é outro uso importante para o ARP gratuito. Por exemplo, algumas redes redundantes podem usar dois ou mais roteadores com o mesmo endereço IP. Quando um desses roteadores falha, o roteador “sobrevivente” envia um ARP gratuito para informar a rede onde enviar as mensagens.

O que é ARP Reverso (RARP)?

O ARP Reverso (RARP) faz exatamente o que o nome sugere. Ele envia um endereço IP em vez de um endereço MAC.

Host enviando uma solicitação RARP para saber seu endereço IP
Host enviando uma solicitação RARP para saber seu endereço IP (Fonte: NetworkLessons)

Mas por que fazer isso? Os endereços IP não são já conhecidos pelos hosts em uma rede?

Nem sempre. Por improvável que pareça, alguns hosts nem mesmo sabem seus próprios endereços IP. Isso é geralmente resultado de um host simplesmente não ter memória ou espaço para armazenar suas informações de IP, tornando uma solicitação RARP necessária para comunicação. Lembre-se, apenas os endereços MAC são atribuídos permanentemente – e, como resultado, os hosts podem não saber nada além de seu endereço MAC!

O que é ARP Inverso (IARP ou InARP)?

Como o RARP, o ARP inverso (abreviado como IARP ou InARP) também envia endereços IP em vez de endereços MAC. No entanto, ao contrário do RARP, o ARP inverso funciona exatamente como o ARP tradicional, só que traduz os endereços MAC para endereços IP em vez de endereços IP para endereços MAC.

O IARP é especialmente útil para endereços IP em constante mudança (graças ao DHCP). Aqui, um host pode conhecer o endereço MAC de outro host ou roteador cujo endereço IP mudou desde então. Com apenas o endereço MAC em mãos, o IARP é necessário para o host obter o novo endereço IP e enviar sua mensagem.

O que é ARP Spoofing?

Também conhecido como ARP Poisoning, ARP Spoofing é onde os hackers enviam mensagens ARP falsas para uma rede alvo na tentativa de ligar seu próprio endereço MAC com um endereço IP legítimo na rede.

Como um hacker executa o ARP spoofing para interceptar o tráfego da rede (<b>Fonte:</b> <a href="https://www.okta.com/identity-101/arp-poisoning/" target="_blank" rel="“noopener” noopener">OKTA</a>)
Como um hacker executa o ARP spoofing para interceptar o tráfego da rede (Fonte: OKTA)

Se bem-sucedido, as mensagens destinadas ao computador com o endereço IP legítimo serão enviadas ao hacker em vez disso. Isso permite que o hacker lance vários outros tipos de ataques cibernéticos, incluindo:

Man-in-the-Middle (MTM)

Um ataque man-in-the-middle (MTM) é onde um hacker “escuta” o tráfego da rede, interceptando potencialmente dados valiosos, tais como senhas, informações bancárias, etc. No caso de ataques ARP falsos, os hackers usam mensagens ARP fraudulentas para redirecionar o tráfego da rede através de seus computadores, muitas vezes passando para o destinatário pretendido para fazer parecer que nada aconteceu.

Sessão Hijacking

A Sessão Hijacking ocorre quando um hacker rouba e toma controle do ID de sessão de um usuário, um tipo específico de informação que dá permissão para realizar certas ações em sites. Comumente distribuídos como cookies, esses IDs permitem que os usuários continuem conectados ou acessem carrinhos de compras salvos.

Ao redirecionar o tráfego através do ARP spoofing, os hackers podem facilmente obter acesso a IDs de sessão e personificar o usuário. Isso significa que eles conseguirão fazer qualquer coisa que o usuário esteja autorizado a fazer, como acesso a contas bancárias logadas.

Denial-of-Service (DoS)

Um ataque de negação de serviço (DoS – Denial-of-Service) ou distributed denial of service (DDoS) pode ser de duas formas: um hacker impedindo as mensagens de chegar a um host ou enviando uma quantidade excessiva de mensagens para sobrecarregá-lo. A segunda opção é a mais comum.

Em ambos os casos, no entanto, o ARP spoofing é o que permite aos hackers bloquear ou transmitir mensagens em massa. Ao interceptar o tráfego regular da rede, o hacker pode bloquear mensagens para seus destinatários pretendidos ou redirecioná-las para um único alvo.

Resumo

Aqui fornecemos uma resposta detalhada para “O que é ARP?” — um dos protocolos mais comuns e úteis em redes de computadores. Graças ao ARP, computadores e dispositivos de rede podem associar endereços MAC físicos com endereços IP em constante mudança, permitindo a fácil comunicação que desfrutamos hoje.

No entanto, mesmo o ARP mais bem-intencionado pode levar a vulnerabilidades de segurança e ciberataques. Com recursos de segurança como proteção DDoS, a hospedagem gerenciada de WordPress da Kinsta pode ajudar a proteger contra muitos ciberataques associados ao ARP spoofing.