1. ARP Spoofing 공격 기법의 이해
브로드캐스팅 트래픽이 제한되는 이더넷 스위치를 사용하는 IP 기반 네트워크에서는 타 시스템간의
트래픽에 접근하는 데 제한이 있기 때문에 도청하기가 쉽지가 않습니다. 하지만 ARP 공격 수법에
‘manin-the-midddle’공격 수법을 추가하여 앞에서와 같은 문제를 충분히 우회할 수 있고 공격자는 잘
조작된 MAC 주소를 스위치 상에 ARP Reply 하는 것으로 원래는 다른 곳으로 전달되어야 할 데이터
패킷을 수신할 수 있습니다. 이러한 방법으로 공격자는 게이트웨이를 가장하여 도청을 원하는 서버의 모든
트래픽을 도청하여 원하는 데이터를 수집/가공이 가능하겠지요?
호스트-A가 호스트-B와 통신하기 위해서 Layer2 계층의 통신 흐름은 다음과 같다.
1) 호스트-A : 자신의 로컬 ARP Cache에 호스트-B IP/MAC 주소의 매핑이 존재 하는지 검사
2) 호스트-A → ARP Request : 호스트-B IP의 MAC 주소에 대한 ARP 요청을 브로드캐스팅
3) 호스트-B → ARP Reply : 호스트-B의 IP와 MAC 주소를 담은 ARP 응답을 호스트-A에게 전송
4) 호스트-A : ARP Cache 업데이트
Layer2 장비인 스위치는 앞서 봤던 단계에 따라 이더넷 프레임으로부터 MAC 주소를 추출하여 위와 같은
Switch Route Table을 작성합니다. 위의 2)번 단계가 진행되면 1번 포트에 MAC-A(호스트-A) 주소를
테이블에 등록하고 3)번이 진행된 후 5번 포트에 MAC-B 주소를 등록하고 이후 테이블에 등록되어
매칭된 포트와 MAC 주소를 통해서 통신을 하게 됩니다.
2. ARP Spoofing 공격 기법
아래 (그림1)은 호스트-A와 호스트-B의 정상적인 스위치 상에서의 트래픽이 전송되는 모습이다.
[그림1] 정상적인 통신
아래 (그림2)은 호스트-A와 호스트-B의 ARP-Spoofing에 의해 공격당한 스위치 상에서의 트래픽이 전송되는 모습이다.
[그림2] ARP-Spoofing 공격
ARP 프로토콜은 인증을 요구하는 프로토콜이 아니기 때문에 간단한 ARP Reply 패킷을 각 호스트에 보내서
쉽게 ARP Cache를 업데이트시킬 수 있습니다. 앞 페이지의 (그림)처럼 스니퍼는 각 호스트들에게 위조한
MAC 주소(상대방의 MAC 주소 = 스니퍼 MAC 주소)를 보내 각 호스트의 ARP Cache를 업데이트
시키게 되고 스위치에서는 스니퍼의 MAC 주소와 포트 매핑 정보가 테이블에 등록됩니다. 계속해서 스니퍼는
Cache가 사라지기 전에 변조된 ARP Reply를 지속적으로 보내므로 각 호스트들의 ARP Cache의
변조된 MAC 주소의 정보는 계속해서 유지됩니다. 이때 스니퍼는 두 방향으로 정확히 재전송해 줄 수 있는
기능이 있어야만 호스트-A와 B는 통신을 할 수 있습니다.
공격에 성공하면 두 호스트는 서로의 MAC 주소를 스니퍼의 MAC 주소로 인식하고 있기 때문에 모든 트래픽을
스니퍼에게 전달하게 되고 스니퍼는 이 두 호스트에게 재전송할 수 있는 기능이 있으며 또한 모든 패킷들을
캡쳐할 수 있게 됩니다.
[그림3] ARP-Spoofing후 스니핑
'Security > 일반' 카테고리의 다른 글
리눅스 정리 #2 (0) | 2016.02.29 |
---|---|
리눅스 정리 #1 (0) | 2016.02.29 |
Nessus, OpenVAS and Nexpose VS Metasploitable[펌] (0) | 2016.02.16 |
FTP의 Active Mode와 Passive Mode (0) | 2016.02.13 |
SYN Flooding Attack[펌] (0) | 2016.02.13 |