의견.png

스니핑

위키원
znghd2 (토론 | 기여)님의 2019년 7월 9일 (화) 14:58 판
이동: 둘러보기, 검색

스니핑(sniffing)이란 단어의 사전적 의미는‘코를 킁킁거리다’, ‘냄새를 맡다’ 등의 뜻이 있다. 사전적인 의미와 같이 해킹 기법으로서 스니핑은 네트워크상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 것을 의미한다. 간단히 말하여 네트워크 트래픽을 도청(eavesdropping)하는 과정을 스니핑이라고 할 수 있다. 이런 스니핑을 할 수 있도록 하는 도구를 스니퍼(Sniffer)라고 하며 스니퍼를 설치하는 과정은 전화기 도청 장치를 설치하는 과정에 비유될 수 있다.

개요

스니핑은 보안의 기본 요소 중 기밀성을 해치는 공격 방법으로 스니핑 공격은 웹호스팅, 인터넷데이터센터(IDC) 등과 같이 여러 업체가 같은 네트워크를 공유하는 환경에서는 매우 위협적인 공격이 이루어질 수 있다. 하나의 시스템이 공격당하게 되면 그 시스템을 이용하는 네트워크를 도청하게 되고, 다른 시스템의 User ID/Password를 알아내게 된다. 비록 스위칭 환경의 네트워크를 구축하여 스니핑을 어렵게 할 수는 있지만 이를 우회할 수 있는 많은 공격 방법이 존재하고 있다.

특징

공격 기법

허브 환경에서의 스니핑

허브(Hub)는 기본적으로 들어온 패킷에 대해 패킷이 들어온 포트를 제외한 모든 포트에 대해 패킷을 보내는 리피터 장비이다. 만약 기업에서 허브를 사용하고 있고 시스템이 그 허브에 연결되어 있다면 원하던, 원치 않던 계속하여 다른 사람의 패킷을 받아보고 있었다는 것이다. 물론 네트워크 드라이버, OS 커널 등의 수준에서 맥(MAC) 주소를 보아 자신이 아닌 다른 이들의 패킷은 버려지기 때문에 쉽게 알아챌 수는 없다. 그러나 시스템의 네트워크 인터페이스 카드(Network Interface Card, NIC)를 promiscuous 모드로 동작하게 한다면 다른 이들의 패킷 또한 버리지 않고 받아볼 수 있다. 이때 스니핑 도구를 통해 해당 패킷을 저장하고 분석하기만 하면 된다.

스위칭 환경에서의 스니핑

  • 스위치 재밍(Switch Jamming)
스위치는 실제 수신 대상으로만 패킷을 보내는 브리지 장비다. 그러나 엉뚱한 맥 주소를 가진 패킷을 계속하여 보냄으로써 스위치가 허브처럼 동작하도록 할 수 있다. 많은 종류의 스위치가 주소 테이블이 가득 차게 되었을 때 패킷을 모든 포트로 브로드캐스팅 하는 성질을 이용한 것이다.
  • 에이알피 리다이렉트(ARP Redirect)
대표적인 툴로 Dsniff와 같은 툴이 이 방법에 의한 스니핑을 제공한다. 네트워크상에서 패킷이 보내질 때 목적지의 아이피 주소를 갖고 해당 목적지가 어떤 맥 주소를 사용하는지를 요청하는데 이를 에이알피 리퀘스트라고 한다. 에이알피 리퀘스트(ARP Request)는 네트워크상에 브로드캐스팅되어 모든 호스트가 그 패킷을 받게 되고 해당 아이피를 가진 호스트는 그런 아이피를 사용하는 것은 나라고 에이알피 리플라이(ARP Reply)를 주게 된다.
  • 아이씨엠피 리다이렉트(ICMP Redirect)
아이씨엠피 프로토콜은 네트워크상의 오류 메시지 전송, 트러블슈팅 등을 위해 사용되는데 그 중 아이씨엠피 리다이렉트 메시지를 이용한 스니핑 방법이다. 기본적으로 에이알피 리다이렉트의 경우와 마찬가지로 공격 대상 시스템으로 패킷이 오도록 만드는 것이다. 네트워크상에 라우터가 여러 대 존재할 때 비효율적인 라우팅 경로가 존재한다면 라우터에 대해 이를 수정할 것을 권고하는 아이씨엠피 리다이렉트 메시지가 보내진다. 공격자는 이를 악용한 아이씨엠피 리다이렉트 메시지리를 보내 패킷이 자신으로 보내지 않도록 한다.
  • 아이씨엠피 라우터 어드버타이스먼트(ICMP Router Advertisement)
특정 호스트가 자신이 라우터라고 다른 호스트들에게 알리는 메시지이다. 공격자는 이를 악용하여 다른 호스트들이 자신을 라우터라고 생각하게 만들어 패킷이 자신으로 보내지도록 한다.[1]
  • 맥 스푸핑
스위치는 기본적으로 맥 주소를 통해 패킷이 어떤 목적지로 보내질지를 결정한다. 응답으로 패킷이 오게 되면 맥 주소 테이블에 해당 정보가 입력되어 다음부터는 응답이 오게 된 포트로 보내게 된다. 그러나 공격자가 공격 대상 시스템의 맥 주소를 가지는 패킷을 출발지 맥 주소로 하는 패킷으로 계속하여 보내면 스위치의 맥 주소 테이블에는 공격자 맥 주소가 등록된다. 따라서 스위치는 패킷을 공격자에게 보내게 된다.
  • 스위치에서 SPAN/Monitorport 설정
대다수의 스위치는 포트 모니터링(Port Monitoring) 기능을 가지고 있는데, 이는 특정 포트로 주고 받아지는 패킷을 또 다른 모니터 포트로 전송해주는 옵션이다. 공격자가 스위치에 접근 권한을 얻어내어 위와 같은 설정을 적용함으로 공격자 시스템에 연결된 포트로 보낼 수 있다. 이는 매우 어려워 보이지만 디폴트로 설정된 스위치의 경우 해당 스위치의 사용자 아이디, 패스워드를 인터넷 검색사이트를 통해 얻어낼 수 있기 때문에 매우 쉬운 일이다.[2]

탐지 방법

  • 핑(Ping)을 이용한 탐지
대부분의 스니핑은 TCP/IP에서 동작하기 때문에 요청(Request)를 받으면 응답(Response)하는 특성이 있다. 이를 이용해 의심 가는 호스트에 네트워크에 존재하지 않는 맥 주소를 위장하여 보낸다. 만약 아이씨엠피 에코 리플라이(ICMP Echo Reply)를 받으면 해당 호스트가 스니핑을 하는 것이다.
  • 에이알피(ARP)를 이용한 감지
위조된 에이알피 요청을 보냈을 때 에이알피 응답이 오면 프로미스큐어스 모드로 설정된 것이므로 스니핑을 의심할 수 있다.
  • 디엔에스(DNS)를 이용한 탐지
일반적으로 스니핑 프로그램은 사용자의 편의를 위해 스니핑한 시스템의 아이피 주소에 디엔에스에 대한 이름 해석과정을 수행한다.
  • 유인을 이용한 탐지
가짜 아이디와 패스워드를 네트워크에 뿌리고 공격자가 이 아이디와 패스워드를 이용하여 접속을 시도할 때 스니퍼를 탐지한다.
  • 에이알피 와치(ARP Watch)를 이용한 탐지
맥 주소와 아이피 주소의 매칭 값을 초기에 저장하고 에이알피 트래픽을 모니터링하여 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 툴이다.[3]

스니핑에 취약한 프로토콜

패킷을 악의적인 사용자가 가로채는 것은 그리 어려운 일이 아니다. 이런 시도를 탐지하는 방법도 있지만, 완전히 봉쇄하는 것은 불가능하다고 볼 수 있다. 하지만 이렇게 얻어낸 패킷이 모두 유용한 것은 아니며, 암호화되지 않거나 암호화되더라도 너무도 간단한 방법으로 되어 쉽게 복화화 할 수 있는 프로토콜에서 사용되는 패킷이 공격자에 의해 사용될 수 있다. 이런 종류의 프로토콜을 스니핑에 취약한 프로토콜이라고 한다.

  • Telnet, Rlogin
Telnet, Rlogin의 사용자 아이디, 패스워드를 비롯한 모든 통신의 내용은 암호화되지 않아 모든 통신 내용을 쉽게 볼 수 있다.
  • HTTP
HTTP의 사용자 인증으로 많이 사용되는 Basic 인증(Authentication)방법은 아주 기본적인 방법으로 부호화(encode)되기 때문에 쉽게 사용자 아이디, 패스워드 정보를 얻어낼 수 있다.
  • SNMP
SNMP 프로토콜은 단순 네트워크 관리 프로토콜(Simple Network Management Protocol)이라는 이름처럼 보안을 거의 고려 하지 않았다. SNMP의 패스워드와 같은 역할을 하는 커뮤니티 이름을 비롯한 모든 통신 내용이 암호화 되지 않는다.[3]

활용

윈도우 기반 스니핑 도구

  • Ethereal : 유닉스(UNIX)용 Ethereal을 윈도우(Windows)로 포팅한 것으로 오픈소스
  • Windump : 티씨피덤프(Tcpdump)를 윈도우 용으로 포팅한 것.
  • NAI Sniffer : 스니핑뿐 아니라, 다양한 통계 기능 등 제공. (상용)
  • EtherPeek : 스니핑뿐 아니라, 다양한 통계 기능 등 제공. (상용)
  • AiroPeek : 이더픽(EtherPeek)을 제조한 와일드패킷(WildPackets) 사의 제품으로 무선 네트워크상의 스니핑 도구. (상용)
  • Cain&Abel : 스니핑 기능 외에도 패스워드 크래킹 등 다양한 기능이 포함된 통합 툴. 스위칭 환경에서의 스니핑 및 각종 프로토콜에 대한 디코드 기능이 있음.(상용)[3]

유닉스 기반 스니핑 도구

  • tcpdump : 커맨드 라인(Command-line) 툴로 해킹보다는 트러블슈팅의 용도로 가장 많이 사용되는 툴.
  • Ethereal : GUI 기반으로 유닉스용 GUI 스니핑 도구로서 매우 훌륭한 성능을 가짐.
  • Snoop : 썬 솔라리스(Sun Solaris) 시스템 등에서 기본적으로 제공하는 스니핑 도구.
  • Sniffit : 연결된 세션 내용 정보 등을 쉽게 볼 수 있음.
  • AiroPeek : 이더픽(EtherPeek)을 제조한 와일드패킷사의 제품으로 무선 네트워크상의 스니핑 도구. (상용)
  • Dsniff : 송덕준이 개발한 스위칭 환경에서의 해킹 도구. 스니핑 툴만 포함된 것이 아니라 SSH나 SSL에 대한 중간자 공격 툴이 포함되어 있고 각종 프로토콜에 대한 사용자 아이디, 비밀번호 정보를 쉽게 수집해준다.
  • LinSniff : 각종 프로토콜에 대한 사용자 아이디, 암호정보를 쉽게 수집하고 가볍지만 dsniff보다는 적은 프로토콜을 지원한다.
  • Esniff : Phrack Magazine에 소개된 툴.
  • Ettercap : 스위칭 환경에서의 스니핑 툴.
  • Snmpsniff : SNMP 전용 스니핑 툴.[3]

대안

  • 암호화 프로토콜을 사용하여 중요한 패킷은 암호화하여 송수신한다
  • 스니핑 툴을 사용한다. 종류로는 AntiSniff, Sentinel, XARP 등이 있다.
  • 에이알피 테이블을 정적으로 구축한다.[3]

각주

  1. exerceo, 〈스푸핑과 스니핑!!〉, 《이글루스》, 2006-11-22
  2. REAL STORY, 〈IT 용어 스니핑 ( Sniffing )〉, 《티스토리》, 2013-06-12
  3. 3.0 3.1 3.2 3.3 3.4 차니, 〈스니핑(Sniffing) 공격의 개념과 탐지방법〉, 《네이버 블로그》, 2017-11-21

참고자료

같이 보기


  의견.png 이 스니핑 문서는 블록체인 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.