2008년 01월 11일
Anatomy of an ARP Poisoning Attack
1. ARP 프로토콜
ARP(Address Resolution Protocol)은 네트워크를 구성하는 노드들의 하드웨어 주소(6bytes)와 IP 주소(4bytes)를 확인하기 위해 고안된 프로토콜이다. 아래와 같은 네 가지 형태로 구성된다.
- ARP Request: A컴퓨터가 네트워크에 브로드케스팅을 한다.
(Who has this IP address?)
- ARP Reply: B컴퓨터가 A컴퓨터에게 유니케스트로 응답한다.
(I have that IP. My MAC address is [whatever it is].)
- Reverse ARP Request: A컴퓨터가 네트워크에 브로드케스팅을 한다.
(Who has this MAC address?)
- Reverse ARP Reply: B컴퓨터가 A컴퓨터에게 유니케스트로 응답한다.
(I have that MAC. My IP address is [whatever it is].)
2. ARP 프로토콜의 구조적 문제
ARP는 패킷을 주고 받는 상호간에 인증을 지원하지 않는다. 결정적인 구조적 결함은 ARP Reply 메시지를 보낸 송신자에 대한 유효성 검증을 하지 않는다는 것이다. 따라서, 조작된 ARP Reply를 받아들여 자신의 ARP 테이블을 갱신한다.
3. ARP 프로토콜의 악의적 이용
- 서비스 거부 공격
공격자는 네트워크를 통해 라우터와 관련 된 ARP Reply 메시지를 공격대상 호스트에게 전송한다. 이 때 발송되는 ARP Reply는 발신자가 라우터 IP로 설정되며 그 때 라우터의 하드웨어 주소를 네트워크에 존재하지 않는 허위 주소로 설정된다. 즉, 해당 패킷을 받은 대상은 외부와의 네트워크를 하지 못해 서비스 거부공경 상태에 빠진다.
- Man in the Middle(MITM) 공격
동일 네트워크에 존재하는 두 호스트의 통신을 가로채 중간에서 중재하며 이 과정에서 주요 정보를 획득하거나 조작하는 공격이다. 공격자가 A컴퓨터와 B컴퓨터의 통신에 MITM공격을 수행하기 위해 A컴퓨터에게 B컴퓨터 아이피와 자신의 하드웨어 주소가 설정된 ARP Reply를 보내고 B컴퓨터에게 A컴퓨터 아이피와 자신의 하드웨어 주소가 설정된 ARP Reply를 보낸다. 그리고 공격자는 IP Forwarding을 설정하여 적절하게 패킷을 포워딩하도록 설정한다.
- MAC Flooding
MAC Flooding은 네트워크 스위치 장비를 공격하기 위한 ARP Cache Poisoning 공격이다. 스위치는 네트워크의 패킷 전달을 위해 ARP 테이블을 사용한다. 공격자는 수 많은 양의 ARP Reply를 스위치로 전송하여 스위치로 하여금 더 이상 스위치 모드로 동작할 수 없도록 만든다. 이 때 스위치는 원활한 네트워킹을 위해 자신을 허브모드로 전환하게 된다. 즉, 허브모드로 전환된 스위치는 특정 호스트로부터 받은 패킷을 다른 모든 호스트들에게 브로드케스팅 하게 된다. 공격자는 자신의 호스트에서 패킷 스니핑을 통해 네트워크 상의 중요 데이터들을 획득할 수 있게 된다.
4. ARP를 통한 공격들을 막기 위한 방법
ARP Cache Poisoning은 TCP/TP 네트워킹에서 꼭 필요한 기능을 하는 프로토콜의 구조적 결합을 이용하는 것이기 때문에 이것 자체를 수정할 수는 없다 하지만 다음과 같은 차선의 방어법으로 어느정도 대처할 수 있을 것이다.
- 소형 네트워크
static IP 주소와 static ARP 테이블을 사용해야 한다. “arp –s” 명령을 통해 ARP 엔트리에 static으로 정보를 기록할 수 있다. 관리자는 별도의 로그인 스크립트를 작성하여 호스트 재시작 때마다 ARP 엔트리를 static으로 등록하도록 할 수 있다.
- 대형 네트워크
스위치 장비의 “Port Security” 기능을 이용할 수 있다. 이 기능은 하나의 물리적 포트에 하나의 물리적 주소만이 대응하도록 해준다. 이러한 기능은 특히 ARP를 기반으로 한 MITM공격에 효과적이다.
- 일반적인 네트워크
PS: 아래의 사이트에서 ARPWatch를 다운로드 하실 수 있어여~
http://ee.lbl.gov/
# by | 2008/01/11 13:31 | 보안 | 트랙백





