ARP (Address Resolution Protocol)
ARP 프로토콜이란 주소 해석 프로토콜이다. 네트워크 계층 (Layer3) 에서 사용하는 IP 주소를 물리 주소인 MAC 주소로 대응시켜주는 역할을 한다. 반대로 해당 MAC주소로 대응되는 IP 주소를 얻는 프로토콜은 RARP (Reverse Address Resolution Protocol) 이라고 한다.
그렇다면 왜 굳이 IP주소를 MAC 주소로 변환을 해주어야 할까 ?
두 단말 간 통신을 할 때는 결국 고유한 물리 주소인 MAC주소로 통신을 해야 하기 때문이다. MAC주소는 LAN카드에 할당되는 고유한 물리조소로 전세계에서 유일한 목적지 주소이기 때문이다.
다음은 동일한 네트워크 상에 존재하는 호스트들의 IP주소와 MAC주소를 확인하는 arp 명령어이다.
$ arp -a
특정 IP 주소에 대한 MAC주소를 확인하는 arp 명령어
$ arp -n -a IPADDRESS
ARP 프로토콜의 동작
ARP 프로토콜의 동작 방식은 통신하려는 두 단말이 같은 네트워크 상에 있는 경우와 다른 네트워크 상에 있는 경우로 나뉘어진다.
1. 같은 네트워크 상에 있는 경우
Host A가 Host B와 통신하는 상황이다. 같은 네트워크 상에 있는 경우 스위치를 거쳐서 MAC주소를 얻는다.
1. A는 같은 네트워크 대역에 ARP 요청을 브로드캐스트 방식으로 전송한다. 이때 브로드캐스트 방식으로 전송하는 이유는 목적지인 B의 MAC주소를 모르는 상황이므로 같은 네트워크에 연결되어 있는 모든 단말에 전송하는 것이다. 브로드캐스트 방식으로 ARP 요청을 보내서 B의 IP 주소를 가진 단말이 있는지 물어본다. 이때 A는 아직 B의 MAC 주소를 모르는 상황이므로 MAC 주소를 디폴트값인 기본 게이트웨이 주소 FF:FF:FF:FF:FF:FF로 기록한다.
2. 스위치는 A 의 MAC주소가 자신의 MAC 주소 테이블에 없는 경우 기록한다. 그리고 스위치 자신의 MAC 주소 테이블에 B의 IP주소에매칭되는 MAC주소가 있으면 A에게 B의 MAC주소를 알려준다.
3. 스위치도 B의 MAC주소를 모르는 경우, Host B까지 ARP 요청이 전달된다. B는 자신의 MAC 주소를 알려주는 응답을 보낸다. 이 응답을 받은 스위치는 B의 MAC주소를 자신의 MAC 주소 테이블에 저장한다.
4. Host A는 ARP 프로토콜을 통해 전달받은 B의 MAC주소를 확인 후 Host B와 통신한다.
2. 다른 네트워크 상에 있는 경우
같은 네트워크 상에서 ARP 는 서로의 MAC 주소를 기록하지만, 다른 네트워크 상에 있는 경우 라우터를 통해 통신하게 된다.
1. PC0 은 같은 네트워크 대역에 브로드캐스팅 방식으로 ARP 요청을 보내서 PC3의 IP 주소를 가진 단말이 있는지 확인한다.
2. Router0는 ARP 요청을 받고 의 IP 주소가 같은 네트워크 내에 있지 않기 때문에 Router0 자신의 MAC 주소(Default Gateway)로 응답한다.
* Default Gateway : 기본적으로 설정된 라우팅 경로. 특정 목적지로 가는 패킷이 들어왔을 때 장비가 해당 목적지에 대해 알지 못하는 경우 Default Gateway로 전달한다. 여기서는 Default Gateway가 Router0의 주소가 된다.
3. Router0은 PC0의 MAC 주소를 기록하고, Router1로 패킷을 라우팅한다.
4. 패킷을 확인한 Router1은 네트워크 대역에 ARP request를 브로드캐스팅하여 PC3의 IP 주소를 가진 단말이 있는지 확인한다.
5. PC3이 패킷의 목적지가 자신의 IP 주소인 것을 확인하게 되면, Router1에게 자신의 MAC 주소를 알려준다. Router1은 PC3의 MAC주소를 기록한다.
6. Router0, Router1에 기록된 MAC 테이블을 기반으로 A와 B가 통신을 시작한다. 각 단말은 방금 통신한 IP 주소에 해당하는 MAC 주소를 일정시간동안 보관한다. 이를 ARP Cache 라고 한다.
ARP 스푸핑이란 ?
ARP 스푸핑이란 희생자에게 공격자가 잘못된 MAC 주소가 담긴 ARP 응답을 보내서 희생자의 ARP 캐시를 조작하고, 희생자로부터 정보를 빼내는 해킹 기법이다. (ex. 희생자의 로그인 정보 패스워드, 아이디 ...) ARP 에 응답으로 받은 MAC 주소가 진짜 MAC주소인지 아닌지를 검증하는 과정이 없는 취약점을 이용한 공격 기법이다.
동작 과정은 다음과 같다.
1. 공격자는 희생자에게 Gateway의 IP 주소와 공격자 자기자신의 MAC주소를 담은 ARP Reply를 지속적으로 보낸다.
2. 희생자는 공격자가 보낸 잘못된 정보를 ARP table에 그대로 저장한다.
3. 희생자는 공격자를 Gateway라고 생각하고 공격자의 MAC주소로 데이터를 보낼 것이다.
ARP 스푸핑 대응 방법
1. 네트워크 장비에서 서로 다른 IP 에 대한 동일한 MAC 주소가 매핑되었는지 확인한다. (동일한 MAC 주소인 경우 공격자가 보낸 정보일 수 있음)
2. ARP 스푸핑 감지 소프트웨어 사용하기
3. ARP 테이블을 정적으로 관리한다.
자료 출처
https://www.youtube.com/watch?v=RCPjpLCsJVY
https://daengsik.tistory.com/15
'Computer Science > 네트워크' 카테고리의 다른 글
[Network] 쿠키와 세션을 이용한 로그인 구현 (0) | 2023.03.19 |
---|---|
[Network] 서브넷팅 (Subnetting), 서브넷마스크(SubnetMask) 슈퍼넷팅 (Supernetting) (0) | 2023.03.05 |
[Network] IP 클래스와 IPv4, IPv6 주소체계 (2) | 2023.03.05 |
[네트워크] SSL/TLS Handshake 과정 (0) | 2023.02.12 |
[Network] Link Layer(2) - 이더넷(Ethernet)과 ARP 테이블, 프레임 구조 (0) | 2022.12.31 |