ARP 프로토콜은 32bit IP 주소를 48bit의 네트워크 카드 주소(MAC Address)로 대응시켜 주는 프로토콜이다. 우리가 실제로 IP 주소를 통해 네트워크에 연결을 시도하면 TCP/IP에서는 해당 IP에 대응하는 네트워크 카드 주소(MAC Address)를 찾아 연결하게된다. ARP는 OSI Layer 3(Network)와 OSI Layer 2(Data-Link) 사이의 연결을 담당하는 것이다.
이러한 IP 주소와 네트워크 카드 주소의 대응 테이블은 스위치나 기타 네트워크 장비 및 사용자 컴퓨터에서 arp cache 데이블이라는 곳에 위하게 된다. 만약 해커가 이 테이블 상의 정보를 위조하게 되면 공격 대상 컴퓨터와 서버 사이듸 트래픽을 해커 자신의 컴퓨터로 우회시킬 수 있다. 우회된 트래픽으로부터 해커는 패스워드 정보 등 유용한 정보를 마음껏 획득할 수 있다.
이러한 해커의 공격을 알아볼 수 있는 방법은 터미널의 ARP 커멘드를 이용하는 것이다.
1. 우선 터미널 프로그램을 실행한다.
2. 아래 명령을 입력하여 ARP cache 테이블을 확인한다.
sudo arp -a
여기서 확인해보면 내가 전달하는 게이트웨이의 맥어드레스 어떤 것인지 확인 할 수 있다. 만약 게이트웨이 장비의 맥과 다르다면 해킹을 의심해야한다.
3. 우선 먼저 게이트웨이의 변조된 테이블을 삭제해야한다.
sudo arp -d 192.168.3.1 ifscope en0
아니면 모든 cache 테이블을 삭제할 수도 있다.
sudo arp -a -d
이러면 모든 ARP cache 테이블이 삭제되고 정상적으로 통신이 이루어진다. 물론 다시 해킹이 반복될 수 있으므로 원인이되는 해킹 프로그램을 찾아서 삭제하는 것도 잊지말아야 한다.