개요
Address Resolution Protocol의 줄임말로 주소를 결정짓는 프로토콜이다. IP 주소를 맥 주소로 연결짓는 역할을 하게 되며 이를 활용해 개발된 네트워크 해킹 공격의 예로 ARP Spoofing이 있다.
ARP 헤더 정보
Hardware Type
2 바이트 만큼의 길이를 가지며 네트워크의 유형을 의미한다. 일반적인 Ethernet 환경이라면 00 01 이 들어가 있을 것이다.
Protocol Type
2 바이트 만큼의 길이를 가지며 프로토콜의 종류를 의미한다. IPv4의 경우 08 00 이 들어가 있을 것이다.
Hardware Size
1 바이트 만큼의 길이를 가지며 맥 주소의 길이를 나타낸다. Ethernet 환경이라면 06 이 들어가 있을 것이다.
Protocol Size
1 바이트 만큼의 길이를 가지며 Protocol의 길이를 나타낸다. IPv4 환경이라면 04 가 들어가 있을 것이다.
Opcode
이경문 멘토님이 팔을 뻣냐, 그렇지 않느냐를 결정짓는 부분
2 바이트만큼의 크기를 가지며 Request일 경우 00 01, Reply의 경우 00 02 가 들어가게 된다.
Sender Mac Address
6 바이트 만큼의 크기로, 송신자의 맥 주소를 나타낸다.
Sender IP Address
4 바이트 만큼의 크기로, 송신자의 IP 주소를 나타낸다.
Target Mac Address
6 바이트 만큼의 크기로, 목적지의 맥 주소를 나타낸다.
Target IP Address
4 바이트 만큼의 크기로, 목적지의 IP 주소를 나타낸다.
PCAP에서 활용하기 위한 구조체 예시
struct sniff_arp { u_short arp_htype; /*hardware type*/ u_short arp_p; /*protocol*/ u_char arp_hsize; /*hardware size*/ u_char arp_psize; /*protocol size*/ u_short arp_opcode; /*opcode*/ u_char arp_smhost[6]; /*sender mac address*/ struct in_addr arp_sip; /*sender ip address*/ u_char arp_dmhost[6]; /*target mac address*/ struct in_addr arp_dip; /*target ip address*/ };
ARP와 이경문 멘토님
2017년 7월 27일에 ARP를 널리 퍼트리셨다. 이에 영향을 받은 학생들은 팔을 벌릴 때마다 ARP Request!!! 라고 외치는 경향이 있다고 하니 주의하도록 하자.
↖ ○ ↗ ││ ━━ ↙ ↘
ARP.. Request!!
↗ ↖ | O | || ━━ ||
ARP.. Reply!!