IT 뉴스

 

스니핑이란?
사전적인 의미로 스니핑(Sniffing)이란 ‘코를 킁킁거리다’, ‘냄새를 맡다’ 등의 뜻이 있다. 사전적인 의미와 같이 해킹 기법으로서 스니핑은 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 것을 의미한다. 간단히 말하여 네트워크 트래픽을 도청(eavesdropping)하는 과정을 스니핑이라고 할 수 있다. 이런 스니핑을 할 수 있도록 하는 도구를 스니퍼(Sniffer)라고 하며 스니퍼를 설치하는 과정은 전화기 도청 장치를 설치하는 과정에 비유될 수 있다.
TCP/IP 프로토콜은 학술적인 용도로 인터넷이 시작되기 이전부터 설계된 프로토콜이기 때문에 보안은 크게 고려하지 않고 시작되었다. 대표적으로 패킷에 대한 암호화, 인증 등을 고려하지 않았기 때문에 데이터 통신의 보안의 기본 요소 중 기밀성, 무결성 등을 보장할 수 없었다. 특히 스니핑은 보안의 기본 요소 중 기밀성을 해치는 공격 방법이다.
인터넷은 말 그대로 광범위한 네트워크이며 공개된 네트워크이다. 패킷이 송수신될 때, 패킷은 여러 개의 라우터를 거쳐서 지나가게 되며 중간 ISP 라우터에 접근 권한을 가지는 사람이라면 해당 패킷을 쉽게 잡아낼 수 있다. 그런데 문제는 이렇게 쉽게 얻어낼 수 있는 많은 패킷의 내용은 암호화 되지 않는다는 것이다.
물론 xDSL, 케이블 모뎀 등을 사용하는 일반 가정 사용자가 이러한 패킷을 아주 쉽게 볼 수 있는 것만은 아니다. 그러기 위해서는 패킷이 흘러가는 네트워크의 중간 경로를 얻어내야 한다. 전화에 도청기를 설치하는 과정을 연상하면 이해하기 쉬울 것이다. 직접 도청하고자 하는 전화기에 도청기를 설치하는 방법, 그리고 중계 회선에 도청기를 설치하는 방법이 있을 것이다.
두 가지의 차이는 직접 도청하고자 하는 전화기에 설치한다면 그 전화기의 내용만 도청할 수 있다는 것, 중계 회선에 설치한다면 그 중계 회선을 통해 연결된 모든 전화기의 내용을 도청할 수 있다는 것이 될텐데 스니핑 역시 마찬가지이다.
대표적인 시나리오는 다음과 같다.
(1) 다양한 공격 기법을 통해 실제 공격 대상 시스템에 관리자 권한을 얻어낸 후 스니핑 도구를 설치하여 스니핑 
(2) 공격 대상 기업의 다른 호스트에 대한 접근 권한을 얻어내서 그 호스트를 이용하여 스니핑 
(3) ISP 장비에 대한 시스템 권한을 얻어내어 스니핑 도구를 설치하여 스니핑
다음은 이러한 스니핑 기법을 통하여 FTP 접속을 스니핑함으로 사용자 ID와 패스워드를 얻어낸 화면이다. 이 경우, Ethereal이라는 툴을 이용한 것으로 쉽게 해당 서버에 hackme라는 peace! 패스워드를 사용하는 사용자가 존재한다는 사실을 알았다.
물론 스니핑은 이와 같은 공격만을 위해 사용되는 것은 아니다. 네트워크 트래픽 분석이나 트러블슈팅 등에 사용되며 그 외에도 네트워크 상에 이루어지는 공격을 탐지하는 침입탐지시스템에 쓰일 수 있다. 이 문서에서는 공격 기법으로서의 스니핑을 이야기하고자 한다.
실질적인 스니핑 공격의 예
(1) 허브 환경에서의 스니핑
허브(Hub)는 기본적으로 들어온 패킷에 대해 패킷이 들어온 포트를 제외한 모든 포트에 대해 패킷을 보내는 리피터(Repeater) 장비이다. 사실 여러분의 기업에서 허브를 사용하고 있고 여러분의 시스템이 그 허브에 연결되어 있다면 여러분은 원하던 원치 않던 간에 계속하여 다른 사람의 패킷들을 받아보고 있었던 것이다.
물론 네트워크 드라이버, OS 커널 등의 수준에서 MAC 주소를 보아 자신이 아닌 다른 이들의 패킷은 버려지기 때문에 그것을 쉽게 느낄 수는 없었을 것이다. 하지만 여러분 시스템의 NIC를 promiscuous 모드로 동작하게 한다면 다른 이들의 패킷 또한 버리지 않고 받아볼 수 있다. 이제 스니핑 도구를 통해 해당 패킷을 저장하고 분석하기만 하면 된다.
다음 그림은 이 내용을 설명한 것이다. 모든 패킷은 실제 수신 대상이 아닌 호스트에게도 전달되며 Promiscuous 모드로 동작하는 호스트는 다른 수신 대상의 패킷 또한 볼 수 있다.

 

(2) 스위치 환경에서의 스니핑
스위치는 기본적으로 Layer 2 헤더 정보인 MAC 주소 정보를 이용하여 패킷이 어떤 목적지로 보내질지를 결정한다. 따라서 허브 환경에서와 달리 패킷은 실제 수신 대상에게만 보내지게 되며 공격 대상이 아무리 인터페이스를 Promiscuous 모드로 셋팅하였다 하더라도 그 내용을 훔쳐 볼 수는 없다.

 

그렇다면 이 경우 정말 안전한 것일까… 아쉽게도 그렇지 않다. 이와 같이 스위치를 사용하는 스위칭 환경에서의 스니핑 기법이 공개되어 있다. 그 중 몇 가지 공격 기법은 다음 원고에서 소개를 하겠다.
[출처] (주)코코넛 시큐레터 10월호

 

지난 원고에 이어서 스위치를 사용하는 스위칭 환경에서의 스니핑 기법 중 몇가지 공격 기법에 대해 소개를 하도록 하겠다.
1) Switch Jamming
스위치는 원래 앞서 말한 바와 같이 실제 수신 대상으로만 패킷을 보내는 브리지 장비이다. 그러나 엉뚱한 MAC 주소를 가진 패킷을 계속하여 보냄으로써 스위치가 허브처럼 동작하도록 만들 수 있다. 많은 종류의 스위치가 주소 테이블이 가득 차게 되었을 때 패킷을 모든 포트로 브로드캐스팅하는 성질을 이용한 것이다.
2) ARP Redirect
대표적인 툴로 Dsniff와 같은 툴이 이 방법에 의한 스니핑을 제공한다. 네트워크 상에서 패킷이 보내질 때 목적지의 IP 주소를 갖고 해당 목적지가 어떤 MAC 주소를 사용하는지를 요청하는데 이를 ARP request라고 한다. 쉽게 말해서 교실에 선생님이 들어와서 '이 반에 코코넛이라는 학생이 누구인지 손들어 봐요' 하는 것과 같다.
ARP request는 네트워크 상에 브로드캐스팅되어 모든 호스트가 그 패킷을 받게 되고 해당 IP를 가진 호스트는 그런 IP를 사용하는 것은 나라고 ARP reply를 주게 된다. 코코넛 학생이 '저요!'하고 손드는 것과 마찬가지이다. 하지만 코코넛 학생 대신 오렌지라는 학생이 '저요!' 하고 손든다 해도… 그렇다. 순진한 선생님은 그대로 믿게 되는 것이다.
 

   

하지만 공격자는 arpspoof 등의 툴을 이용하여 거짓된 ARP reply를 계속하여 보낼 수 있다.

 

위와 같은 경우 두 개의 Reply를 받게 된다. 이 경우, 패킷이 도달한 순서에 따라 그리고 구현에 따라 10.1.1.1의 응답 혹은 10.1.1.3의 응답을 믿게 될 것이다. 만약 10.1.1.3의 응답을 믿었다면 패킷은 10.1.1.1로 보내지는 것이 아니라 10.1.1.3으로 보내지게 될 것이다.
그런데 문제는 ARP Request가 오기 전에 ARP reply가 위와 같은 식으로 보내지게 되었을 때 공격 대상이 되는 시스템의 ARP cache에 그런 내용이 저장이 되고 ARP cache에 10.1.1.1에 대한 정보가 있다면 굳이 ARP request를 하지는 않는다는 것이다. 이 점을 이용하여 공격자는 위와 같은 거짓 응답을 주기적으로 계속하여 보내게 된다. 물론 ARP request가 있기 전부터...
10.1.1.1로 가게 될 패킷은 10.1.1.3으로 가게 된다. 물론 10.1.1.1 입장에서는 통신이 제대로 되지 않게 되므로 이런 시도를 금방 알아차릴 수 있을 것 같지만 10.1.1.3은 해당 패킷의 내용을 받고 저장한 후 바로 아무 일 없었다는 듯이 10.1.1.1로 포워딩하므로 통신에는 문제 없다.
공격 대상 시스템이 라우터였다면 치명적이다. LAN 상의 시스템이 인터넷으로 주고 받는 모든 패킷을 훔쳐 볼 수 있다는 것이다.이 방법에서 공격자는 10.1.1.1에 대한 ARP Reply를 속였기 때문에 이를 ARP Spoofing이라고 하기도 한다.

본 이미지는 링크 URL이 잘못 지정되어 표시되지 않습니다.


3) ICMP Redirect
Ping 프로그램을 사용할 때 ICMP Echo 메시지와 ICMP Echo Reply 메시지가 사용된다는 것은 많은 분이 알고 계실 것이다. 이처럼 ICMP 프로토콜은 네트워크 상의 오류 메시지 전송, 트러블슈팅 등을 위해 사용되는데 그 중 ICMP Redirect 메시지를 이용한 스니핑 방법이며 일단 기본적으로는 ARP Redirect의 경우와 마찬가지로 공격 대상 시스템으로 패킷이 오도록 만드는 것이다.
네트워크 상에 라우터가 여러 대 존재할 때 비효율적인 라우팅 경로가 존재한다면(즉 1 hop 만으로 보낼 수 있는데 3 hop으로 보내게 설정되었다든지) 라우터에 대해 이를 수정할 것을 권고하는 ICMP Redirect 메시지가 보내진다. 공격자는 이를 악용한 ICMP Redirect 메시지를 보냄으로써 패킷이 자신으로 보내지도록 한다.
4) ICMP Router Advertisement
ICMP Redirect와 비슷한 방법이나 ICMP Router Advertisement 메시지는 특정 호스트가 자신이 라우터라고 다른 호스트들에 대해 알리는 메시지이다. 공격자는 이를 악용하여 다른 호스트들이 자신을 라우터로 생각하게 하여 패킷이 자신으로 보내지도록 한다.
5) MAC 스푸핑
앞서 스위치는 기본적으로 MAC 주소를 통해 패킷이 어떤 목적지로 보내질지를 결정한다고 하였는데 이런 MAC 주소를 학습하는 방법은 다음과 같다. 특정 목적지 MAC 주소를 갖는 패킷을 보내고자 할 때,
   ① 해당 MAC 주소가 자신의 MAC 주소 테이블에 존재하는지 확인 
   ② 존재한다면 테이블에 등록된 포트로 패킷을 보냄 
   ③ 존재하지 않는다면 패킷이 유입된 VLAN과 동일한 모든 VLAN으로 패킷을 일단은 보냄
그리고 MAC 주소 테이블을 갱신하는 방법은 패킷이 유입되었을 때, 해당 패킷의 출발지 MAC 주소를 참고하여 해당 패킷이 들어오게 된 포트와 MAC 주소 정보를 테이블에 등록하는 방법으로 한다.
따라서 위와 같은 경우 응답으로 패킷이 오게 되면 MAC 주소 테이블에 해당 정보가 입력되어 다음부터는 응답이 오게 된 포트로 보내게 된다. 그러나 공격자가 공격 대상 시스템의 MAC 주소를 가지는 패킷을 출발지 MAC 주소로 하는 패킷을 계속하여 보내면 스위치의 MAC 주소 테이블에는 그러한 내용이 등록된다. 따라서 스위치는 패킷을 공격자에게 보내게 된다.
6) 스위치에서의 SPAN/Monitor port 설정
대다수의 스위치는 port monitoring 기능을 가지고 있는데, 이는 특정 포트(들)로 주고 받아지는 패킷을 또 다른 모니터 포트로 전송해주는 옵션이다. 공격자가 스위치에 접근 권한을 얻어내어 위와 같은 설정을 적용함으로 공격자 시스템에 연결된 포트로 보낼 수 있다.
이는 매우 어려운 일이 될 것 같지만 디폴트로 설정된 스위치의 경우에는 매우 쉬운 일이다. 왜냐하면 해당 스위치의 사용자 ID, 패스워드는 인터넷 검색 사이트를 통해 쉽게 얻어낼 수 있기 때문이다.
[출처] (주)코코넛 시큐레터 11월호

 

스니핑 기법의 최종편인 (3)편에서는 스니핑 공격 도구들과 스니핑 방어에 대해 알아보도록 하겠다.
스니핑 도구들

OS이름설명

Windows 기반EtherealUNIX 용 Ethereal을 Windows로 포팅한 것으로 오픈 소스

WindumpTcpdump를 Windows 용으로 포팅한 것.

NAI Sniffer스니핑 뿐 아니라, 다양한 통계 기능 등 제공(상용)

EtherPeek스니핑 뿐 아니라, 다양한 통계 기능 등 제공(상용)

AiroPeekEtherPeek를 제조한 WildPackets 사의 제품으로 무선 네트워크 상의 스니핑 도구(상용)

Cain&Abel스니핑 기능 외에도 패스워드 크래킹 등 다양한 기능이 포함된 통합 툴. 스위칭 환경에서의 스니핑 및 각종 프로토콜에 대한 디코드 기능을 가지고 있음.(상용)

UNIX 기반tcpdumpCommand-line 툴로 해킹보다는 트러블슈팅의 용도로 가장 많이 사용되는 툴

EtherealGUI 기반으로 UNIX 용 GUI 스니핑 도구로서 매우 훌륭한 기능을 가지고 있음

snoopSun Solaris 시스템 등에서 기본적으로 제공하는 스니핑 도구

Sniffit연결된 세션 내용 정보 등을 쉽게 볼 수 있음

AiroPeekEtherPeek를 제조한 WildPackets 사의 제품으로 무선 네트워크 상의 스니핑 도구(상용)

dsniff송덕준 (Dug Song)이 개발한 스위칭 환경에서의 해킹 도구. 스니핑 툴만 포함된 것이 아니라 SSH나 SSL에 대한 Man-in-the-Middle-Attack 툴이 포함되어 있음. 각종 프로토콜에 대한 사용자ID, 암호 정보를 쉽게 수집해 줌.

LinSniff각종 프로토콜에 대한 사용자 ID, 암호 정보를 쉽게 수집합니다만 dsniff보다는 적은 프로토콜을 지원합니다. 하지만 좀 더 가볍습니다.

esniffPhrack Magazine에 소개된 툴

ettercap스위칭 환경에서의 스니핑 툴

snmpsniffSNMP 전용 스니핑 툴


스니핑에 취약한 프로토콜
앞서 말한 바와 같이 일단 패킷을 악의적인 사용자가 가로채어 보는 것은 그리 어려운 일이 아니다. 이런 시도를 탐지하는 방법도 알려져 있기는 하지만 일단 이런 시도 자체를 완전 봉쇄하는 것은 불가능하다고 볼 수 있다.
하지만 이렇게 얻어낸 패킷이 모두 유용한 것은 아니며, 암호화되지 않거나 암호화되더라도 너무도 간단한 방법으로 되어 쉽게 복호화 해낼 수 있는 그런 프로토콜에서 사용되는 패킷이 공격자에 의해 사용될 수 있다. 그런 종류의 프로토콜을 스니핑에 취약한 프로토콜이라 할 수 있는데 스니핑에 취약한 프로토콜을 몇 가지 예로 든다.
(1) Telnet, Rlogin
Telnet, Rlogin의 사용자 ID, 패스워드를 비롯한 모든 통신의 내용은 암호화되지 않아 모든 통신 내용을 쉽게 볼 수 있다.
(2) HTTP
HTTP의 사용자 인증으로 많이 사용되는 Basic Authentication 방법은 아주 기본적인 방법으로 encode되기 때문에 쉽게 사용자 ID, 패스워드 정보를 얻어낼 수 있다.
(3) SNMP
SNMP 프로토콜은 단순 네트워크 관리 프로토콜(Simple Network Management Protocol)이라는 이름과 같이 보안을 거의 고려하지 않았다. SNMP 프로토콜은 SNMPv1, SNMPv2, SNMPv3로 나뉘어 뒤로 갈수록 보안은 강화되었지만 아직도 가장 많이 사용되는 것은 SNMPv1 프로토콜이다. SNMP의 패스워드와 같은 역할을 하는 커뮤니티 이름을 비롯한 모든 통신 내용이 암호화 되지 않는다.
(4) 기타
NNTP, POP, FTP, IMAP, SMTP 등

스니핑의 방어
스위치에 브로드캐스트 도메인, MAC 주소 수동 설정 등을 함으로 패킷을 가로채는 시도를 줄일 수는 있으나 앞서 말한 바와 같이 다른 사용자가 패킷을 가로채는 시도를 원천 봉쇄하는 것은 불가능하다. 따라서 패킷을 가로채더라도 그것의 내용을 가지고 어떠한 행동조차 할 수 없도록 암호화 기법을 이용하는 것이 가장 일반적이고 중요한 스니핑의 방어 기법이라고 할 수 있다.
(1) SSL 적용
HTTP, IMAP, POP, SMTP, Telnet 등은 SSL을 적용하여 HTTPS, IMAPS, POPS, SMTPS, Telnets 등으로 할 수 있다. SSL은 물론 HTTP에 가장 많이 활용되며 이를 적용하여 사용자 이름, 패스워드 및 전자 상거래 결재 정보 등 웹 서핑의 내용을 암호화 할 수 있다.
(2) PGP, S/MIME
SMTP 상으로 보내지는 메일은 기본적으로 암호화 되지 않기 때문에 스니핑하여 그 내용을 쉽게 얻어낼 수 있다. PGP, S/MIME 등을 이용하여 메일에 대한 암호화 기능을 제공할 수 있다.
(3) SSH
암호화 통신을 제공하여 Telnet, FTP, RCP, Rlogin 등을 대치할 수 있다.
(4) 사설망 혹은 가상사설망(VPN)
스니핑이 우려되는 네트워크 상에 전용선(leased line)으로 직접 연결함으로 중간에 도청되는 것을 막는 것이 사설망이다. 하지만 이는 거리가 멀어질수록 인터넷을 이용하는 것에 비해 비용이 매우 비싸질 수 밖에 없다. 인터넷 회선을 이용하며 사설망의 효과를 줄 수 있는 것이 VPN입니다. VPN 장비 간의 암호화를 통해 도청을 막을 수 있다.

결론
스니핑은 다양한 형태로 네트워크 상에서 이루어질 수 있으며 다음과 같은 두 가지 단계로 볼 수 있다.
- 패킷 가로채기 
- 가로챈 패킷 디코딩을 통해 주요 정보 획득
패킷을 가로채는 시도는 차단하기 매우 어려우며 디코딩을 통해 주요 정보를 얻어내는 것을 막기 위해 SSL, SSH, VPN, PGP 등 다양한 기법이 이용될 수 있다.

 

 

출처 : http://tip.daum.net/openknow/3731693

 

 

 

 

 

 

 

 

about author

PHRASE

Level 60  라이트

구멍은 깎을수록 커진다 , 허물은 감싸고 얼버무리려고 하면 할수록 더 드러난다는 말.

댓글 ( 4)

댓글 남기기

작성