네트워크 스니핑 (Network Sniffing)
1. 스니핑이란?
"sniff"라는 단어의 의미(냄새를 맡다, 코를 킁킁거리다)에서도 알 수 있듯이 스니퍼는 "컴퓨터 네트워크상에 흘러다니는 트래픽을 엿듣는 도청장치"라고 말할 수 있다. 그리고 "스니핑"이란 이러한 스니퍼를 이용하여 네트워크상의 데이터를 도청하는 행위를 말한다.
2.1. Switch Jamming
많은 종류의 스위치들은 주소 테이블이 가득차게 되면(Full) 모든 네트워크 세그먼트로 트래픽을 브로드캐시팅하게 된다. 따라서 공격자는 위조된 MAC 주소를 지속적으로 네트워크에 흘림으로서 스위칭 허브의 주소 테이블을 오버플로우 시켜 다른 네트워크 세그먼트의 데이터를 스니핑 할 수 있게 된다. 이는 보안 원리의 하나인 "Fail close(시스템에 이상이 있을 경우 보안기능이 무력화 되는 것을 방지하는 원리)"를 따르지 않기 때문에 발생한다. 스위치들은 사실상 보안보다는 기능과 성능 위조로 디자인 되어 있다.
2.2. ARP Redirect
"ARP Redirect"공격은 위조된 arp reply를 보내는 방법을 사용한다. 즉 공격자 호스트가 "나의 MAC 조소가 라우터의 MAC 주소다" 라는 위조된 arp reply를 브로트캐시트로 네트워크에 주기적으로 보내 스위칭 네트워크상의 다른 모든 호스트들이 공격자 호스트를 라우터로 믿게끔 한다. 결국 외부 네트워크와 모든 트래픽은 공격자 호스트를 통하여 지나가게 되고 공격자는 스니퍼를 통해 필요정보를 도청 할 수 있게 된다.
2.3. ARP spoofing
"ARP Redirect"와 비슷한 공격방법으로 다른 세그먼트에 존재하는 호스트간의 트래픽을 스니핑 하고자 할 떄 사용된다. 공격자는 자신의 MAC주소를 스니핑 하고자 하는 두 호스트의 MAC 주소로 위장하는 arp reply(또는 request)패킷을 네트워크에 뿌린다. 즉 "나의(공격자의) MAC주소가 스니핑 하고자 하는 호스트의 MAC 주소 이다."라는 arp reply를 각각의 호스트에게 보내게 된다. 이러한 경우 "ARP Redirect"공격과 마찬가지로 공격자 호스트로 넘어오는 트래픽을 본래의 호스트로 reply 해주어야만 두 호스트 간에 정상적인 연결을 할 수 있게 되고 스니핑도 할 수 있다. 그렇지 않으면 두 호스트간의 연결은 이루어 질 수 없게 되고 결국 스니핑도 할 수 없게 된다.
2.4. ICMP Redirect
ICMP(Internet Control MEssage Protocol)는 네트워크 에러 메시지를 전송하거나 네트워크 흐름을 통제하기 위한 프로토콜인데 ICMP Redirect를 이용해서 스니핑 할 수 있는 방법이 존재한다.
ICMP Redirect 메시지는 하나의 네트워크에 여러개의 라우터가 있을 경우, 호스트가 패킷을 올바른 라워에게 보내도록 알려주는 역할을 한다. 공격자는 이를 악용하여 다른 세그먼트에 있는 호스트에게 위조된 ICMP Redirect 메시지를 보내 공격자의 호스트로 패킷을 보내도록 하여 패킷을 스니핑 하는 방법이다.
3. 스니핑 방지 대책
데이터를 암호화 하게 되면 스니핑을 하더라도 내용을 볼 수 없게 된다. SSL, PGP등 이용 할 수 있다.
암호프로토콜 적용이 어려운 경우 방화벽을 이용해 주기적으로 네트워크 도청을 탐지하고 관리해야 한다.
4. 실습
실습에 앞서 패킷의 MAC주소와 IP주소와 관계없이 모든 패킷을 스니퍼에게 넘겨주는 Promiscuous모드를 설정해야 한다.
http://smleenull.tistory.com/195
'네트워크' 카테고리의 다른 글
SSL Strip (0) | 2014.07.03 |
---|---|
스푸핑 (Spoofing) (0) | 2014.07.03 |
nmap 사용법 (0) | 2014.07.02 |
포트스캐닝 (0) | 2014.07.02 |
3 way handshake (TCP 연결 설정, 연결 종료) (0) | 2014.07.01 |