## **공격 조건**
* 공격자는 **ARP 응답을 주고 받을 수 있는 Local Area Network**에 접속해 있어야 한다. 즉, 공격자와 피해자가 같은 로컬 네트워크에 있어야 한다.
* ARP는 자체로 신뢰성을 보장하지 않는다.
* ARP Req을 검증하지 않고 받아들이는 특징을 악용
* 허브인 경우 모든 트래픽을 네트워크의 모든 장치에 브로드캐스트하므로 공격자는 쉽게 네트워크 트래픽을 모니터링하거나 변경 가능
* 스위치인 경우 MAC 주소 테이블을 사용하여 트래픽을 특정 장치로 전달.
* ARP 스푸핑 공격을 통해 스위치의 MAC 주소 테이블을 변조하여 스위치 환경에서도 중간자 공격 가능하게 함
* 장치가 주기적으로 ARP 캐시(ARP Table)를 업데이트지 하지 않거나 캐시가 오래 유지되면위험함
---
## **공격의 한계**
* HTTPS 또는 VPN과 같은 암호화된 트래픽을 사용하는 경우, 공격자가 트래픽을 가로채도 해독하기 어려워 유의미한 데이터 추출 어려움
* 로컬 네트워크에서만 가능한 공격. 물리적 또는 논리적으로 같은 네트워크에 접근할 수 있어야함
* 네트워크 모니터링 툴이나 IDS에 의해 쉽게 탐지될 수 있음
* ARP 스푸핑 공격 시 패킷 손실이 발생하고 네트워크 성능 저하를 사용자가 체감할 수 있다
***
## **ARP Spoofing 과정**
1. `PC#1`이 **부팅**되면 해당 **Local LAN**으로 **ARP Req**가 **BroadCast** 방식으로 퍼진다
2. `PC#3`에서 조작된 **ARP Res**를 `GW`보다 더 빠르게 `PC#1`에게 보낸다
***
## **배경 설정**
* `PC#1`부터 `R(Router)`까지가 **Local LAN** 구간이라고 한다.
* `R(Router)`가 `Gateway`로 설정되어 있다.
---
## **연관 공격**
* [[DNS Spoofing]]
* ARP Spoofing을 통해 네트워크 내에서 가로챈 트래픽을 활용해 DNS 요청을 변조. 그 후 악의적인 서버로 트래픽 유도 후 공격자 목적에 따라 사용자 자산 탈취
* [[SSL Scripting]]
* ARP Spoofing으로 HTTPS 트래픽을 가로챈 후 HTTP로 다운그레이드. 그 후 암호화로 보호되지 않는 트래픽들을 탈취
***
## **방지 방법**
* **DAI(Dynamic ARP Inspection)**
* **스위치**에서 지원하는 보안 기능
* 신뢰할 수 있는 IP-MAC의 쌍을 사전에 정의 후 네트워크 트래픽에서 이를 벗어나는 ARP를 차단
* **IP-MAC 바인딩**
* 스위치 혹은 라우터에서 특정 IP 주소와 대응되는 MAC 주소를 고성시켜 공격자가 임의로 MAC 주소를 위조하는 것을 방지
* **VPN**
* 기본적으로 SSL/TLS 기반의 암호화 통신을 사용하면 ARP 스푸핑으로 가로채더라도 트래픽 내용을 해독할 수 없음.
---
## **관련 도구**
* Ettercap
* Cabin & Abel
* dsniff
***