3 minute read

ARP

[Address Resoulution Protocol]

주소 결정 프로토콜 :

1️⃣ IP주소를 MAC 주소로 변환하는 프로토콜

2️⃣ IP주소를 물리적 네트워크 주소로 대응



ARP는 논리적인 주소(Logical Address)를 물리적 주소(Physical Address)로 변환하는 프로토콜을 의미한다.

논리적인 주소라함은 IP주소, 물리적 주소는 MAC 주소(하드웨어 주소)라고 생각하면 훨씬 편하다.

예를 들어 나의 IP는 192.168.35.10이라고 해보겠다.

그리고 나의 노트북 MAC주소는 AA:BB:CC:DD:EE:FF라고 해보겠다.

저의 IP주소는 나 말고도 다른 사람도 쓸 수 있다.

왜냐면 네트워크는 특정 구역마다 나누어져 있기 때문이다.

쉽게 라우터를 기준으로 나누어져 있다고 생각하면 된다. 그래서 논리적인 주소라 칭한다.

나의 노트북 MAC주소는 이 세상에 단 하나밖에 없다.

하드웨어 고유한 주소이기 때문에 물리적 주소라고 합니다.

같은 네트워크에서는 IP주소로 통신하지 않고 물리적 주소를 가지고 통신한다.


즉, MAC주소를 사용하여 통신한다는 것이다.

스위치가 왜 2계층에 동작하는 것이 그 이유입니다.

2계층에서 MAC주소만 보아 정보 전송을 하면 되니까.

어쨌든, IP주소를 MAC주소로 변환하는 프로토콜이 ARP라고 하는 것이다.


ARP의 동작 방식을 보도록 하겠다.

1️⃣ 초기 Host A는 192.168.30.6에 MAC주소를 모르니까 네트워크 전체에 192.168.30.6에 대한 MAC주소를 물어보는 요청을 보낸다.

image

2️⃣ 이 IP주소에 맞는 다른 호스트는 자신의 MAC주소를 담아 응답을 보낸다.

요청 메시지에 자신의 MAC주소를 요청한 호스트 A의 IP주소가 있기 때문에 A에게 응답을 곧장 보낼 수 있다.

Untitled

3️⃣ 3. MAC주소를 알아낸 호스트 A는 ARP의 정보를 담고 있는 저장소에 192.168.30.6의 MAC주소를 업데이트 한다. 이 저장소를 ARP Cache라고 하며 일정 시간 후에 이 정보를 삭제한다.



쉽게 말해 MAC 주소란?

네트워크 인터페이스에 할당된 고유 식별자로 네트워크 인터페이스

카드에 공장에서 출고 될 때부터 부여된 평생 사용하는 고유한 주소를 말한다



RARP

[Reveres ARP]

역 주소 결정 프로토콜 :

1️⃣ MAC 주소를 IP 주소로 변환하는 프로토콜

2️⃣ 물리적 네트워크 주소를 IP주소로 대응


반대로 MAC주소를 IP주소로 변환하는 프로토콜은 무엇일까요? ARP의 반대 과정을 거친다고 하여 RARP(Reverse ARP)라고 한다.

RARP 동작이 되려면 따로 RARP 서버가 존재해야 한다.


자신의 IP를 모를때 이 프로토콜을 사용하고, 동작방식은 아래의 순서와 같다.

1️⃣  최초 호스트 A는 자신의 IP를 모르는 상태이기 때문에 IP를 요청하는 RARP Request를 Broadcasting으로 보낸다.

이때 요청에는 자신의 MAC주소가 기재되어있다.

https://blog.kakaocdn.net/dn/dvmwt4/btqZOsjnhsc/Rhlo4evhW7vVWWVaFt946K/img.png

2️⃣  RARP 서버는 요청한 호스트 A의 IP 주소를 담은 RARP 응답 메시지를 만들어 Host A에게 전송한다.

https://blog.kakaocdn.net/dn/lpdIg/btqZLtJU798/XxRuO7MeoDXbdwRFAgwEz1/img.png



ARP Cache

실제 ARP cache는 어떻게 생겼을까? 

cmd 창을 열고

 arp -a 명령을 처보면 아래와 같이 ARP Cache 내용을 볼 수 있다.

arp -a

여기에 IP주소(인터넷 주소)와 MAC주소(물리적주소)가 보일 것이다.

그리고 맨 오른쪽에 정적, 동적이 보이는데, 정적은 등록된 ARP정보가 수동으로 시스템 종료가 되기 전까지 영구적으로 설정이 된것이고 동적은 컴퓨터가 알아서 설정한 것이고 시간이 지나면 없어지게 된다.

스크린샷 2023-04-23 오후 5.38.58.png

ARP Cache내용을 지우려면 

arp -d


arp -d 를 사용하면 된다.

arp -d를 쳤을때 관리자 권한이 필요하다고 나온다면

cmd를 오른쪽 마우스를 클릭하면 관리자 권한으로 실행이라는 항목이 보이실 것이다.이것을 통해 cmd를 실행하면 된다.

해당 화면을 지워도 될까?

단순히 컴퓨터를 쓰는 일반 사용자라면 지워도 다시 업데이트 될것이다.

그 후 arp -a를 보면 반드시 필요한 몇개의 MAC주소를 제외하면 지워진것을 볼 수 있습니다.

그리고 정적으로 MAC주소를 등록하려면

arp -s를 이용하면 된다.

아래와 같이 “arp -s IP주소 MAC주소” 를 입력하면 됩니다.

arp -s

스크린샷 2023-04-23 오후 5.47.22.png

(내 노트북은 맥북이라 아마 윈도우 운영체제와 표시 방법이 조금씩 다르다.

참고 부탁한다. )



ARP 스푸핑(ARP Spoofing)

혹은 ARP Cache Poisoning이라고 한다.

공격자는 두 호스트의 통신을 감시하기 위해서 두 호스트의 ARP Cache를 변경하는 것을 공격방법이다.

공격자는 아래의 그림처럼 지속적으로 ARP 응답을 보냅니다.

물론 잘못된 정보로 말이다.

https://blog.kakaocdn.net/dn/C4Pw4/btqZMmRhE9a/0M8KV2bFP2ubXAfe0ZA9a0/img.png

만약 동적으로 ARP 정보가 등록되어있다면 시간이 지나면 삭제되는 것을 이용한다.

그때 응답을 받으면 피해 컴퓨터는 잘못된 정보로 ARP Cache를 업데이트하게 된다.

여기서 AA:AA:AA:AA:AA:AA의 MAC주소를 갖는 호스트를 Alice, BB:BB:BB:BB:BB:BB의 MAC주소를 갖는 호스트를 Bob라고 부르도록 하겠다.

공격자 자신은 정상적인 ARP Cache를 가지고 있다.

이때 Alice가 Bob에게 데이터를 전송할때 C에게 그 정보를 전송한다.

맨 처음에 같은 네트워크는 MAC주소만 보고 그 데이터를 전달한다고 했었는데

그러므로 당연히 공격자의 MAC주소인 CC:CC:CC:CC:CC:CC으로 전달하게 된다.공격자는 이제 Alice의 데이터를 볼 수 있다.

그리고 이것을 다시 정상적인 Bob에게 전달합니다.

이렇게 Alice와 Bob를 속이고 그 당사자인척 하는 공격방법이 스푸핑이라고 한다.



https://blog.kakaocdn.net/dn/b9Gsp2/btqZP2dtdvg/1agbiGbPzFqBKSEkJSjyhk/img.png

ARP spoofing

반대로 Bob이 Alice에게 데이터를 보낼때도 공격자를 거쳐가게 되는데

Bob의 ARP Cache도 오염되어 공격자의 MAC주소로 업데이트되었기 떄문이다.

공격자는 2계층(데이터)의 MAC주소를 그 사람인척 위장해야하므로 같은 네트워크에 위치해야한다.

대응

  • 위에서 본 정적 arp cache를 구성하면 시스템 종료시까지 막을 수 있다.

    또한 시스템 가동시마다 arp를 정적으로 구성해주어야한다.

    물론 매번 arp를 정적으로 구성하는 것은 까다로울 수 있으니 자동화된 프로그램을 사용하는 것이 좋다!

  • arp cache의 변경을 감지하는 프로그램을 사용할 수도 있다.

Leave a comment