스니핑 개념 


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



스니핑


스니핑은 네트워크상에서 전송자와 수신자 사이에 주고 받는 데이터를 패킷 수준으로 분석하여 계정, 비밀번호, 프로토콜, 시스템정보 등 유의미한 내용을 알아내기 위한 해킹기법입니다. 스니핑을 이해하기 위해 먼저 이더넷 로컬 네트워크의 동작원리를 이해해야합니다. 이더넷 로컬 네트워크 내의 모든 호스트는 동일한 선을 공유하도록 설계되었으며, 호스트를 식별하기 위해 물리적인 MAC 주소를 사용합니다. 따라서 전송하는 주체는 자신의 MAC 주소와 수신 주체의 MAC 주소, 그리고 데이터를 포함하여 전송하게 되고, 로컬 네트워크 내의 모든 호스트는 수신 MAC 주소를 확인하여 본인이 아닐경우 해당 패킷을 폐기하는 방식으로 동작합니다. 그러나 로컬 네트워크를 동작하게 만드는 하드웨어 장치인 랜카드의 모드를 Promiscuous로 변경하게 되면 모든 패킷을 버리지 않기 때문에 다른 호스트들간의 통신 내용 또한 수신할 수 있는 것입니다.




실질적인 스니핑 공격의 예


(1) 허브 환경에서의 스니핑


허브(Hub)는 기본적으로 들어온 패킷에 대해 패킷이 들어온 포트를 제외한 모든 포트에 대해 패킷을 보내는 리피터(Repeater) 장비입니다. 사실 여러분의 기업에서 허브를 사용하고 있고 여러분의 시스템이 그 허브에 연결되어 있다면 여러분은 원하던 원치 않던 간에 계속하여 다른 사람의 패킷들을 받아보고 있었던 것입니다.


물론 네트워크 드라이버, OS 커널 등의 수준에서 MAC 주소를 보아 자신이 아닌 다른 이들의 패킷은 버려지기 때문에 그것을 쉽게 느낄 수는 없었을 것입니다. 하지만 여러분 시스템의 NIC를 promiscuous 모드로 동작하게 한다면 다른 이들의 패킷 또한 버리지 않고 받아볼 수 있습니다.




 

(2) 스위치 환경에서의 스니핑


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



+ Recent posts