본문 바로가기

정보보안/네트워크 보안

[네트워크 기본학습] ARP/RARP(TCP/IP 인터넷 계층)

ARP/RARP

 

① 개념

  • 논리적인 주소 <-> 물리적인 주소 사이 변환 담당 프로토콜
  • ARP : 논리적인 주소(IP) -> 물리적인 주소(MAC) (IP 이거인 MAC 주소 가지고 계신분? )
  • RARP: 물리적인 주소(MAC) -> 논리적인 주소(IP) (내 MAC 이거야. IP 주소 내놔!)
    • 일반적으로 IP 주소는 시스템의 하드디스크 내 설정파일에 저장되어있지만 하드디스크가 없는 터미널의 경우에 초기 가동될 때 자신의 MAC 주소를 담아 RARP 요청을 만들어 자신의 IP 주소 정보를 받는다.

 

② 동작방식

  • ARP 동작방식
    1.  상대방의 물리적인 주소를 모르기 때문에 ARP Request 메시지를 만들어 Broadcast 한다. (= 이 IP 주소에 해당하는 MAC 주소 가진 기기 나오소)
    2. 해당 MAC 주소를 가진 호스트(Target Host)에선 ARP Reply를 만들어 Unicast 방식으로 응답한다. (= 얌마 나다 )응답메시지에 해당 Target 호스트의 MAC 주소가 담겨있으며 Target이 아닌 호스트들을은 수신한 브로드캐스트 요청 메시지를 폐기한다.
    3. 각 시스템은 ARP Cache가 있고 Cache에 이 정보를 보관한다. (이 IP는 이 MAC 주소를 갖고 있다라는 정보)
    4. 일정 시간 경과 후 해당 Cache 정보는 폐기된다.
  • RARP 동작방식 : 꺼꾸로 생각하면됨
    1.  내 MAC 주소 이거다. IP 주소 내놔 ~ (브로드캐스트)
    2. RARP 서버 : 너 MAC에 해당하는 IP 여깄다 임마 ~ (유니캐스트)

 

③ ARP Cache Table

  • ARP 요청을 통해 알아낸 MAC 정보는 OS에 따라 다르지면 통상 1-2분 정도 캐시테이블(메모리)에 저장한다.
  • arp - a 명령어를 통해 cache table을 살펴보면 타입이 dynamic/static으로 지정되어있다
    • dynamic : arp에 의해 동적으로 설정. (일정시간 유지)
    • static : 관리자에 의해 정적으로 설정. (관리자가 삭제하거나 시스템 종료 전까지 유지)
  • 관련 명령어
    명령어 옵션 내용
    arp  -a 캐시 내용 확인
    윈도우 : MAC 주소 구분자 '-' (ex. 00-01-02-03-04-50)
    리눅스 : MAC 주소 구분자 ':' (ex. 00:01:02:03:04:50)
    -d 윈도우: 캐시에 저장된 모든 내용 삭제
    리눅스 : 명령어에 IP 명시 필요. 삭제된 항목은 일정시간 <incomplete> 상태로 보인 후 삭제됨
    -s 윈도우 : 캐시 정적 설정 static으로 설정되며, 시스템 종료까지 유지
    리눅스 : 캐시 정적 설정, PERM으로 설정되며 시스템 종료까지 유지

 

④ GARP(Gratuious ARP)

  • 개념
    • Sender IP와 Target IP가 동일한 ARP 요청
    • ARP 요청 브로드캐스트를 통해 다른 장비에게 네트워크에 있는 자신의 존재를 알리는 목적으로 사용되는 패킷
  • 목적
    • IP 충돌 감지 : 자신과 동일한 IP가 설정된 호스트가 있다면 해당 호스트로부터 ARP  Reply가 오기 때문에 충돌여부를 확인할 수 있다. 
    • 상대방의 ARP Cache Table 갱신 : 취약점이 될 수 있다. 수신쪽에선 상대방을 인증하지 않고 cache 정보를 갱신하기 때문에 공격자에 의해 MAC정보가 위/변조 될 수 있다.

 

⑤ 공격

# 공격 전
arp - a

192.168.197.132		00-0c-29-3a-01-32
192.168.197.134		00-0c-29-ba-02-17 

# 공격 후 
arp - a

192.168.197.132		00-0c-29-ba-02-17
192.168.197.134		00-0c-29-ba-02-17
  • ARP Spoofing 공격
    • 개념
      • 공격자가 서로 통신하고 있는 희생자(2명)의 MAC주소를 자신의 MAC주소로 위조한 ARP Reply를 만들어 희생자들에게 지속적으로 전송하면 희생자 ARP Cache Table의 MAC 정보가 공격자의 MAC 정보로 지속적으로 변경된다. 이를 통해 희생자간의 송수신 패킷을 공격자가 스니핑 하는 기법
      • 공격자는 희생자 간 정상적인 통신이 이루어질 수 있도록(스니핑을 눈치채지 못하도록) IP Forward 기능을 활성화한다.
      • 일반적으로 희생자 ARP Cache의 Gateway(Router) 주소를 공격자 MAC 주소로 변조시켜 외부로 나가는 데이터를 스니핑하는데 이를 특별히 ARP Redirect 공격이라고 지칭한다.
      • ARP Spoofing은 2계층 주소인 MAC 주소를 속여서 트래픽을 스니핑하는 것이므로 2계층에서 동작하게 된다. 2계층 주소는 서로 다른 네트워크로 라우팅되지 않아 공격 대상도 동일 네트워크 대역에 있어야 한다
    • 취약점
      • 인증이 없는 ARP 프로토콜의 취약점을 이용
    • 과정
      1. 공격자는 희생자PC ARP Cache 정보를 변조한다. (두개의 IP 에 동일한  MAC주소가 존재) 위에 코드 참조
    • 대응방법
      • ARP 요청 및 응답과정에서 별도의 인증 과정이 없는 ARP 프로토콜 자체의 취약점을 이용한 공격이기에 완벽한 방어는 없다. 일반적인 대응 방법은 ARP 캐시를 정적(static)으로 설정해 ARP 응담을 수신해도 캐시 정보를 갱신하지 않도록 한다.
      • 네트워크 상의 ARP 트래픽을 실시간으로 모니터링하는 프로그램(ARP Watch 등) 을 이용해 IP 와 MAC주소의 매핑을 감시, 변경 발생 시 즉시 확인하도록 한다.