MITM(Main In The Middle) 기법 중 하나이다. 사람들 사이에서 데이터를 몰래 훔쳐본다는 뜻이다. ARP 스푸핑이 무엇인지 알기 위해선 우선 ARP 가 무엇인지 알아야 한다.
ARP(Address Resolution Protocol) 란?
ARP는 IP 주소를 MAC 주소와 매칭 시키기 위한 프로토콜이다.
송신하는 노드는 수신하는 노드의 IP datagram을 갖고 있다. 그런데 다음 노드의 IP address가 Data Link Layer로 이동하는 경우에는 쓸모가 없다. 이때 우리는 다음 노드의 DLC 즉 MAC 주소를 알아야 한다. 이 MAC 주소를 알아내기 위해 ARP를 사용한다.라고 설명되어 있는데 조금 더 쉽게 풀어보자.
datagram - IP 계층의 패킷
대부분의 가정집에서는 공유기를 사용하고 있다. 그리고 그 공유기를 통해 우리는 핸드폰, PC 등 여러 기기를 연결해서 사용한다. 그리고 이 기기들은 모두 IP 주소가 사설 IP로 할당받는다. ex) 192.168.0.3 .. 이렇게 사설 IP를 할당받은 기기들끼리 통신을 하려면 어떻게 해야 할까? IP 주소 만으로는 문제가 생길 수 있다. 사설 IP로 할당받는 주소는 동적이기 때문이다! 그래서 이를 해결하기 위해 IP와 MAC 주소를 매칭 시켜서 통신을 하는 것이다. 그리고 이 MAC 주소를 찾아 매칭 시키는 과정이 바로 ARP이다.
ARP의 과정
1. A는 같은 네트워크 상에 존재하는 B에게 데이터를 전달하려고 하는데, B의 MAC 주소를 모른다.
2. A는 B의 MAC 주소를 찾기 위해 ARP Request(Who has 192.168.0.5? Tell 192.168.0.2)를 broadcast로 날린다. 이때 Destination MAC 주소는 (FF:FF:FF:FF:FF:FF)로 Broadcast로 날린다는 뜻이다.
3. 다른 IP를 갖고 있는 기기들은 이 요청을 무시하고, 해당하는 IP를 갖는 기기는 자신의 MAC 주소를 Response 한다.
이후 MAC 주소를 기반으로 서로 통신한다.
이와 반대로 MAC 주소를 기반으로 IP주소를 찾는 RARP도 존재한다.
의문점?
IP주소를 갖고 MAC주소를 찾는 이유가 무엇인지 아직 잘 이해가 안 된다. 그냥 알고 있는 IP 주소를 갖고 통신하면 안 되는 것인가? -> 아마도 중간에 IP주소가 바뀌어버리게 된다면 문제가 생길 수 있기 때문 일 듯하다.
ARP spoofing
ARP의 작동 과정을 보면 어느 부분에서 위험한지 대략 느낌이 온다. 만약 누군가가 자신이 192.168.0.5라고 속인다면?
실제로 192.168.0.5의 IP를 갖고 있지 않는 사람이 송신자와 연결되게 된다. spoofing의 뜻에서 볼 수 있듯이 내가 진짜라고 송신자를 속이는 것이다. 중간에 가로챈 사람은 데이터를 가로채고 그 데이터를 실제 주인에게 보내게 되면 마치 둘을 잇는 다리 중간에 검문소를 설치한 것과 같게 된다.
ARP 탐지법?
- 본인의 컴퓨터가 평소보다 느려진다.
- window cmd에서 arp -a 를 입력했을 때 같은 동적 MAC 주소를 갖는 IP가 존재한다.
ARP 방어법?
- ARP 테이블을 정적으로 변환.
- TLS등 암호화 통신 -> 가로채더라도 해독을 못함
참조
https://aws-hyoh.tistory.com/entry/ARP-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
'보안(Security)' 카테고리의 다른 글
스머프 공격 (Smurf attack) (0) | 2022.08.23 |
---|---|
크로스 사이트 스크립팅(Cross Site Scripting, XSS) (0) | 2022.08.05 |
악성 스크립트 (0) | 2022.08.03 |
Cross-Site Request Forgery(CSRF) (0) | 2022.08.02 |