Security/Network

ARP Spoofing

bonggang 2019. 9. 11. 12:38

개인의 정보 보안 학습을 위해 작성되었습니다. 본 게시물을 불법적으로 활용하실 경우 혹은 본 게시물로 인해 발생하는 모든 문제에 대한 책임은 당사자에게 있으며, 작성자는 어떠한 법적 책임도 지지 않음을 밝힙니다. 해당 문서를 열람하는 것은 이에 대해 동의하는 것으로 간주합니다.


ARP(Address Resolution Protocol)

ARP는 간단하게 표현하면 IP주소를 MAC 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다.

쉽게 이해하기 위해 예를 들어보면 IP호스트 A가 B에게 패킷을 전송하려고 할 때 B의 MAC 주소를 모른다면, ARP 프로토콜을 사용하여 목적지 IP 주소를 가지고 브로드캐스팅(FF:FF:FF:FF:FF:FF)을 하는 MAC 주소를 가진 ARP패킷을 네트워크 상에 전송하면 된다. B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신 시 자신의 MAC 주소를 A에게 응답한다. 이와 같은 방식으로 수집된 IP주소와 이에 해당하는 MAC 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 후 패킷 전송 시에 사용된다.

 

ARP Header

- HW Type(HTYPE): 네트워크 유형을 정의, ethernet 환경일 경우 0x0001

- Protocol Type(PTYPE): 프로토콜 정의, IPv4의 경우 0x0800

- Hardware Length(HLEN): MAC 주소 길의 정의, Ethernet의 경우 6byte

- Protocol Length(PLEN): 프로토콜 길이 정의, Ethernet의 경우 4byte

- Operation Code(OPER): 패킷 유형, ARP 요청은 1, ARP 응답은 2

- Sender HW Addr(SHA): 발신자의 MAC 주소

- Sender Protocol Addr(SPA): 발신자의 IP 주소

- Target HW Addr(THA): 목적지 MAC 주소

- Target Protocol Addr(TPA): 목적지 IP 주소

 

ARP Spoofing

ARP 스푸핑은 근거리 통신망(LAN) 하에서 주소 결정 프로토콜(ARP) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다. 로컬 영역 네트워크에서 각 장비의 IP주소와 MAC 주소 간의 대응이 ARP 프로토콜을 통해 이루어지는데 이 때 공격자가 의도적으로 특정 IP 주소와 자신의 MAC 주소로 대응하는 ARP 메시지를 발송하면 그 메시지를 받은 장비는 IP 주소를 공격자 MAC 주소로 인식하게 된다. 이렇게 될 경우 해당 IP주소로 보낼 패킷을 공격자에게 전송하게 된다. 공격자는 그 패킷을 원하는 대로 변조한 다음 원래 목적지 MAC 주소로 발송하는 등의 공격이 가능하다. 이 공격은 데이터 링크 상의 프로토콜인 ARP 프로토콜을 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격이다.

 

ARP 스푸핑을 막기 위해서는 MAC 주소를 정적으로 사용하면 된다.

(ARP 스푸핑이 각 시스템에 기록된 MAC 주소가 동적으로 유지되는 점을 이용한 공격이기 때문)