1. 관련 이론 ARP 란 무엇인가? ARP(AdressResolution Protocol):네트워크 상에서IP주소를 물리적 주소(MAC주소)로 대응 시켜 주는 프로토콜이다. 네트워크 상에서 특정IP를 가지고 있는 호스트가 누구인지 물어보면 해당IP를 가진 호스트가 응답하는Request와Reply구조로 동작한다. ARP 동작 구조 예이다.
(1) 'karen' 이라는사용자가 10.10.10.30 이라는 IP만을 알고 MAC 주소를 모를 때, 먼저 자신의 ARP 테이블을 먼저 검사한다. (2) 자신의 ARP 테이블에 10.10.10.30 의 MAC 주소가 없다면, ARP Request 패킷에 자신의 IP 주소와 MAC 주소, 알고 싶은 디바이스의 IP 주소를 넣어자신의 동일 네트워크 상에 있는 모든 호스트에게 모두 전송한다.
- ARP Requset 패킷을 받은 호스트들은 다음과 같이 행동한다. - (3) 동일 네트워크상에 있는 모든 호스트들은 ARP Request 패킷을 확인하고, 보낸 사람의 IP 주소와 MAC 주소를 자신의 ARP 테이블에 저장한다. (4) 만약 ARP Request 패킷 안에 주소와 자신의 IP 주소가 맞다면 ARP Reply 패킷을 만들어, 그 안에 자신의 MAC 주소를 넣고 패킷을 보낸 호스트에게 답장한다. (5) 답장을 받은 'karen' 이라는 호스트는 ARP Reply 패킷을 열어보고 10.10.10.30 이라는 IP를 가진 디바이스의 MAC 주소를 자신의 ARP 테이블에 저장한다. 여기까지가 ARP의 동작 구조이다. 하지만 이 ARP 동작 과정에서의 치명적인 단점이 있는데, 바로 ARP Reply 패킷에 담긴 MAC 주소가 실제 맞는 주소인지 검증을 하지 않는 인증 시스템이 없다는 취약점이 있다. 이 점을 이용한 공격이 바로 ARP Spoofing이다. ARP Spoofing 이란? : ARP Spoofing은 피해자에게 잘못된MAC주소가 담긴ARP Reply를 보내 피해자의ARP캐시를 조작하여 피해자로부터 정보를 빼내는 해킹 기법이다.
간단하게 ARP Spoofing 을 하는 과정을 설명하자면 첫 번째로, 공격자가 피해자에게 게이트웨이의 IP 주소와 자신의 MAC 주소가 담긴 ARP Reply 패킷을 보낸다. 그럼 피해자는 자신의 ARP 테이블에 게이트웨이 주소에 공격자의 MAC 주소를 저장하게 되므로 게이트웨이를 통해 상호작용하는 패킷들은 전부 공격자에게 가게 되는 것이다. 간단하게 ARP와 ARP 스푸핑에 대해서 설명하였습니다, 다음번 포스팅에는 ARP 스푸핑을 직접 실습해보겠습니다.