Without a Break

Address Resolution Protocol, ARP 본문

Network/네트워크보안과프로그래밍

Address Resolution Protocol, ARP

와븨 2022. 9. 27. 17:08

ARP 개요

  • 전제 : 이더넷 브로드캐스트 네트워크
  • 기본 개념 : 네트워크 인터페이스가 하드웨어 주소를 갖음
  • 응용이나 시스템 관리자에게 인식되지 않은 채 동작

32bit IP 주소

  • TCP/IP 프로토콜 그룹에서만 동작

물리적 하드웨어 주소 : 독자적 주소체계

  • 데이터 전송 시 목적지 하드웨어 주소를 알아야 함

ARP 기능

  • IP 주소를 대응하는 물리적 하드웨어 주소로 자동적으로 변환하는 보조적 프로토콜
  • IP 데이터 그램을 정확한 목적지 호스트로 보냄
  • 여러 가지 형태의 물리적 하드웨어 주소를 처리

점 대 점 접속은 ARP를 사용 안 함


+) ARP, RARP 참고 이미지

 

ARP 캐시

  • 각 호스트는 매번 ARP를 실행하지 않고 ARP 캐시에 물리적 주소 임시저장
  • 인터넷 주소로부터 하드웨어 주소로 최신 정보 유지, 관리
  • 정상적인 엔트리 종료 시간 : 엔트리가 만들어진 20분 후
  • ARP 캐시 명령어 : 48비트 이더넷 주소는 콜론(:)으로 구분된 6개의 16진수로 표시
  • ARP 캐시 타임 아웃 : 각 호스트는 매번 ARP를 실행하지 않고 ARP 캐시에 물리적인 주소를 임시저장
완전 엔트리일 때 20분 후 종료
불완전 엔트리일 때 3분 후 종료

+) 엔트리가 참조될 때마다 타임아웃 재시작

특징

  • ARP 운영의 기본
  • 캐시를 검사하여 조작
  • 조작하기 위해 arp 명령어 사용
  • 캐시의 엔트리를 나타내고 수정
  • 타이머를 가지고 있음

 

ARP 패킷 형식

이더넷 헤더(14)= 이더넷 목적지 주소(6) + 이더넷 발신지 주소(6) + 프레임 유형(2)

  • ARP : 다른 네트워크와 이용과 IP 주소 이외의 다른 주소도 해결
  • 이더넷 헤더 : 14바이트(6+6+2)
  • 이더넷 목적지 주소 모든 비트가 1인 주소 : 브로드캐스트
  • 이더넷 프레임 유형 : LAN상의 호스트 간의 데이터 전송 시 목적지 인터페이스를 결정, ARP 요구/응답 : 0x0806

 

프록시 ARP

: 라우터가 ARP 요구에 대한 응답을 대신하는 것. => 프록시가 ARP 대행
ex) 사설 프록시를 통해 미국 서버로 한국 서버에 접속 시, 프록시 서버 통해서 나의 정보를 드러내지 않고 접속된다.

다른 이름 : 무차별(promiscuous) ARP 또는 ARP hack

  • 라우터가 프록시 ARP 대행자(agent)로 동작하여, 같은 네트워크 ID를 갖는 두 물리 네트워크가 존재할 수 있게 함
  • 서브넷을 처리 못하고 예전 브로드캐스트 주소 포맷을 사용하는 구식 TCP/IP 구현이 설치된 호스트를 숨기기 위해 사용한 적이 있지만, 지금은 중요하지 않음

 

근거 없는 ARP (Gratuitous ARP)

  • 호스트의 초기 가동 환경 설정 시 네트워크 인터페이스가 설정 될 때 수행됨 (자신의 IP 주소를 찾는 ARP 요구를 보냄)
  • 혹시 다른 호스트가 자신의 주소와 똑같은 IP 주소를 사용하는지를 체크할 수 있음

특징

1. 다른 호스트가 동일 IP주소 이용 여부를 판단 시 사용

"duplicate IP address sent from 이더넷 address: a:b:c:d:e:f" // 누가 응답했다면(= 비정상적 상황) 나타나는 메세지

=> 정상적인 상황에서는 ARP 응답이 없어야 함

2. 근거 없는 ARP를 보내는 호스트가, 다른 호스트들의 ARP 캐시 상의 MAC 주소 업데이트하는데 사용

ARP 캐시는 ARP 요청/응답을 모니터링해서 IP 주소와 MAC 주소를 저장해두고 있는데, 호스트가 MAC 주소를 임의로 변경한 뒤 랜카드를 재기동해서 근거 없는 ARP를 회람하면, 다른 호스트들의 ARP 캐시가 당연히 근거 없는 ARP를 모니터링해서 저장 정보를 갱신

=> 이를 이용하면, 서버를 이중화한 상황에서 특정 서버가 다운되었을 때 백업 파일 서버가 곧바로 다운된 서버의 역할을 대신하도록 할 수 있음

  • 백업 서버가 자신의 하드웨어 주소와 다운된 서버의 IP 주소로 세팅한 근거 없는 ARP 요청을 회람
  • 특징 2에 의해 다운된 서버로 보내질 패킷이 모두 백업 서버로 가게 됨

 

ARP Spoofing

공격자는 A와 B의 요청 중간에서 패킷을 읽거나 수정함

순서

  1. 정상적인 네트워크를 공격자가 ARP reply를 통해 ARP cache 업데이트
  2. ARP spoofing 이후 공격자의 sniffing


Spoofing이 이뤄지고 있는지 확인하는 법

  1. 공격자는 reply를 계속 반복해서 보내기 때문에, 타임아웃 후에 요청을 보냈을 때 reply가 오는 지 확인한다.
  2. 서로 다른 IP 주소에서 MAC 주소가 같을 시, ARP 캐시에 문제가 있음을 알 수 있음

 

ARP 명령어

arp -a 모든 엔트리를 보여줌
arp -d IP주소 엔트리 삭제
arp -s IP주 강제 엔트리 추가
- s 옵션 끝 (MAC 주소 뒤)에 temp, pub 플래그 추가 가능
* temp : 캐시로부터 타임 아웃 (temp 플래그를 쓰지 않으면 보통 엔트리가 계속 남아있음)
* pub : ARP 대행자(agent) 기능

* temp : 캐시로부터 타임 아웃 (temp 플래그를 쓰지 않으면보통 엔트리가 계속 남아있음)
* pub : ARP 대행자(agent) 기능

'Network > 네트워크보안과프로그래밍' 카테고리의 다른 글

TCP: Transmission Control Protocol  (0) 2022.09.30
UDP: User Datagram Protocol  (0) 2022.09.30
Internet Protocol  (0) 2022.09.24
Link Layer  (0) 2022.09.24
Introduction  (0) 2022.09.24