사이트 내 전체검색
스니핑 (sniffing)
로빈아빠
https://cmd.kr/server/808 URL이 복사되었습니다.

본문

스니핑이란?

사전적인 의미로 스니핑(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 모드로 셋팅하였다 하더라도 그 내용을 훔쳐 볼 수는 없다.

댓글목록

등록된 댓글이 없습니다.

1,139 (19/23P)

Search

Copyright © Cmd 명령어 3.12.161.30