ARP와 ARP 스푸핑

sunnyjjang·2025년 6월 6일

네트워크

목록 보기
22/26
post-thumbnail

ARP 프로토콜


1. ARP(Address Resolution Protocol) 란?

동일한 네트워크 대역에서 통신하기 위해 IP 주소를 MAC 주소로 변환하기 위해 사용하는 프로토콜


2. ARP 동작 과정

  • 동일 네트워크 대역
    1. 내 PC → 브로드캐스트 [브로드캐스트]

      목적지 IP 주소에 대한 MAC 주소를 알기 위해 ARP 요청 전송

    2. 목적지 → 내 PC [유니캐스트]

      목적지의 MAC 주소를 담아 ARP 응답 전송

    3. ARP 캐시 저장: 내 PC의 ARP 캐시 테이블

  • 다른 네트워크 대역
    1. 내 PC → 브로드캐스트 [브로드캐스트]

      라우터0(게이트웨이) IP 주소에 대한 MAC 주소를 알기 위해 ARP 요청 전송

    2. 라우터0 → 내 PC [유니캐스트]

      라우터0의 MAC 주소를 담아 ARP 응답 전송

    3. 내 PC → 라우터0 → 라우터1 [유니캐스트]

      패킷 라우팅

    4. 라우터1 → 목적지 PC [브로드캐스트]

      목적지 IP 주소에 대한 MAC 주소를 알기 위해 ARP 요청 전송

    5. 목적지 PC → 라우터1 [유니캐스트]

      목적지의 MAC 주소를 담아 ARP 응답 전송

기본 게이트웨이
: 네트워크 내의 장비가 해당 목적지에 대해 알지 못하는 경우 기본 게이트웨이로 패킷을 전달함


Q1. DHCP 과정에서 유니캐스트가 일어났으므로 내 PC와 라우터는 서로의 MAC 주소를 알고 있는 것 아닌가요?

DHCP 과정에서 MAC 주소를 기반으로 유니캐스트가 이루어짐
→ DHCP 서버가 라우터라고 가정하면 라우터와 내 PC는 서로의 MAC 주소를 통해 통신한 적 있음
→ BUT, 통신에 사용된 MAC 주소를 ARP 캐시에 저장하지는 않으므로 (WHY? DHCP =! ARP 프로토콜이 다르니까 즉 목적이 다르다고 생각하면 될 듯) MAC 주소 사용 불가능
→ 따라서 라우터의 MAC 주소를 알기 위해서는 결국 ARP 프로토콜 사용해야함

유니캐스트는 MAC 주소를 알아야 보낼 수 있음. 따라서 목적지의 IP 주소를 알아도 MAC 주소를 모르면 브로드캐스트 해야함


Q2. 왜 DHCP 통신에 사용한 MAC 주소를 ARP 캐시에 저장하지 않는건지?

왜 DHCP → ARP 캐시 자동 저장을 안 할까?

계층 간 책임 분리 원칙(Layer Separation)
1. DHCP는 L7(애플리케이션 계층), ARP는 L2(데이터 링크 계층)으로 OSI 모델은 계층 간 독립성을 중요하게 생각하기 때문에 위 계층은 아래 계층의 구체적인 구현 방식에 의존하지 않아야 함
2. DHCP는 IP 할당이 목적이지, MAC ↔ IP 매핑 캐시 관리가 목적이 아님
→ 그래서 DHCP가 얻은 MAC 정보를 L2 계층의 ARP 캐시에 반영하지 않음


ARP 스푸핑


1. ARP 스푸핑이란?

로컬 네트워크 상에서 장치 간의 통신을 가로채거나 조작하는 공격 기법으로 ARP 프로토콜의 신뢰성 없는 구조를 악용한 대표적인 MITM(Man-In-The-Middle) 공격


2. ARP 스푸핑 공격 방식

공격자가 거짓된 ARP Reply를 보내서, 특정 IP 주소에 대해 자신이 가진 MAC 주소를 잘못 학습시키는 공격


3. ARP의 취약점

  • ARP의 인증 절차의 부재
  • ARP 캐시 자동 갱신
  • 브로드캐스트 사용

→ 공격자는 브로드캐스트를 쉽게 감지하고 거짓 MAC 주소를 담아 ARP 응답을 보내면 수신자는 검증 없이 캐시에 저장함


Q1. ARP 스푸핑 공격에서 IP 주소와 MAC 주소가 서로 다른 장치를 가리키는 문제는 고려 안 하는거야?

라우터로 패킷을 보낼 때, IP 주소는 실제 통신하고자 하는 외부에 있는 장치의 IP 주소이고 MAC 주소는 패킷을 전달할 바로 다음 홉을 가리키는것임.
따라서 애초에 이 MAC 주소는 IP 주소가 가리키는 장치의 MAC 주소가 아님ㅋ

profile
지금 이 순간이 다시 넘겨볼 수 있는 한 페이지가 될 수 있게

0개의 댓글