본문 바로가기

보안

ARP table infection

ARP(Address Resolution Protocol) 프로토콜은 네트워크 상 IP주소를 MAC주소로 대응시키기 위해 사용하는 프로토콜이다.

이를테면, IP 호스트 A가 IP 호스트 B에게 IP 패킷을 전송하려고 할 때 IP 호스트 B의 물리적 네트워크 주소를 모른다면, ARP 프로토콜을 사용하여 목적지 IP 주소 B와 브로드캐스팅 물리적 네트워크 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크 상에 전송한다. IP 호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신하면 자신의 물리적 네트워크 주소를 A에게 응답한다.

 

이와 같은 방식으로 수집된 IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 다음, 패킷을 전송할 때에 다시 사용된다. ARP와는 반대로, IP 호스트가 자신의 물리 네트워크 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해 RARP(MAC에서 IP 얻는 프로토콜)를 사용한다

 

 

  • 흐름

ARP request을 보낸 후 ARP reply 패킷을 확인해  sender(victim)의 MAC 주소를 알아냄 -> 정상 ARP request

[infection request]

이더넷 source mac = 공격자의 mac 주소

이더넷 destination mac = sender(victim) mac 주소

arp의 opcode는 Reply로 설정

 

arp source mac = 공격자의 mac 주소

arp target mac = sender(victim) mac 주소

arp source ip = target ip (주로 게이트웨이)

arp target ip = sender(victim) ip

 

- ARP 요청 패킷에 포함되는 target IP는 "목표" IP 주소

- 예: "나 이 IP 주소에 해당하는 MAC 주소를 알고 싶어!"

 

=> 공격자는 게이트웨이의 ip주소를 자신의 mac주소로 연결해 sender(victim)이 보내는 네트워크 트래픽을 가로챌 수 있음

=> 피해자의 arp table에 게이트웨이의 mac주소가 공격자의 mac주소로 변조되는 것