5강-ARP
ARP(주소 결정 프로토콜, Address Resolution Protocol)은 같은 네트워크 대역에서 통신하기 위해 필요한 MAC 주소를 IP주소로부터 알아오는 프로토콜이다. ARP는 IP 주소를 사용해 상위 계층에서 데이터를 송신할 때, 네트워크 인터페이스 계층에서 목적지 MAC 주소를 알아내기 위해 사용된다.
ARP 메시지 구조

Hardware Type (0x0001)
하드웨어의 종류를 나타낸다.
일반적으로 이더넷은 0x0001로 표시
Protocol Type (0x0800)
상위 계층의 프로토콜을 나타낸다.
IPv4 프로토콜은 0x0800으로 표시
Hardware Address Length (6)
MAC 주소의 길이를 나타낸다. 이더넷에서는 6 바이트(48비트)
Protocol Address Length (4)
IP 주소의 길이를 나타낸다. IPv4에서는 4 바이트(32비트)
Op Code (1 또는 2)
ARP의 동작을 정의하는 코드
1: ARP 요청 (Request)
2: ARP 응답 (Reply)
ARP 통신 과정
상황 : 같은 네트워크 대역 A장비가 B장비에게 데이터를 전송하고 싶은 상황 IP는 알지만 MAC을 모른다. 2계층은 MAC주소 체계이기 때문에 통신을 위해서는 상대방의 MAC이 필요하다.
ARP 요청 브로드 캐스트 :
장비 A는 장비 B의 IP 주소를 알고 있지만 MAC 주소를 모른다. 따라서 A는 ARP요청 패킷을 생성하고, 목적지 MAC 주소를 F로 채워 (브로드캐스트 주소) 로 설정하여 전송한다.
스위치의 처리:
네트워크의 스위치는 이패킷을 수신하고, 목적지가 브로드캐스트 주소임을 확인하여 모든 포트로 전달한다.
디캡슐레이션 :
각 장비는 수신한 프레임을 디캡슐레이션하여 3계층의 패킷을 확인한다.
MAC 주소 확인 :
각 장비는 2계층 헤더를 확인하여 자신의 MAC 주소와 비교한다. 만약 MAC 주소가 FF..와 같지 않다면 해당 장비는 패킷을 무시한다.
IP 주소 확인 :
3계층의 패킷을 확인하여 IP주소가 자신의 IP주소와 같은지 체크한다. 만약 자신의 IP주소가 아니라면 해당 장비는 패킷을 버린다.
응답 패킷 생성
장비 B는 자신의 IP 주소를 확인한 후 , ARP 응답 패킷을 생성한다. 이 패킷에는 자신의 MAC주소를 포함하고 OPCODE 필드를 2로 설정하여 응답임을 표시한다.
유니캐스트 응답
장비 B는 ARP 응답 패킷을 장비 A의 MAC주소로 유니캐스트하여 전송한다.
ARP 캐시 업데이트
장비 A는 응답 패킷을 수신한 후 , ARP 캐시에 장비 B의 IP주소와 MAC 주소를 저장하여 다음 번 ARP 요청 없이도 직접 통신할 수 있도록 한다.
ARP 스푸핑
네트워크에서 공격자가 ARP프로토콜을 악용하여, 가짜 `MAC 주소로 다른 장치의 트래픽을 가로채거나 변조하는 공격방식이다. 해당 공격은 주로 중간자 공격의 형태로 사용된다.
공격 과정
공격자는 네트워크의 특정 장비에게 잘못된 ARP 응답 패킷을 보내 자신의 MAC 주소를 타깃 장비의 IP주소에 매핑시킨다.
이를 통해 네트워크의 다른 장비가 타깃 장비에 보내는 트래픽이 모두 공격자의 장비로 전달되게 만든다. 공격자는 이 트래픽을 가로채거나 변조할 수 있다.
시나리오 예시
상황: 네트워크에 세 대의 장비가 있따고 가정한다.
네트워크에 세 대의 장비가 있다고 가정한다:
A 장비: 사용자 (IP: 192.168.1.2)
B 장비: 라우터 (IP: 192.168.1.1)
공격자: 공격 장비 (IP: 192.168.1.10)
A 장비는 인터넷에 접속하기 위해 B 장비(라우터)를 통해 데이터를 주고받는다. 공격자는 중간에 ARP 스푸핑을 통해 트래픽을 가로채고자 한다.
공격 시나리오
공격자의 계획:
공격자는 A 장비와 B 장비가 서로 통신할 때 발생하는 데이터를 가로채고 변경된 데이터를 전달하고자 한다.
1단계: ARP 스푸핑 준비
공격자는 A 장비에게 "192.168.1.1(B 장비)의 MAC 주소는 공격자의 MAC 주소"라는 잘못된 ARP 응답을 보낸다.
B 장비에게는 "192.168.1.2(A 장비)의 MAC 주소는 공격자의 MAC 주소"라는 잘못된 ARP 응답을 보낸다.
2단계: ARP 캐시 중독:
A와 B 모두 공격자의 MAC 주소를 자신이 통신해야 할 대상의 MAC 주소로 믿게 된다.
A 장비는 192.168.1.1(B 장비)에게 데이터를 보낼 때, 공격자의 MAC 주소로 데이터를 전송하게 된다.
B 장비 역시 A 장비에게 데이터를 보낼 때, 공격자의 MAC 주소로 데이터를 전송하게 된다.
3단계: 중간자 공격 (Man-in-the-Middle):
공격자는 A 장비와 B 장비 사이의 모든 트래픽을 가로챌 수 있다.
공격자는 이 트래픽을 분석하거나 필요에 따라 데이터를 변조한 후 원래 목적지로 전달할 수 있다.
결과:
공격자는 A 장비와 B 장비 간의 모든 데이터를 실시간으로 감시하고, 민감한 정보를 수집할 수 있다.
Last updated